Brevet FR2924563A1 — publié le 20090605

La présente invention se rapporte à un procédé et à un dispositif de codage de signaux numériques et à un procédé et à un dispositif de décodage de signaux numériques ainsi codés. Elle appartient au domaine général du traitement numérique des signaux et a plus précisément trait au codage sans perte des signaux numériques en vue de leur compression. A titre d'exemples nullement limitatifs, les signaux concernés peuvent représenter des images fixes et/ou du son et/ou de la vidéo. Dans le domaine du codage des signaux numériques, on sait utiliser des distributions statistiques de ces signaux pour construire des codes adaptés, au moyen desquels on peut alors coder ces signaux avec une certaine qualité de compression. En particulier, on connaît diverses techniques de codage adaptatif qui mettent en oeuvre une file d'attente constituée d'échantillons du signal. Cette file d'attente est couramment utilisée comme base pour l'obtention d'une distribution statistique du signal. La file d'attente est généralement mise à jour au fur et à mesure que les échantillons sont codés avec un code qui est construit à partir de cette distribution statistique. Par exemple, l'article de C. CHRYSAFIS et al. intitulé "Line Based, Reduced Memory, Wavelet Image Compression", Data Compression Conference, 1998, décrit un exemple de codage adaptatif d'images de ce type, qui met notamment en oeuvre une pluralité d'histogrammes prédéfinis. Un inconvénient fréquent des techniques de l'art antérieur est leur complexité de calcul, laquelle implique généralement des temps de traitement significatifs. La présente invention a pour but l'obtention d'un meilleur compromis entre les performances de la compression sans pertes (en anglais "lossless compression") des signaux numériques lors de leur codage et la complexité de calcul des signaux numériques codés. Dans ce but, la présente invention propose un procédé de codage d'un signal numérique représentant des données physiques et constitué d'une suite d'échantillons, comportant des étapes consistant à : 2 - calculer une première distribution statistique à partir des WS premiers échantillons de la suite d'échantillons, WS étant un entier prédéterminé, de façon à obtenir une première information représentative de la première distribution statistique ; - coder les WS premiers échantillons à l'aide d'un premier code construit à partir de la première information ; puis, pour un échantillon courant qui suit les WS premiers échantillons de la suite d'échantillons : - calculer une seconde distribution statistique à partir des échantillons contenus dans une file d'attente constituée d'un nombre prédéterminé WS d'échantillons de la suite d'échantillons, de façon à obtenir une seconde information représentative de la seconde distribution statistique ; et - coder l'échantillon courant à l'aide d'un second code construit à partir de la seconde information, de façon à obtenir un échantillon courant codé. Ainsi, l'invention permet de comprimer le signal avec un taux de compression plus élevé que dans l'art antérieur, en combinant certains avantages du codage adaptatif (de par l'adaptation à la statistique du signal) et du codage non adaptatif (grâce à la transmission d'une statistique spécifique pour les WS premiers échantillons). En effet, on observe un gain de 1 à 5 % par rapport à l'art antérieur, en taux de compression. En outre, l'invention permet de conserver la simplicité de mise en oeuvre de certaines autres approches adaptatives. Selon une caractéristique particulière, le procédé de codage comporte en outre une étape consistant à mettre à jour la file d'attente. Dans un mode particulier de réalisation, l'étape de mise à jour consiste à retirer de la file d'attente le symbole le plus ancien et à ajouter dans la file d'attente l'échantillon courant. La mise à jour de la file d'attente permet d'améliorer l'adaptation aux variations locales du signal, afin d'augmenter le taux de compression (en anglais "compression rate"). 3 Dans un mode particulier de réalisation, le procédé comporte en outre une étape consistant à modifier la seconde information pour tenir compte d'échantillons qui n'ont aucune occurrence dans la file d'attente. Cela permet de faciliter le codage de l'ensemble des symboles. Dans un mode particulier de réalisation, le calcul de la première distribution statistique comporte le calcul d'un histogramme des WS premiers échantillons. En variante, le calcul de la première distribution statistique peut comporter le calcul d'une densité de probabilité d'occurrence de symboles modélisée par une fonction connue. Les deux techniques ci-dessus présentent une mise en oeuvre aisée. Dans le mode de réalisation où le procédé comporte une étape de modification de la seconde information pour tenir compte d'échantillons qui n'ont aucune occurrence dans la file d'attente, le calcul de la seconde distribution statistique peut, selon une caractéristique particulière, comporter le calcul d'un histogramme des WS échantillons présents dans la file d'attente et l'étape de modification de la seconde information peut consister à parcourir cet histogramme et à y remplacer toute valeur nulle par la valeur 1. En variante, toujours dans le mode de réalisation où le procédé comporte une étape de modification de la seconde information pour tenir compte d'échantillons qui n'ont aucune occurrence dans la file d'attente, le calcul de la seconde distribution statistique peut, selon une caractéristique particulière, comporter le calcul d'une densité de probabilité d'occurrence de symboles modélisée par une fonction connue et l'étape de modification de la seconde information peut consister à vérifier qu'aucun symbole n'a une probabilité d'occurrence nulle et, si ce n'est pas le cas, à modifier des paramètres du modèle de densité de probabilité d'occurrence de symboles de façon que tous les symboles aient une probabilité d'apparition non nulle. Les données physiques peuvent consister en des images fixes et/ou du son et/ou de la vidéo. 4 Dans le même but que celui indiqué plus haut, la présente invention propose également un dispositif de codage d'un signal numérique représentant des données physiques et constitué d'une suite d'échantillons, comportant : - un module pour calculer une première distribution statistique à partir des WS premiers échantillons de la suite d'échantillons, WS étant un entier prédéterminé, de façon à obtenir une première information représentative de la première distribution statistique ; - un module pour coder les WS premiers échantillons à l'aide d'un premier code construit à partir de la première information ; - un module pour calculer une seconde distribution statistique à partir des échantillons contenus dans une file d'attente constituée d'un nombre prédéterminé WS d'échantillons de la suite d'échantillons, de façon à obtenir une seconde information représentative de la seconde distribution statistique ; et - un module pour coder un échantillon courant qui suit les WS premiers échantillons de la suite d'échantillons à l'aide d'un second code construit à partir de la seconde information, de façon à obtenir un échantillon courant codé. Toujours dans le même but, la présente invention propose corrélativement un procédé de décodage d'un signal numérique codé représentant des données physiques et constitué d'une suite d'échantillons codés, comportant des étapes consistant à : -décoder une première information représentative de la distribution statistique des WS premiers échantillons codés, WS étant un entier prédéterminé ; - décoder les WS premiers échantillons codés, à l'aide d'un premier code construit à partir de ladite première information ; puis, pour un échantillon courant codé qui suit les WS premiers échantillons de la suite d'échantillons : - calculer une seconde information représentative de la distribution statistique des échantillons codés contenus dans une file d'attente constituée d'un nombre prédéterminé WS d'échantillons codés de la suite d'échantillons codés ; et - décoder l'échantillon courant codé, à l'aide d'un second code construit à partir de la seconde information, de façon à obtenir un échantillon 5 courant décodé. Selon une caractéristique particulière, le procédé de décodage comporte en outre une étape consistant à mettre à jour la file d'attente. Dans un mode particulier de réalisation, l'étape de mise à jour consiste à retirer de la file d'attente le symbole le plus ancien et à ajouter dans la file d'attente l'échantillon courant codé. Toujours dans le même but, la présente invention propose aussi un dispositif de décodage d'un signal numérique codé représentant des données physiques et constitué d'une suite d'échantillons codés, comportant : - un module pour décoder une première information représentative de la distribution statistique des WS premiers échantillons codés, WS étant un entier prédéterminé ; - un module pour décoder les WS premiers échantillons codés, à l'aide d'un premier code construit à partir de la première information ; - un module pour calculer une seconde information représentative de la distribution statistique des échantillons codés contenus dans une file d'attente constituée d'un nombre prédéterminé WS d'échantillons codés de la suite d'échantillons codés ; et - un module pour décoder un échantillon courant codé, à l'aide d'un second code construit à partir de la seconde information, de façon à obtenir un 25 échantillon courant décodé. Toujours dans le même but, la présente invention vise aussi un système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications, remarquable en ce qu'il comprend au moins un dispositif terminal équipé d'un dispositif de codage 30 et/ou d'un dispositif de décodage tels que succinctement décrits ci-dessus. Toujours dans le même but, la présente invention vise aussi un moyen de stockage d'informations lisible par un ordinateur ou un 6 microprocesseur conservant des instructions d'un programme informatique, remarquable en ce qu'il permet la mise en oeuvre d'un procédé de codage et/ou d'un procédé de décodage tels que succinctement décrits ci-dessus, lorsque les informations stockées sont lues par l'ordinateur ou le microprocesseur. Dans un mode particulier de réalisation, le moyen de stockage est partiellement ou totalement amovible. Toujours dans le même but, la présente invention vise aussi un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, remarquable en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de codage et/ou un procédé de décodage tels que succinctement décrits ci-dessus, lorsque ce programme est chargé dans et exécuté par l'appareil programmable. Les caractéristiques particulières et les avantages du dispositif de codage, du procédé et du dispositif de décodage, du système de télécommunications, du moyen de stockage d'informations et du produit programme d'ordinateur étant similaires à ceux du procédé de codage, ils ne sont pas répétés ici. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit de modes particuliers de réalisation, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels : - la figure 1 montre de manière simplifiée un système de traitement d'images numériques susceptible de mettre en oeuvre un procédé de codage et/ou un procédé de décodage conformes à la présente invention ; - la figure 2 représente de manière schématique un mode particulier de réalisation d'un appareil susceptible de mettre en oeuvre un procédé de codage et/ou un procédé de décodage conformes à la présente invention ; - la figure 3 est un organigramme illustrant les principales étapes d'un procédé de codage conforme à la présente invention, dans un mode particulier de réalisation ; et 7 - la figure 4 est un organigramme illustrant les principales étapes d'un procédé de décodage conforme à la présente invention, dans un mode particulier de réalisation. L'invention permet de coder un signal numérique sans pertes. Dans ce qui suit, la présente invention est décrite à titre d'exemple nullement limitatif dans le cas où les signaux numériques à traiter représentent une image fixe, c'est-à-dire que les signaux sont bidimensionnels. Cependant, le principe reste le même dans le cas de signaux possédant un nombre de dimensions plus élevé, par exemple du type représentant une vidéo (trois dimensions), ou un nombre de dimensions moins élevé, par exemple du type représentant du son (une dimension). Le schéma-bloc de la figure 1 illustre un système de traitement d'images numériques notamment par codage et décodage selon l'invention, désigné par la référence générale notée 1. Le système comporte un dispositif 2 de codage, une unité 4 de transmission ou stockage et un dispositif 6 de décodage. L'invention trouve une application particulièrement intéressante dans un système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications. Le procédé de codage et/ou le procédé de décodage selon l'invention peuvent être mis en oeuvre dans des dispositifs terminaux du système, de façon à autoriser une transmission de fichiers à travers le réseau de télécommunications et réduire ainsi le trafic et les temps de transmission. Une autre application particulièrement intéressante consiste à mettre en oeuvre le procédé de codage et/ou le procédé de décodage selon l'invention dans un dispositif de stockage d'entités multimédia, de façon à pouvoir stocker une grande quantité de données dans une unité de stockage. Comme le montre la figure 1, le dispositif 2 de codage selon l'invention reçoit en entrée une image IO d'origine. L'image IO est traitée par le dispositif 2 de codage qui délivre en sortie un fichier codé contenant des données d'image comprimées, désigné par le signe de référence FC. 8 Le traitement exécuté dans le dispositif 2 de codage consiste à effectuer des opérations de transformation, de quantification et de codage entropique, respectivement dans les unités 10, 12 et 14. L'opération de codage entropique effectuée dans l'unité 14 est celle qui met en oeuvre l'invention, tandis que les opérations de transformation et de quantification respectivement effectuées dans les unités 10 et 12 mettent en oeuvre des moyens classiques. Le fichier codé FC est fourni à l'unité 4 de transmission ou stockage, pour être, par exemple, transmis à travers un réseau ou stocké dans une unité 10 de stockage. Le dispositif 6 de décodage reçoit en entrée le fichier codé FC en provenance de l'unité 4 de transmission ou stockage et fournit en sortie une image décodée (ou décomprimée) ID, laquelle est sensiblement identique à l'image IO d'origine. 15 Lors du décodage, l'image codée est successivement soumise à des opérations de décodage entropique, de déquantification et de transformation inverse, respectivement dans les unités 18, 20 et 22. L'opération de décodage entropique effectuée dans l'unité 18 est celle qui met en oeuvre l'invention, tandis que les étapes de déquantification et 20 de transformation inverse respectivement effectuées dans les unités 20 et 22 mettent en oeuvre des moyens classiques. Comme décrit ci-dessus, l'image est tout d'abord transformée. Pour cela, on peut appliquer une technique de transformation connue comme la DCT (transformée en cosinus discrète, en anglais "Discrete Cosine Transform") ou la 25 transformée en ondelettes (utilisée dans la norme JPEG2000). On peut également utiliser une décomposition par filtrage orienté comme décrit dans le document FR-A-2 889 382. Les données engendrées par l'étape de transformation sont ensuite quantifiées. Pour cela, on peut utiliser une étape de quantification connue telle 30 que la quantification scalaire uniforme ou la quantification vectorielle. On suppose alors que les données issues de la quantification se présentent sous la forme d'un signal dont les échantillons peuvent être indexés 9 de façon monodimensionnelle sous forme d'une liste de N échantillons {xo, xi, Xi, ..., XN_1}. D'autre part, on suppose que la dynamique de ces échantillons est connue, c'est-à-dire qu'on connaît la valeur la plus faible et la valeur la plus élevée des échantillons. En outre, on connaît la liste des symboles pouvant apparaître dans le signal, c'est-à-dire l'alphabet du signal. Dans toute la suite, le terme "alphabet" désigne ainsi l'ensemble des valeurs qui peuvent être prises par le signal, le terme "symbole" désigne un élément de l'alphabet et le terme "échantillon" désigne une valeur temporelle (c'est-à-dire la grandeur de la valeur à un instant donné), spatiale ou spatio- temporelle prise par le signal, selon sa nature, par exemple une valeur prise sur un pixel, dans l'exemple non limitatif où les signaux représentent des images. L'organigramme de la figure 3 illustre des étapes d'un procédé de codage conforme à la présente invention, dans un mode particulier de réalisation. On commence par sélectionner une taille, notée WS dans toute la suite (de l'anglais "Window Size") pour une fenêtre d'adaptativité (cette étape n'est pas représentée sur le dessin). Cette fenêtre signifie que lorsqu'on code un échantillon, la statistique qui va être utilisée (comme décrit ci-dessous) pour construire le code servant au codage de cet échantillon est calculée sur les WS échantillons qui précèdent cet échantillon, dans l'ordre d'apparition des échantillons dans le signal. En pratique, on choisira par exemple une taille WS égale à 1024 ou 2048 échantillons. Il n'est pas possible de donner ici une taille optimale prédéfinie, celle-ci variant beaucoup en fonction de la nature du signal et de la vitesse de ses variations. La valeur de WS peut être fixée une fois pour toutes, ou être inscrite dans le fichier comprimé. Le codage des WS premiers échantillons du signal est différent du codage des échantillons suivants. Il comporte les étapes suivantes. Au cours d'une étape 300, on extrait une information Dl représentative de la distribution des WS premiers échantillons du signal. Cette information Dl peut par exemple être l'histogramme des WS premiers échantillons. En variante, l'information Dl peut être une densité de probabilité 10 d'occurrence de symboles, modélisée par une fonction connue, par exemple par une gaussienne généralisée. On code ensuite cette information dans le fichier comprimé. Ainsi, si l'information Dl est un histogramme, on code cet histogramme. Cela consiste à inscrire dans le fichier comprimé le nombre d'occurrences de chaque symbole de l'alphabet du signal. On notera que cette information peut elle-même être comprimée. Dans la variante ci-dessus, où l'information Dl est une densité de probabilité modélisée, si la fonction connue est une gaussienne généralisée, on inscrit dans le fichier comprimé la valeur prise par les paramètres du modèle de gaussienne généralisée qui s'approche au mieux de la statistique du signal. Puis lors d'une étape 302, on construit un code Cl adapté à la distribution dont l'information Dl précédemment codée est représentative. Cela consiste, si besoin est, à reconstruire la distribution en question (par exemple, à l'aide de la gaussienne dans la variante décrite ci-dessus). Dans le mode particulier de réalisation où l'information Dl est l'histogramme, il n'est pas nécessaire d'effectuer cette étape car l'histogramme codé est considéré comme étant la distribution en question. A l'aide de cette distribution, c'est-à-dire de cette statistique des WS premiers échantillons, on construit un code adapté. Cela consiste par exemple, dans le mode particulier de réalisation où l'information Dl est l'histogramme, à calculer les probabilités d'apparition de chaque symbole de l'alphabet du signal et à construire un code arithmétique adapté à ces probabilités d'apparition. Pour plus de détails sur les codes arithmétiques, on se reportera utilement à l'adresse Web suivante : http://www.unit-c. fr/Members/ythomasNideocommunications1/codstat/arith/attachment download/file En variante, le code peut être un code de Huffman. Pour plus de détails sur le codage de Huffman, on se reportera utilement à l'adresse Web suivante : http://www.apprendre-en-ligne.net/graphes/arborescence/huffman.html Il est à noter que parfois, il n'est pas nécessaire de construire un code Cl stricto sensu, dans la mesure où le codeur entropique est capable de produire un codage de symboles directement à partir des probabilités d'apparition. 11 L'étape suivante 304 consiste à coder les WS premiers échantillons du signal avec le code Cl. Cela est connu en soi. L'information comprimée, représentée par un train de bits, est inscrite dans le fichier comprimé. Au cours de l'étape suivante 306, on construit une file d'attente qui contient les WS premiers échantillons, dans leur ordre d'apparition dans le signal. Cette étape peut être effectuée avant ou après les étapes précédentes 300, 302 et 304 ou en parallèle à celles-ci. En variante, la file d'attente peut être construite en choisissant les WS échantillons de façon aléatoire dans le signal. Quel que soit le mode de construction de la file d'attente, on code ensuite les échantillons qui suivent les WS premiers échantillons du signal. Pour cela, on extrait, lors d'une étape 308, une information D2 représentative des WS échantillons présents dans la file d'attente. Dans un mode particulier de réalisation, on utilise pour cela exactement la même approche que celle mise en oeuvre pour extraire l'information Dl. Toutefois, on n'a pas besoin ici d'inscrire cette information dans le fichier comprimé. Puis lors d'une étape 310, on corrige l'information D2 pour tenir compte des échantillons qui ne sont pas présents dans la file d'attente. En effet, si l'échantillon qu'on s'apprête à coder n'a aucune occurrence dans la file d'attente, alors on risque de construire un code qui ne permet pas de le coder. Dans un mode particulier de réalisation où l'information D2 est l'histogramme des échantillons de la file d'attente, l'étape 310 consiste à parcourir cet histogramme et à mettre artificiellement à 1 toute valeur qui vaut zéro. On garantit ainsi que tous les symboles ont une occurrence non nulle. La nouvelle information représentative de la distribution, une fois cette correction effectuée, est notée D2C. Dans une variante où l'information D2 est une densité de probabilité d'occurrence de symboles modélisée par une gaussienne généralisée, l'étape 310 consiste à vérifier qu'aucun symbole n'a une probabilité d'apparition nulle et, si tel n'est pas le cas, à modifier les paramètres du modèle de façon que tous les symboles aient une probabilité d'apparition non nulle. 12 Au cours de l'étape suivante 312, on construit un code C2 adapté à D2C. Cette étape est strictement similaire à l'étape 302 de construction du code Cl. Au cours de l'étape suivante 314, on code l'échantillon courant à l'aide du code C2. Cette étape est similaire aux traitements appliqués à chacun des WS premiers échantillons du signal lors des opérations de codage à l'aide du code Cl. A l'étape suivante 316, on met à jour la file d'attente. Cela consiste à retirer de la file d'attente le symbole qui est le plus ancien et à ajouter le symbole courant. Ensuite, s'il reste des échantillons dans le signal, on sélectionne le symbole qui suit le symbole courant dans le signal, qui devient alors le nouveau symbole courant. On retourne ensuite à l'étape 308 décrite plus haut. L'organigramme de la figure 4 illustre les principales étapes du décodage. On commence par sélectionner une taille WS de fenêtre d'adaptativité égale à la taille de la fenêtre utilisée lors du codage (cette étape n'est pas représentée sur le dessin). Si cette taille a été écrite dans le fichier comprimé lors du codage, on va l'y lire. Le décodage des WS premiers échantillons du signal codé est différent du décodage des échantillons suivants. Il comporte les étapes suivantes. Au cours d'une étape 400, on décode dans le fichier comprimé l'information Dl représentative de la distribution des WS premiers échantillons du signal. Dans un mode particulier de réalisation où l'information Dl est l'histogramme des WS premiers échantillons du signal, on décode cet histogramme. Cela consiste à lire dans le fichier comprimé le nombre d'occurrences de chaque symbole de l'alphabet du signal. Dans la variante où l'information Dl est une densité de probabilité d'occurrence de symboles modélisée par une gaussienne généralisée, on lit dans le fichier comprimé la valeur prise par les paramètres du modèle de gaussienne généralisée qui s'approche au mieux de la statistique du signal. 13 L'étape suivante 402 consiste à construire un code Cl adapté à la distribution décodée. Cette étape est similaire à l'étape 302 mise en oeuvre au codage. L'étape suivante 404 consiste à décoder les WS premiers échantillons du signal codé à l'aide du code Cl. Cela est connu en soi. L'information décomprimée est représentée par un train de symboles. L'étape suivante 406 de construction d'une file d'attente contenant les WS premiers échantillons est similaire à l'étape 306 mise en oeuvre au codage. On procède ensuite au décodage des échantillons qui suivent les WS premiers échantillons. Pour cela, on extrait une information D2 représentative de la distribution des échantillons de la file d'attente lors d'une étape 408 similaire à l'étape 308 exécutée lors du codage. Puis on corrige l'information D2 pour tenir compte des symboles sans occurrence, de façon à obtenir une distribution D2C, lors d'une étape 410 similaire à l'étape 310 exécutée lors du codage. Ensuite, on construit un code C2 adapté à la distribution D2C au cours d'une étape 412 similaire à l'étape 312 exécutée au codage. L'étape suivante 414 consiste à décoder l'échantillon courant à l'aide du code C2. Cette étape est similaire aux traitements appliqués à chacun des WS premiers échantillons du signal lors des opérations de décodage à l'aide du code Cl. Puis l'étape 416 de mise à jour de la file d'attente est similaire à l'étape 316 exécutée lors du codage. On passe ensuite au symbole suivant de la même façon qu'au codage et on retourne à l'étape 408. La figure 2 montre un mode particulier de réalisation d'un dispositif de traitement d'information apte à fonctionner comme dispositif de codage d'un signal numérique et/ou comme dispositif de décodage d'un signal numérique codé conformes à la présente invention. 14 Le dispositif illustré sur la figure 2 peut comporter tout ou partie des moyens de mise en oeuvre d'un procédé de codage d'un signal numérique et/ou d'un procédé de décodage d'un signal numérique codé conformes à la présente invention. Selon le mode de réalisation choisi, ce dispositif peut être par exemple un micro-ordinateur ou une station de travail 600 connecté à différents périphériques, par exemple, une caméra numérique 601 (ou un scanner, ou tout autre moyen d'acquisition ou de stockage d'images) reliée à une carte graphique (non représentée) et fournissant ainsi des informations à traiter selon l'invention. Le micro-ordinateur 600 comporte de préférence une interface de communication 602 reliée à un réseau 603 apte à transmettre des informations numériques. Le micro-ordinateur 600 comporte également un moyen de stockage permanent 604, tel qu'un disque dur, ainsi qu'un lecteur de moyens de stockage temporaire tel qu'un lecteur de disquettes 605 pour coopérer avec une disquette 606. La disquette 606 et le disque dur 604 peuvent contenir des données d'implantation logicielle de l'invention ainsi que le code du ou des programme(s) d'ordinateur dont l'exécution par le micro-ordinateur 600 met en oeuvre la présente invention, ce code étant par exemple mémorisé sur le disque dur 604 une fois qu'il a été lu par le micro-ordinateur 600. En variante, le ou les programme(s) permettant au dispositif 600 de mettre en oeuvre l'invention sont stockés dans une mémoire morte (par exemple du type ROM) 607. Selon une autre variante, ce ou ces programme(s) sont reçus totalement ou partiellement à travers le réseau de communication 603 pour être stockés comme indiqué. Le dispositif est relié à un microphone 608 par l'intermédiaire d'une carte d'entrées-sorties 614. Les données à traiter selon l'invention seront dans ce cas du signal audio. Le micro-ordinateur 600 comprend également un écran 609 pour visualiser les informations à traiter et/ou servir d'interface avec l'utilisateur, afin 15 que l'utilisateur puisse par exemple paramétrer certains modes de traitement à l'aide du clavier 610 ou de tout autre moyen approprié de pointage et/ou de saisie tel qu'une souris, un crayon optique, etc. Une unité de calcul ou unité centrale de traitement (CPU) 611 exécute les instructions relatives à la mise en oeuvre de l'invention, ces instructions étant stockées dans la mémoire morte ROM 607 ou dans les autres éléments de stockage décrits. Lors de la mise sous tension du dispositif 600, les programmes et méthodes de traitement stockés dans une des mémoires non-volatiles, par exemple la ROM 607, sont transférés dans une mémoire vive (par exemple du type RAM) 612, qui contient alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en oeuvre de l'invention. En variante, les méthodes de traitement du signal numérique peuvent être stockées dans différents emplacements de stockage. De façon générale, un moyen de stockage d'information lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement partiellement ou totalement amovible, peut mémoriser un ou plusieurs programme(s) dont l'exécution met en oeuvre les procédés de codage et/ou de décodage décrits précédemment. On peut faire évoluer le mode particulier de réalisation choisi pour l'invention, par exemple en ajoutant des méthodes de traitement actualisées ou améliorées ; dans un tel cas, ces nouvelles méthodes peuvent être transmises au dispositif 600 par le réseau de communication 603, ou chargées dans le dispositif 600 par l'intermédiaire d'une ou de plusieurs disquettes 606. Bien entendu, les disquettes 606 peuvent être remplacées par tout support d'information jugé approprié (CD-ROM, carte mémoire, etc.). Un bus de communication 613 permet la communication entre les différents éléments du micro-ordinateur 600 et les éléments reliés à celui-ci. On notera que la représentation du bus 613 n'est pas limitative. En effet, l'unité centrale CPU 611 est, par exemple, susceptible de communiquer des instructions à tout élément du micro-ordinateur 600, directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 600. REVENDICATIONS 1. Procédé de codage d'un signal numérique représentant des données physiques et constitué d'une suite d'échantillons, comportant des étapes consistant à : - calculer une première distribution statistique à partir des WS premiers échantillons de ladite suite d'échantillons, où WS est un entier, de façon à obtenir (300) une première information (Dl) représentative de ladite première distribution statistique ; - coder (302, 304) lesdits WS premiers échantillons à l'aide d'un premier code (Cl) construit à partir de ladite première information (D1) ; puis, pour un échantillon courant qui suit les WS premiers échantillons de ladite suite d'échantillons : - calculer une seconde distribution statistique à partir des échantillons contenus dans une file d'attente constituée d'un nombre prédéterminé WS d'échantillons de ladite suite d'échantillons, de façon à obtenir (308) une seconde information (D2) représentative de ladite seconde distribution statistique ; et - coder (312, 314) ledit échantillon courant à l'aide d'un second code (C2) construit à partir de ladite seconde information (D2), de façon à obtenir un échantillon courant codé. 2. Procédé de codage selon la revendication 1, caractérisé en ce qu'il comporte en outre une étape consistant à mettre à jour (316) ladite file d'attente. 3. Procédé de codage selon la revendication 2, caractérisé en ce que ladite étape de mise à jour (316) consiste à retirer de ladite file d'attente le symbole le plus ancien et à ajouter dans ladite file d'attente ledit échantillon courant. 4. Procédé de codage selon la revendication 1, 2 ou 3, caractérisé en ce qu'il comporte en outre une étape consistant à modifier (310) ladite seconde information (D2) pour tenir compte d'échantillons qui n'ont aucune occurrence dans la file d'attente. 17 5. Procédé de codage selon l'une quelconque des revendications précédentes, caractérisé en ce que le calcul de ladite première distribution statistique comporte le calcul d'un histogramme des WS premiers échantillons. 6. Procédé de codage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le calcul de ladite première distribution statistique comporte le calcul d'une densité de probabilité d'occurrence de symboles modélisée par une fonction connue. 7. Procédé de codage selon la revendication 4, 5 ou 6, caractérisé en ce que le calcul de ladite seconde distribution statistique comporte le calcul d'un histogramme des WS échantillons présents dans la file d'attente et en ce que ladite étape (310) de modification de ladite seconde information (D2) consiste à parcourir ledit histogramme et à remplacer toute valeur nulle par la valeur 1. 8. Procédé de codage selon la revendication 4, 5 ou 6, caractérisé en ce que le calcul de ladite seconde distribution statistique comporte le calcul d'une densité de probabilité d'occurrence de symboles modélisée par une fonction connue et en ce que ladite étape (310) de modification de ladite seconde information (D2) consiste à vérifier qu'aucun symbole n'a une probabilité d'occurrence nulle et, si ce n'est pas le cas, à modifier des paramètres du modèle de densité de probabilité d'occurrence de symboles de façon que tous les symboles aient une probabilité d'apparition non nulle. 9. Procédé de codage selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdites données physiques consistent en des images fixes et/ou du son et/ou de la vidéo. 10. Dispositif (2) de codage d'un signal numérique représentant des données physiques et constitué d'une suite d'échantillons, comportant : -des moyens pour calculer une première distribution statistique à partir des WS premiers échantillons de ladite suite d'échantillons, où WS est un entier, de façon à obtenir une première information (D1) représentative de ladite première distribution statistique ; - des moyens pour coder lesdits WS premiers échantillons à l'aide d'un premier code (Cl) construit à partir de ladite première information (Dl) ; 18 - des moyens pour calculer une seconde distribution statistique à partir des échantillons contenus dans une file d'attente constituée d'un nombre prédéterminé WS d'échantillons de ladite suite d'échantillons, de façon à obtenir une seconde information (D2) représentative de ladite seconde distribution statistique ; et - des moyens pour coder un échantillon courant qui suit les WS premiers échantillons de ladite suite d'échantillons à l'aide d'un second code (C2) construit à partir de ladite seconde information (D2), de façon à obtenir un échantillon courant codé. 11. Dispositif de codage selon la revendication 10, caractérisé en ce qu'il comporte en outre des moyens pour mettre à jour ladite file d'attente. 12. Dispositif de codage selon la revendication 11, caractérisé en ce que lesdits moyens de mise à jour sont adaptés à retirer de ladite file d'attente le symbole le plus ancien et à ajouter dans ladite file d'attente ledit échantillon courant. 13. Dispositif de codage selon la revendication 10, 11 ou 12, caractérisé en ce qu'il comporte en outre des moyens pour modifier ladite seconde information (D2) pour tenir compte d'échantillons qui n'ont aucune occurrence dans la file d'attente. 14. Dispositif de codage selon l'une quelconque des revendications 10 à 13, caractérisé en ce que le calcul de ladite première distribution statistique comporte le calcul d'un histogramme des WS premiers échantillons. 15. Dispositif de codage selon l'une quelconque des revendications 10 à 13, caractérisé en ce que le calcul de ladite première distribution statistique comporte le calcul d'une densité de probabilité d'occurrence de symboles modélisée par une fonction connue. 16. Dispositif de codage selon la revendication 13, 14 ou 15, caractérisé en ce que le calcul de ladite seconde distribution statistique comporte le calcul d'un histogramme des WS échantillons présents dans la file d'attente et en ce que lesdits moyens de modification de ladite seconde information (D2) sont adaptés à parcourir ledit histogramme et à remplacer toute valeur nulle par la valeur 1. 19 17. Dispositif de codage selon la revendication 13, 14 ou 15, caractérisé en ce que le calcul de ladite seconde distribution statistique comporte le calcul d'une densité de probabilité d'occurrence de symboles modélisée par une fonction connue et en ce que lesdits moyens de modification de ladite seconde information (D2) sont adaptés à vérifier qu'aucun symbole n'a une probabilité d'occurrence nulle et, si ce n'est pas le cas, à modifier des paramètres du modèle de densité de probabilité d'occurrence de symboles de façon que tous les symboles aient une probabilité d'apparition non nulle. 18. Dispositif de codage selon l'une quelconque des revendications 10 à 17, caractérisé en ce que lesdites données physiques consistent en des images fixes et/ou du son et/ou de la vidéo. 19. Procédé de décodage d'un signal numérique codé représentant des données physiques et constitué d'une suite d'échantillons codés, comportant des étapes consistant à : - décoder (400) une première information (Dl) représentative de la distribution statistique des WS premiers échantillons codés ; - décoder (404) les WS premiers échantillons codés, où WS est un entier, à l'aide d'un premier code (Cl) construit (402) à partir de ladite première information (Dl) ; puis, pour un échantillon courant codé qui suit les WS premiers échantillons de ladite suite d'échantillons : - calculer (408) une seconde information (D2) représentative de la distribution statistique des échantillons codés contenus dans une file d'attente constituée d'un nombre prédéterminé WS d'échantillons codés de ladite suite d'échantillons codés ; et - décoder (414) ledit échantillon courant codé, à l'aide d'un second code (C2) construit (412) à partir de ladite seconde information (D2), de façon à obtenir un échantillon courant décodé. 20. Procédé de décodage selon la revendication 19, caractérisé en ce qu'il comporte en outre une étape consistant à mettre à jour (416) ladite file d'attente. 20 21. Procédé de décodage selon la revendication 20, caractérisé en ce que ladite étape de mise à jour (416) consiste à retirer de ladite file d'attente le symbole le plus ancien et à ajouter dans ladite file d'attente ledit échantillon courant codé. 22. Dispositif (6) de décodage d'un signal numérique codé représentant des données physiques et constitué d'une suite d'échantillons codés, comportant : - des moyens pour décoder une première information (Dl) représentative de la distribution statistique des WS premiers échantillons codés, 10 où WS est un entier ; - des moyens pour décoder les WS premiers échantillons codés, à l'aide d'un premier code (Cl) construit à partir de ladite première information (D1); - des moyens pour calculer une seconde information (D2) 15 représentative de la distribution statistique des échantillons codés contenus dans une file d'attente constituée d'un nombre prédéterminé WS d'échantillons codés de ladite suite d'échantillons codés ; et - des moyens pour décoder un échantillon courant codé, à l'aide d'un second code (C2) construit à partir de ladite seconde information (D2), de 20 façon à obtenir un échantillon courant décodé. 23. Dispositif de décodage selon la revendication 22, caractérisé en ce qu'il comporte en outre des moyens pour mettre à jour ladite file d'attente. 24. Dispositif de décodage selon la revendication 23, caractérisé en ce que lesdits moyens de mise à jour (416) sont adaptés à retirer de ladite file 25 d'attente le symbole le plus ancien et à ajouter dans ladite file d'attente ledit échantillon courant codé. 25. Produit programme d'ordinateur pouvant être chargé dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de codage selon l'une 30 quelconque des revendications 1 à 9 et/ou un procédé de décodage selon la revendication 19, 20 ou 21, lorsque ce programme est chargé dans et exécuté par ledit appareil programmable.