Brevet FR2862449A1 — 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, - quantification des blocs de données, pour former des blocs de symboles de quantification, - codage entropique des blocs de données quantifiées, caractérisé en ce qu'il comporte les étapes de: 2 2862449 - détermination du nombre de symboles à coder de chaque bloc de données quantifiées, - génération d'un signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées, - codage du signal précédemment généré. L'invention permet d'obtenir un rapport taux de compression sur distorsion qui est supérieur à celui de la technique antérieure. En effet, la fin de chaque bloc doit être connue lors du décodage ultérieur et une indication de la fin de chaque bloc doit être associée aux données de codage. Grâce à l'invention, cette indication est compacte. Selon une caractéristique préférée, le procédé comporte en outre l'étape préalable de 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 détermination du nombre de symboles à coder de chaque bloc de données quantifiées comporte, pour chaque bloc de données, le calcul du nombre de symbole jusqu'au dernier symbole non nul. Selon une caractéristique préférée, le codage du signal contenant les 20 nombres de symboles à coder de tous les blocs de données quantifiées comporte: - la détermination de la distribution du signal, - la construction d'un mode de codage entropique en fonction de la distribution, - le codage entropique du signal par le mode de codage construit. Cela permet de tenir compte de la statistique particulière du signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées. Le mode de codage utilisé est ainsi adapté à ce signal. Selon une caractéristique préférée, le codage entropique est un 30 codage arithmétique. Ce type de codage donne des résultats expérimentaux satisfaisant tout en étant simple à mettre en oeuvre. Selon une caractéristique préférée, le signal numérique est une image numérique. L'invention concerne aussi un procédé de décodage d'un signal numérique codé par le procédé de codage précédemment présenté, caractérisé en ce qu'il comporte les étapes de: - construction d'un mode de décodage entropique du signal contenant 5 les nombres de symboles à coder de tous les blocs de données quantifiées, - décodage entropique dudit signal. 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 quantification des blocs de données, pour former des blocs de symboles de quantification, des moyens de codage entropique des blocs de données quantifiées, caractérisé en ce qu'il comporte: - des moyens de détermination du nombre de symboles à coder de chaque bloc de données quantifiées, - des moyens de génération d'un signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées, - des moyens de codage du signal précédemment généré. Le dispositif de codage selon l'invention comporte des moyens de mise en oeuvre des caractéristiques précédemment exposées. L'invention concerne aussi un dispositif de décodage comportant des moyens de mise en oeuvre des caractéristiques précédemment présentées. 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 5 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é 10 par les dessins ci-joints, dans lesquels: - la figure 1 représente 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 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 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 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. II 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 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 quantification des blocs de données, pour former 10 des blocs de symboles de quantification, - des moyens 22 de codage entropique des blocs de données quantifiées, Selon l'invention, le dispositif de codage selon l'invention comporte en outre: - des moyens 23 de détermination du nombre de symboles à coder de chaque bloc de données quantifiées, - des moyens 24 de génération d'un signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées, - des moyens 25 de codage du signal précédemment généré. 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 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 du signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées, - des moyens 41 de décodage entropique dudit signal. Il comporte en outre des moyens 42 de décodage de l'image. Le fonctionnement du dispositif de décodage est détaillé dans la suite à l'aide d'un algorithme. 7 2862449 Le dispositif de décodage 4 fournit une image décodée IM' à un dispositif 5 de visualisation d'image. 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 5 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 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 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é. 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 zigzag. Cette technique, appelée zigzag 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 10 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. Il 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. Si le dernier coefficient obtenu correspond à une suite de zéros, il 25 n'est pas pris en compte. Par exemple, soit Vi 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 30 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 quantification, on obtient le vecteur SQV; suivant: 9 2862449 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 10 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 20 unité. L'étape suivante El1 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 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 E11 cette étape est suivie de l'étape E13 qui est la mémorisation de la valeur de la variable M associée au 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 G,. 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. Il 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. 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 E17 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 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. 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. 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 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, 12 2862449 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 20 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. 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 zigzag 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 5 codage d'une image, selon l'invention. Ce procédé est mis en oeuvre dans le 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 15 respectivement similaires aux étapes El à E14 précédemment décrites, à 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. 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 zigzag. L'étape suivante E104 est une quantification du vecteur courant V;. Le 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 5 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 15 unité. L'étape suivante El 11 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 E111 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. 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. 2862449 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 10 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. 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 zigzag. L'étape suivante E120 est une quantification du vecteur courant V;. Le 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 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 Gn auquel appartient le symbole courant. Le groupe Gn 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. 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. 17 2862449 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 2862449 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, - quantification (E4) des blocs de données, pour former des blocs de symboles de quantification, - codage entropique (E19) des blocs de données quantifiées, caractérisé en ce qu'il comporte les étapes de: détermination (E13) du nombre de symboles à coder de chaque bloc de données quantifiées, - génération (E22) d'un signal contenant les nombres de symboles à 15 coder de tous les blocs de données quantifiées, - codage (E24) du signal précédemment généré. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre l'étape préalable (E3) de transformation DCT des blocs de données. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que la détermination du nombre de symboles à coder de chaque bloc de données quantifiées comporte, pour chaque bloc de données, le calcul du nombre de symbole jusqu'au dernier symbole non nul. 4. Procédé selon l'une quelconque des revendication 1 à 3, caractérisé en ce que le codage du signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées comporte: - la détermination (E22) de la distribution du signal, - la construction (E23) d'un mode de codage entropique en fonction de la distribution, - le codage entropique (E24) du signal par le mode de codage construit. 5. Procédé selon la revendication 4, caractérisé en ce que le codage entropique (E24) est un codage arithmétique. 6. Procédé selon l'une quelconque des revendications 1 à 5, 5 caractérisé en ce que le signal numérique est une image numérique. 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 les étapes de: - construction (E30) d'un mode de décodage entropique du signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées, - décodage (E31) entropique dudit signal. 8. Dispositif de codage d'un signal numérique représentatif de grandeurs physiques comportant: - des moyens (20) de division du signal en blocs de données, - des moyens (21) de quantification des blocs de données, pour former des blocs de symboles de quantification, - des moyens (22) de codage entropique des blocs de données quantifiées, caractérisé en ce qu'il comporte: - des moyens (23) de détermination du nombre de symboles à coder de chaque bloc de données quantifiées, - des moyens (24) de génération d'un signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées, - des moyens (25) de codage du signal précédemment généré. 9. Dispositif selon la revendication 8, caractérisé en ce qu'il comporte 30 en outre des moyens de transformation DCT des blocs de données. 10. Dispositif selon la revendication 8 ou 9, caractérisé en ce que les moyens (23) de détermination du nombre de symboles à coder de chaque bloc 2862449 de données quantifiées comportent des moyens de calcul du nombre de symbole jusqu'au dernier symbole non nul, pour chaque bloc de données. 11. Dispositif selon l'une quelconque des revendication 8 à 10, 5 caractérisé en ce que les moyens (25) de codage du signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées comportent: - des moyens de détermination de la distribution du signal, des moyens de construction d'un mode de codage entropique en 10 fonction de la distribution, - des moyens de codage entropique du signal par le mode de codage construit. 12. Dispositif selon la revendication 11, caractérisé en ce que les 15 moyens (25) de codage entropique sont adaptés à mettre en oeuvre un codage arithmétique. 13. Dispositif selon l'une quelconque des revendications 8 à 12, caractérisé en ce qu'il est adapté à coder un signal numérique qui est une image 20 numérique. 14. Dispositif de décodage d'un signal numérique codé par le dispositif selon l'une quelconque des revendications 8 à 13, caractérisé en ce qu'il comporte: - des moyens (40) de construction d'un mode de décodage entropique du signal contenant les nombres de symboles à coder de tous les blocs de données quantifiées, - des moyens (41) de décodage entropique dudit signal. 15. Dispositif de codage selon l'une quelconque des revendications 8 à 13, caractérisé en ce que les moyens de détermination, génération et codage sont incorporés dans: - un microprocesseur (100), 21 2862449 - 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. 5 16. Dispositif de décodage selon la revendication 14, caractérisé en ce que les moyens de construction et décodage sont incorporés dans: - un microprocesseur (100), - une mémoire morte (102) comportant un programme pour traiter les 10 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. 17. Appareil de traitement (10) d'une image numérique, caractérisé en 15 ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 7. 18. Appareil de traitement (10) d'une image numérique, caractérisé en ce qu'il comporte le dispositif selon l'une quelconque des revendications 8 à 16.