Brevet FR2862450A1 — publié le 20050520

La présente invention concerne d'une manière générale le codage et le décodage de signal numérique. 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. On considère plus particulièrement le codage et le décodage d'image numérique. Une mode de codage connu d'image numérique est le codage selon la norme JPEG, par exemple décrit dans l'ouvrage de W.B. Pennebaker et J.L. Mitchell, intitulé JPEG: Still image data compression standard , Van Nostrand Reinhold, 1993. La présente invention vise à fournir un procédé et un dispositif de 25 codage d'image qui permettent d'obtenir un rapport taux de compression sur distorsion qui est supérieur à celui de la technique antérieure. A cette fin, l'invention propose un procédé de codage d'un signal numérique représentatif de grandeurs physiques comportant les étapes de: 30 - division du signal en blocs de données, - transformation en sous bandes de fréquence des blocs de données, - quantification des blocs de données transformés, pour former des blocs de symboles de quantification, caractérisé en ce qu'il comporte les étapes de: 2 2862450 - formation de groupes de symboles de quantification en fonction du rang de chaque symbole dans son bloc respectif, - construction d'un mode de codage entropique pour chaque groupe de symboles de quantification, - codage de chaque groupe par son codeur entropique respectif. L'invention permet d'utiliser un codeur entropique pour tous les symboles du signal numérique qui se trouvent au même rang dans les différents blocs formés dans le signal. De plus, le codeur entropique utilisé est construit spécifiquement pour chaque groupe de symboles. Ainsi, le taux de compression est maximal. Selon une caractéristique préférée, la transformation est une transformation DCT des blocs de données. Ce type de transformation est couramment utilisé, notamment pour les images numériques. Selon une caractéristique préférée, la construction d'un mode de 15 codage entropique pour chaque groupe comporte pour un groupe donné : - calcul de la distribution du groupe, - construction d'un mode de codage entropique pour le groupe en fonction de sa distribution. Cela permet de tenir compte de la statistique particulière du groupe. Selon une caractéristique préférée, le codage entropique est un codage arithmétique. Ce type de codage donne des résultats expérimentaux satisfaisant tout en étant simple à mettre en oeuvre. L'invention a également trait à un procédé de décodage d'un signal numérique codé par le procédé précédemment présenté, caractérisé en ce qu'il 25 comporte les étapes de: - construction d'un mode de décodage entropique respectivement associé à chacun des groupes, - décodage entropique des symboles de chacun des groupes, - formation de blocs de symboles, en fonction du groupe respectif de 30 chaque symbole. Selon un mode de réalisation, l'invention concerne un procédé caractérisé en ce qu'il comporte les étapes de: - première division du signal en blocs de données, 3 2862450 - première transformation en sous bandes de fréquence des blocs de données, - première quantification des blocs de données transformés, pour former des blocs de symboles de quantification, - construction d'un mode de codage entropique pour chaque groupe de symboles de quantification, - seconde division du signal en blocs de données, - seconde transformation en sous bandes de fréquence des blocs de données, - seconde quantification des blocs de données transformés, pour former des blocs de symboles de quantification, - codage de chaque groupe par son codeur entropique respectif. Dans ce mode de réalisation, l'espace mémoire nécessaire est réduit, puisque les résultats des étapes de division, transformation et quantification ne sont pas mémorisés. Corrélativement, l'invention concerne un dispositif de codage d'un signal numérique représentatif de grandeurs physiques comportant: - des moyens de division du signal en blocs de données, - des moyens de transformation en sous bandes de fréquence des blocs de données, - des moyens de quantification des blocs de données transformés, pour former des blocs de symboles de quantification, caractérisé en ce qu'il comporte: - des moyens de formation de groupes de symboles de quantification en fonction du rang de chaque symbole dans son bloc respectif, - des moyens de construction d'un mode de codage entropique pour chaque groupe de symboles de quantification, - des moyens de codage de chaque groupe par son codeur entropique 30 respectif. L'invention concerne aussi un dispositif de décodage. Les dispositifs selon l'invention comportent des moyens de mise en oeuvre des caractéristiques précédemment exposées. 4 2862450 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 10 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 représente un mode de réalisation d'un dispositif mettant 20 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 représente un premier mode de réalisation de procédé de codage selon l'invention, - la figure 4 représente un exemple de signal à traiter selon l'invention, - la figure 5 représente un exemple de signal à traiter selon l'invention, - la figure 6 représente un mode de réalisation de procédé de décodage selon l'invention, - la figure 7 représente un second mode de réalisation de procédé de 30 codage selon l'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 microordinateur 10 connecté à différents périphériques, par exemple une caméra numérique 107 (ou 2862450 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 micro-ordinateur 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 image à coder IM est mémorisée dans une mémoire 1. Le 15 dispositif de codage reçoit l'image IM. Le dispositif de codage 2 comporte: - des moyens 20 de division du signal en blocs de données, - des moyens 21 de transformation en sous bandes de fréquence des blocs de données, - des moyens 22 de quantification des blocs de données transformés, pour former des blocs de symboles de quantification. Selon l'invention, le dispositif de codage selon l'invention comporte en outre: - des moyens 23 de formation de groupes de symboles de quantification en fonction du rang de chaque symbole dans son bloc respectif, - des moyens 24 de construction d'un mode de codage entropique pour chaque groupe de symboles de quantification, - des moyens 25 de codage de chaque groupe par son codeur entropique respectif. Le fonctionnement du dispositif de codage est détaillé dans la suite à l'aide d'algorithmes. L'image codée peut être transmise par un module de transmission 3 dont le fonctionnement est classique vers un dispositif de décodage 4. En 7 2862450 variante, l'image codée est simplement mémorisée pour être décodée ultérieurement. Le dispositif de décodage 4 comporte: - des moyens 40 de construction d'un mode de décodage entropique 5 respectivement associé à chacun des groupes, - des moyens 41 de décodage entropique des symboles de chacun des groupes, - des moyens 42 de formation de blocs de symboles, en fonction du groupe respectif de chaque symbole. Le fonctionnement du dispositif de décodage est détaillé dans la suite à l'aide d'un algorithme. Le dispositif de décodage 4 fournit une image décodée IM' à un dispositif 5 de visualisation d'image. II est à noter que le dispositif de codage et le dispositif de décodage 15 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 premier mode de réalisation de procédé de codage d'une image, selon l'invention. Ce procédé est mis en oeuvre dans le 20 dispositif de codage et comporte des étapes El à E24. 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 El est une division en blocs B; de l'image à coder. De manière générale, un bloc est un ensemble d'échantillons de l'image. Par exemple, des 30 blocs carrés adjacents de taille prédéterminée 8x8 pixels sont formés dans l'image. Bien entendu, d'autres tailles de blocs sont possibles. L'étape suivante E2 est une initialisation à laquelle un premier bloc est considéré. 8 2862450 L'étape suivante E3 est une transformation linéaire ou non linéaire du bloc courant B. Par exemple, une transformation en cosinus discrète, dite DCT d'après l'anglais Discrete Cosine Transform, est appliquée au bloc courant. En variante, une transformation en ondelettes discrète est appliquée au bloc courant. L'étape E3 comporte en outre une transformation du signal bidimensionnel et un signal monodimensionnel. Pour cela, de manière préférentielle, le bloc B; est parcouru selon un ordre en zig-zag. Cette technique, appelée zig zag scan , est décrite dans le document intitulé Digital image compression techniques de M. Rabbani et P.W. Jones, dans SPIE Opt. Eng. Press, Bellingham, Washington, 1991. Comme représenté à la figure 4, dans le bloc B; à 8x8 coefficients, on considère les diagonales de coefficients orientées d'en bas à gauche vers en haut à droite. Le parcours commence en haut à gauche. Les diagonales sont parcourues soit d'en bas à gauche vers en haut à droite, soit dans le sens inverse. Pour une diagonale donnée, le sens de parcours est le sens opposé à celui de la diagonale précédente. En suivant ce sens de parcours, les coefficients sont rangés dans un vecteur V; à une dimension contenant 64 coefficients. En variante, comme représenté à la figure 5, le bloc B; est parcouru ligne par ligne, de gauche à droite et de haut en bas, pour former un vecteur V'; à une dimension contenant également 64 coefficients. L'étape suivante E4 est une quantification du vecteur courant V. Tous les échantillons du bloc sont divisés par un pas de quantification Q, puis arrondis à l'entier le plus proche. Le résultat est une liste de 64 coefficients entiers signés. Le pas de quantification est soit prédéterminé, soit sélectionné par l'utilisateur. II peut être le même pour tous les échantillons ou différent pour chaque échantillon du vecteur. Les valeurs ainsi obtenues sont transformées en symboles de quantification. Une valeur non nulle représente son propre symbole de quantification. Lorsqu'un ou plusieurs coefficients sont nuls, ils sont remplacés par un symbole de quantification spécifique RX, où l'entier x est le nombre de coefficients consécutifs nuls. 9 2862450 Si le dernier coefficient obtenu correspond à une suite de zéros, il n'est pas pris en compte. Par exemple, soit V; le vecteur suivant: V; = [12,3 2,5 -6,0 -0,1 4,1 3, 2 -80,0 4,9 18,4 -26,8 2,3 -6,7 0,4 0,1 -0,2 0,5] Avec un pas de quantification de 10, le vecteur quantifié QV; est le suivant: QV; = [1 0 -1 0 0 0 -8 0 2 -3 0 -1 0 0 0 0] Après transformation des valeurs obtenues en symboles de 10 quantification, on obtient le vecteur SQV; suivant: SQV; = [1 RI -1 R3 -8 RI 2 -3 RI -1] En variante, il est possible de ne pas regrouper les zéros successifs ensemble et de coder chacun d'eux indépendamment des autres. L'étape suivante E5 est une initialisation à laquelle deux variables entières M et n sont initialisées à zéro. La variable M représente le nombre de symboles de quantification contenus dans le vecteur quantifié courant SQV;. La variable n représente l'indice d'un groupe courant dans lequel est classé le symbole de quantification courant. L'étape suivante E6 est un test pour déterminer si les symboles de 20 quantification du bloc courant sont tous nuls. Si la réponse est positive, alors cette étape est suivie de l'étape E13 qui est décrite dans la suite. Si la réponse est négative à l'étape E6, alors cette étape est suivie de l'étape E7 qui est une initialisation à laquelle un premier symbole de quantification est considéré dans le vecteur quantifié courant SQV;. L'étape suivante E8 est l'affectation du symbole courant au groupe de symboles courant G. A l'étape suivante E9, la variable n est incrémentée de une unité pour considérer le groupe de symbole suivant. L'étape suivante E10 est l'incrémentation de la variable M de une 30 unité. L'étape suivante E11 est un test pour déterminer si le symbole de quantification courant est le dernier du vecteur quantifié courant SQV;. Si la réponse est négative, alors cette étape est suivie de l'étape E12 à laquelle le 2862450 symbole de quantification suivant est considéré. L'étape E12 est suivie de l'étape E8 précédemment décrite. Lorsque la réponse est positive à l'étape El 1 cette étape est suivie de l'étape E13 qui est la mémorisation de la valeur de la variable M associée au 5 bloc courant. L'étape E13 est suivie de l'étape E14 qui est un test pour déterminer si le bloc courant est le dernier bloc à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E15 à laquelle un bloc suivant est considéré. L'étape E15 est suivie de l'étape E3 précédemment décrite. Lorsque tous les blocs ont été traités, l'étape E14 est suivie de l'étape E16 à laquelle on considère le premier groupe de symboles de quantification. L'étape suivante E17 est le calcul de la distribution du groupe de symboles courant Gn. Pour cela, l'histogramme du groupe est déterminé, c'est-à-dire le nombre de symboles du groupe ayant la même valeur, pour chaque valeur possible. L'étape suivante E18 est la construction d'un codeur entropique pour le groupe courant. Pour cela, on utilise par exemple un codeur de Huffman. La probabilité d'apparition de chaque symbole est calculée en divisant le nombre d'apparition de chaque symbole dans le groupe par le nombre de symboles du groupe. Un code est ensuite affecté à chaque symbole. La structure et la longueur du code dépendent de la probabilité d'apparition du symbole. Dans un mode préféré de réalisation, le codage utilisé est un codage arithmétique. II est à noter que des informations destinées à construire ultérieurement le décodeur associé sont écrites dans le fichier compressé contenant les données représentant l'image. Par exemple, pour un codeur de Huffman, on écrit dans le fichier compressé soit le code associé à chaque symbole, soit les probabilités d'apparition de chaque symbole permettant au décodeur de reconstruire les codes. L'étape suivante E19 est le codage des symboles du groupe courant Gn par le codeur entropique précédemment construit. Le résultat est un train de bits qui est écrit dans le fichier compressé contenant les données de codage de l'image. 11 2862450 L'étape E19 est suivie de l'étape E20 qui est un test pour déterminer si le groupe courant est le dernier groupe à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E21 à laquelle un groupe suivant est considéré. L'étape E21 est suivie de l'étape El 7 précédemment décrite. Lorsque tous les groupes ont été traités, l'étape E20 est suivie de l'étape E22 à laquelle est calculée la distribution du signal M représentant l'ensemble des valeurs de la variable M associées aux blocs. On rappelle que la variable M représente le nombre de symboles de quantification respectivement contenus dans chacun des blocs. L'étape suivante E23 est la construction d'un codeur entropique pour le signal M à partir de sa distribution précédemment déterminée. Dans un mode préférée de réalisation, le codeur entropique est un codeur arithmétique. En variante, un codeur de Huffman est utilisé. Des informations destinées à construire le décodeur associé sont également écrites dans le fichier compressé. L'étape suivante E24 est le codage du signal M par le codeur entropique précédemment construit. Le résultat est un train de bits qui est écrit dans le fichier compressé contenant les données de codage de l'image. La figure 6 représente un mode de réalisation de procédé de 20 décodage d'une image, selon l'invention. Ce procédé est mis en oeuvre dans le dispositif de décodage et comporte des étapes E30 à E48. 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 E30 est la construction de décodeur entropique du signal M. 30 Cette construction est réalisée à partir des informations contenues dans le fichier compressé. L'étape suivante E31 est le décodage entropique des symboles du signal M. Le résultat est mémorisé en mémoire. 12 2862450 L'étape suivante E32 est une initialisation à laquelle un premier groupe de symboles de quantification est considéré. L'étape suivante E33 est la construction de décodeur entropique du groupe courant G. Cette construction est réalisée à partir des informations 5 contenues dans le fichier compressé. L'étape suivante E34 est le décodage entropique des symboles du groupe courant. L'étape E34 est suivie de l'étape E35 qui est un test pour déterminer si le groupe courant est le dernier groupe à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E36 à laquelle un groupe suivant est considéré. L'étape E36 est suivie de l'étape E33 précédemment décrite. Lorsque tous les groupes ont été traités, l'étape E35 est suivie de l'étape E37 à laquelle un premier bloc est considéré. L'étape suivante E38 est la sélection d'un premier groupe de symboles. Une variable m est initialisée à la valeur zéro. La variable m est utilisée pour compter le nombre de symboles décodés dans le bloc courant. L'étape suivante E39 est la sélection d'un premier symbole de quantification dans le groupe courant. L'étape suivante E40 est un test pour déterminer si le nombre m de symboles déjà décodés dans le bloc courant est égal au nombre M de symboles à décoder dans le bloc courant. Si la réponse est négative, alors cette étape est suivie de l'étape E41 à laquelle le symbole courant est décodé et inséré dans le bloc décodé. Si le symbole décodé est de la forme RX, alors x zéros sont insérés. Sinon, la valeur du symbole est insérée. L'étape suivante E42 est une incrémentation du nombre m de une unité pour signifier qu'un symbole a été décodé. A l'étape suivante E43, le groupe suivant est considéré. A l'étape suivante E44, un symbole de quantification suivant dans le groupe courant est considéré. L'étape E44 est suivie de l'étape E40 précédemment décrite. Lorsque la réponse est positive à l'étape E40, alors tous les symboles du bloc courant ont été décodés. Cette étape est suivie de l'étape E45 qui est la déquantification du bloc courant. Chaque valeur précédemment obtenue est multipliée par le pas de quantification Q. 13 2862450 L'étape suivante E46 est la transformation du bloc déquantifié mono-dimensionnel en un bloc bi-dimensionnel de 8x8 coefficients DCT. Pour cela, une opération dite zig-zag scan inverse est effectuée sur le bloc obtenu à l'étape précédente. Le bloc ainsi décodé est placé dans l'image décodée. L'étape suivante E47 est un test pour déterminer si le bloc courant est le dernier bloc à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E48 à laquelle un bloc suivant est considéré. L'étape E48 est suivie de l'étape E38 précédemment décrite. Lorsque la réponse est positive à l'étape E47, le décodage de l'image est terminé. La figure 7 représente un second mode de réalisation de procédé de codage d'une image, selon l'invention. Ce procédé est mis en oeuvre dans le 15 dispositif de codage et comporte des étapes E101 à E131. 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 étapes E101 à E114 formant la première partie du procédé sont respectivement similaires aux étapes E1 à E14 précédemment décrites, à 25 l'exception de l'étape E108. L'étape E101 est une division en blocs B; de l'image à coder. L'étape suivante E102 est une initialisation à laquelle un premier bloc est considéré. L'étape suivante E103 est une transformation linéaire ou non linéaire du bloc courant B. Par exemple, une transformation en cosinus discrète, dite DCT d'après l'anglais Discrete Cosine Transform, est appliquée au bloc courant. En variante, une transformation en ondelettes discrète est appliquée au bloc courant. 14 2862450 L'étape E103 comporte en outre une transformation du signal bidimensionnel et un signal monodimensionnel. Pour cela, de manière préférentielle, le bloc B; est parcouru selon un ordre en zig-zag. L'étape suivante E104 est une quantification du vecteur courant V. Le 5 résultat est un vecteur quantifié SQV;. L'étape suivante E105 est une initialisation à laquelle deux variables entières M et n sont initialisées à zéro. La variable M représente le nombre de symboles de quantification contenus dans le vecteur quantifié courant SQV;. La variable n représente l'indice d'un groupe courant dans lequel est classé le symbole de quantification courant. L'étape suivante E106 est un test pour déterminer si les symboles de quantification du bloc courant sont tous nuls. Si la réponse est positive, alors cette étape est suivie de l'étape E113 qui est décrite dans la suite. Si la réponse est négative à l'étape E106, alors cette étape est suivie 15 de l'étape E107 qui est une initialisation à laquelle un premier symbole de quantification est considéré dans le vecteur quantifié courant SQV;. A l'étape suivante E108, on considère un groupe courant Gn et son histogramme est incrémenté. L'histogramme est le nombre de symboles du groupe ayant la même valeur, pour chaque valeur possible. Le nombre associé au symbole de quantification courant est incrémenté de une unité dans l'histogramme du groupe courant. A l'étape suivante E109, la variable n est incrémentée de une unité pour considérer le groupe de symbole suivant. L'étape suivante E110 est l'incrémentation de la variable M de une 25 unité. L'étape suivante El11 est un test pour déterminer si le symbole de quantification courant est le dernier du vecteur quantifié courant SQV;. Si la réponse est négative, alors cette étape est suivie de l'étape E112 à laquelle le symbole de quantification suivant est considéré. L'étape E112 est suivie de l'étape E108 précédemment décrite. Lorsque la réponse est positive à l'étape El11 cette étape est suivie de l'étape E113 qui est la mémorisation de la valeur de la variable M associée au bloc courant. 2862450 L'étape E113 est suivie de l'étape E114 qui est un test pour déterminer si le bloc courant est le dernier bloc à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E115 à laquelle un bloc suivant est considéré. L'étape E115 est suivie de l'étape E103 précédemment décrite. Lorsque tous les blocs ont été traités, l'étape E114 est suivie de l'étape E116. Le résultat de la première partie du procédé est l'histogramme de chacun des groupes G et le nombre de symboles à coder dans chacun des groupes. Seules ces valeurs sont mémorisées. Il est à noter que les vecteurs quantifiés ne sont pas mémorisés, ce qui permet de travailler avec une mémoire réduite. La seconde partie du procédé comportant les étapes E116 à E131 est maintenant décrite. L'étape E116 est la construction d'un codeur entropique chacun des groupes. Pour cela, on utilise par exemple un codeur de Huffman. La probabilité d'apparition de chaque symbole est calculée en divisant le nombre d'apparition de chaque symbole dans le groupe par le nombre de symboles du groupe. Un code est ensuite affecté à chaque symbole. La structure et la longueur du code dépendent de la probabilité d'apparition du symbole. Dans un mode préféré de réalisation, le codage utilisé est un codage arithmétique. II est à noter que des informations destinées à construire ultérieurement le décodeur associé sont écrites dans le fichier compressé contenant les données représentant l'image. L'étape E117 est une division en blocs B; de l'image à coder. L'étape suivante E118 est une initialisation à laquelle un premier bloc est considéré. L'étape suivante E119 est une transformation linéaire ou non linéaire du bloc courant B. Par exemple, une transformation en cosinus discrète, dite DCT d'après l'anglais Discrete Cosine Transform, est appliquée au bloc courant. En variante, une transformation en ondelettes discrète est appliquée au bloc courant. 16 2862450 L'étape E119 comporte en outre une transformation du signal bidimensionnel et un signal monodimensionnel. Pour cela, de manière préférentielle, le bloc B; est parcouru selon un ordre en zig-zag. L'étape suivante E120 est une quantification du vecteur courant V;. Le 5 résultat est un vecteur quantifié SQV;. L'étape suivante E121 est une initialisation à laquelle la variable entière n est initialisée à zéro. La variable n représente l'indice d'un groupe courant dans lequel est classé le symbole de quantification courant. L'étape suivante E122 est un test pour déterminer si les symboles de 10 quantification du bloc courant sont tous nuls. Si la réponse est positive, alors cette étape est suivie de l'étape E127 qui est décrite dans la suite. Si la réponse est négative à l'étape E122, alors cette étape est suivie de l'étape E123 qui est une initialisation à laquelle un premier symbole de quantification est considéré dans le vecteur quantifié courant SQV;. L'étape suivante E124 est le codage entropique du symbole courant. Le codeur entropique qui est utilisé est celui qui a été déterminé à l'étape E116 pour le groupe G auquel appartient le symbole courant. Le groupe G, et son codeur entropique associé sont déterminés par la valeur n courante. L'étape suivante E125 est un test pour déterminer si le symbole de quantification courant est le dernier du vecteur quantifié courant SQV;. Si la réponse est négative, alors cette étape est suivie de l'étape E126 à laquelle le symbole de quantification suivant est considéré. La variable n est incrémenté de une unité pour considérer le groupe suivant. L'étape E126 est suivie de l'étape E124 précédemment décrite. Lorsque la réponse est positive à l'étape E125 cette étape est suivie de l'étape E127 qui est un test pour déterminer si le bloc courant est le dernier bloc à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E128 à laquelle un bloc suivant est considéré. L'étape E128 est suivie de l'étape E119 précédemment décrite. Lorsque la réponse est positive à l'étape E127 cette étape est suivie de l'étape E129 à laquelle est calculée la distribution du signal M représentant l'ensemble des valeurs de la variable M associées aux blocs. On rappelle que la variable M représente le nombre de symboles de quantification respectivement contenus dans chacun des blocs. 17 2862450 L'étape suivante E130 est la construction d'un codeur entropique pour le signal M à partir de sa distribution précédemment déterminée. Dans un mode préférée de réalisation, le codeur entropique est un codeur arithmétique. En variante, un codeur de Huffman est utilisé. Des informations destinées à construire le décodeur associé sont également écrites dans le fichier compressé. L'étape suivante E131 est le codage du signal M par le codeur entropique précédemment construit. Le résultat est un train de bits qui est écrit dans le fichier compressé contenant les données de codage de l'image. Le décodage de l'image codée selon ce mode de réalisation est identique au décodage précédemment décrit. 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. 18 2862450 REVENDICATIONS 1. Procédé de codage d'un signal numérique représentatif de grandeurs physiques comportant les étapes de: - division (El) du signal en blocs de données, - transformation (E3) en sous bandes de fréquence des blocs de données, - quantification (E4) des blocs de données transformés, pour former des blocs de symboles de quantification, caractérisé en ce qu'il comporte les étapes de: - formation (E8) de groupes de symboles de quantification en fonction du rang de chaque symbole dans son bloc respectif, - construction (E18) d'un mode de codage entropique pour chaque groupe de symboles de quantification, - codage (E19) de chaque groupe par son codeur entropique respectif. 2. Procédé selon la revendication 1, caractérisé en ce la 20 transformation (E 3) est une transformation DCT des blocs de données. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que la construction d'un mode de codage entropique pour chaque groupe comporte pour un groupe donné : - calcul (E17) de la distribution du groupe, construction (E18) d'un mode de codage entropique pour le groupe en fonction de sa distribution. 4. Procédé selon l'une quelconque des revendications 1 à 3, 30 caractérisé en ce que le codage entropique est un codage arithmétique. 5. Procédé selon l'une quelconque des revendications 1 à 4, les blocs de données étant bidimensionnels, caractérisé en ce qu'il comporte l'étape 19 2862450 préalable de transformation (E3) des blocs de données en des vecteurs monodimensionnels. 6. Procédé selon l'une quelconque des revendications 1 à 5, 5 caractérisé en ce qu'il comporte les étapes de: - première division (E101) du signal en blocs de données, - première transformation (E103) en sous bandes de fréquence des blocs de données, - première quantification (E104) des blocs de données transformés, 10 pour former des blocs de symboles de quantification, - construction (E116) d'un mode de codage entropique pour chaque groupe de symboles de quantification, - seconde division (E117) du signal en blocs de données, - seconde transformation (E119) en sous bandes de fréquence des 15 blocs de données, - seconde quantification (E120) des blocs de données transformés, pour former des blocs de symboles de quantification, - codage (E124) de chaque groupe par son codeur entropique respectif. 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le signal numérique est une image numérique. 8. Procédé de décodage d'un signal numérique codé par le procédé 25 selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comporte les étapes de: - construction d'un mode de décodage entropique respectivement associé à chacun des groupes, - décodage entropique des symboles de chacun des groupes, - formation de blocs de symboles, en fonction du groupe respectif de chaque symbole. 9. Dispositif de codage d'un signal numérique représentatif de grandeurs physiques comportant: 2862450 - des moyens (20) de division du signal en blocs de données, - des moyens (21) de transformation en sous bandes de fréquence des blocs de données, - des moyens (22) de quantification des blocs de données 5 transformés, pour former des blocs de symboles de quantification, caractérisé en ce qu'il comporte: - des moyens (23) de formation de groupes de symboles de quantification en fonction du rang de chaque symbole dans son bloc respectif, - des moyens (24) de construction d'un mode de codage entropique pour chaque groupe de symboles de quantification, - des moyens (25) de codage de chaque groupe par son codeur entropique respectif. 10. Dispositif selon la revendication 9, caractérisé en ce les moyens 15 (21) de transformation sont adaptés à mettre en oeuvre une transformation DCT des blocs de données. 11. Dispositif selon la revendication 9 ou 10, caractérisé en ce que les moyens (24) de construction d'un mode de codage entropique pour chaque 20 groupe comporte: - des moyens de calcul de la distribution d'un groupe donné, - des moyens de construction d'un mode de codage entropique pour le groupe en fonction de sa distribution. 12. Dispositif selon l'une quelconque des revendications 9 à 11, caractérisé en ce que les moyens (25) de codage entropique sont adaptés à mettre en oeuvre un codage arithmétique. 13. Dispositif selon l'une quelconque des revendications 9 à 12, les blocs de données étant bidimensionnels, caractérisé en ce qu'il comporte des moyens de transformation des blocs de données en des vecteurs monodimensionnels. 21 2862450 14. Dispositif selon l'une quelconque des revendications 9 à 13, caractérisé en ce qu'il comporte: - des moyens de première division du signal en blocs de données, - des moyens de première transformation en sous bandes de 5 fréquence des blocs de données, - des moyens de première quantification des blocs de données transformés, pour former des blocs de symboles de quantification, - des moyens de construction d'un mode de codage entropique pour chaque groupe de symboles de quantification, - des moyens de seconde division du signal en blocs de données, - des moyens de seconde transformation en sous bandes de fréquence des blocs de données, des moyens de seconde quantification des blocs de données transformés, pour former des blocs de symboles de quantification, - des moyens de codage de chaque groupe par son codeur entropique respectif. 15. Dispositif selon l'une quelconque des revendications 9 à 14, caractérisé en ce qu'il est adapté à traiter un signal numérique qui est une image 20 numérique. 16. Dispositif de décodage d'un signal numérique codé par le dispositif selon l'une quelconque des revendications 9 à 15, caractérisé en ce qu'il comporte: - des moyens (40) de construction d'un mode de décodage entropique respectivement associé à chacun des groupes, - des moyens (41) de décodage entropique des symboles de chacun des groupes, - des moyens (42) de formation de blocs de symboles, en fonction du 30 groupe respectif de chaque symbole. 17. Dispositif de codage selon l'une quelconque des revendications 9 à 15, caractérisé en ce que les moyens de formation, construction et codage sont incorporés dans: 22 2862450 - 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 à 5 enregistrer des variables modifiées au cours de l'exécution dudit programme. 18. Dispositif de décodage selon la revendication 16, caractérisé en ce que les moyens de construction, décodage et formation 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. 19. 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 à 8. 20. Appareil de traitement (10) d'une image numérique, caractérisé en 20 ce qu'il comporte le dispositif selon l'une quelconque des revendications 9 à 18.