Brevet FR2778038A1 — publié le 19991029

La présente invention concerne un dispositif et un procédé de codage d'un 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. Un procédé connu de codage de signal numérique, en l'occurrence d'une image numérique, est le codage par quantification codée en treillis qui est décrit par exemple dans l'article intitulé "Trellis Coded Quantization of Memoryless and Gauss-Markov Sources" de M.W. Marcellin et T.R. Fischer, paru dans IEEE Transactions on Communications, Vol. 38, n 1, Janvier 1990, ainsi que dans l'article "Universal Trellis Coded Quantization" de J.H. Kasner, M.W. Marcellin et B.R. Hunt, disponible par Internet à l'adresse http://vail.ece. arizona.edu/Publications.html. Ce procédé présente l'avantage de minimiser l'erreur de quantification, grâce à l'utilisation du codage en treillis. En outre, afin d'améliorer le rapport compression sur distorsion, les inventeurs de la présente invention ont combiné ce procédé avec un autre mode de codage. Dans ce cas, des blocs du signal a coder se voient attribuer l'un ou l'autre mode de codage, de manière à sélectionner pour chaque bloc le mode de codage le plus approprié, c'est-à-dire fournissant le rapport compression sur distorsion le plus élevé. Par bloc, on entend ici un ensemble de coefficients extraits du signal pour former un vecteur. Le codage par quantification codée en treillis s'applique à une suite de blocs. Pour que ce codage soit optimal, il est nécessaire que la suite soit fixée et connue à l'avance. Cela signifie que pour attribuer de manière optimale ce mode à un bloc donné, il faudrait auparavant connaître l'ensemble des blocs auxquels ce mode est attribué, et donc connaître le résultat de l'attribution. Il y a donc une difficulté pour attribuer de manière optimale les modes de codage aux blocs et par conséquent pour obtenir un rapport compression sur distorsion le plus élevé possible. La présente invention vise à remédier aux inconvénients de la technique antérieure, en fournissant un dispositif et un procédé de compression de signal numérique qui permet d'attribuer le mode de codage par quantification codée en treillis à des blocs formés dans le signal, avec une grande simplicité de mise en oeuvre. A cette fin, I'invention propose une optimisation itérative de l'attribution d'un codage par quantification scalaire et d'un autre mode de codage, à des blocs formés dans un signal numérique. Plus précisément, I'invention concerne un procédé de codage de signal numérique, caractérisé en ce qu'il comporte les étapes de - division du signal en blocs, - mise à jour à laquelle est calculé un coût de codage de chacun des blocs, pour au moins un premier mode de codage et pour un mode de codage par quantification scalaire, - attribution de l'un des modes de codage à chacun des blocs, selon un critère d'attribution dépendant du coût de codage, - réitération des étapes de mise à jour et d'attribution, de manière à satisfaire un critère de convergence, - liaison des blocs auxquels a été attribué le mode de codage par quantification scalaire, pour former une suite de blocs, - codage de la suite de blocs par quantification codée en treillis d'une suite de coefficients extraits des blocs de la suite. Corrélativement, I'invention propose un dispositif de codage de signal numérique, caractérisé en ce qu'il comporte: - des moyens de division de signal numérique en blocs, - des moyens de mise à jour adaptés à calculer un coût de codage de chacun des blocs, pour au moins un premier mode de codage et pour un mode de codage par quantification scalaire, - des moyens d'attribution de l'un des modes de codage à chacun des blocs, selon un critère d'attribution dépendant du coût de codage, les moyens de mise à jour et d'attribution étant adaptés à être mis en oeuvre de manière itérative, de manière à satisfaire un critère de convergence, - des moyens de liaison des blocs auxquels a été attribué le mode de codage par quantification scalaire, pour former une suite de blocs, - des moyens de codage de la suite de blocs par quantification codée en treillis d'une suite de coefficients extraits des blocs de la suite. Grâce au procédé et au dispositif selon l'invention, l'attribution de la quantification scalaire aux blocs constitue une bonne approximation de l'attribution du mode de codage par quantification codée en treillis et présente l'avantage d'être simple et rapide à mettre en oeuvre. En outre, le procédé et le dispositif selon l'invention permettent d'obtenir un rapport compression sur distorsion élevé. En effet, grâce aux itérations de mise à jour et d'attribution, I'invention améliore l'attribution des modes de codage aux blocs. Ces demrniers sont ainsi codés de manière adaptée. Selon une caractéristique préférée, le coût de codage de chaque bloc est une somme pondérée du débit et de l'erreur de codage du bloc considéré. Ce coût de codage est simple à mettre en oeuvre et donne des résultats satisfaisants. Selon une caractéristique préférée, à une itération donnée, le calcul du coût de codage pour le mode de codage par quantification scalaire d'un bloc considéré quelconque, comporte les étapes de: - groupement des blocs auxquels a été attribué le mode de codage par quantification scalaire, pour former un groupe de blocs, - codage du groupe de blocs par quantification scalaire, - détermination d'un codeur entropique adapté à la distribution des symboles issus de la quantification scalaire des blocs du groupe, - codage entropique du bloc considéré quantifié, par le codeur entropique précédemment déterminé, - extraction du débit de codage du bloc considéré. Selon une caractéristique préférée, à une itération donnée, le calcul du coût de codage pour le mode de codage par quantification scalaire d'un bloc considéré quelconque, comporte l'étape de détermination de la distorsion associée au codage du bloc considéré par quantification scalaire. Le débit et la distorsion de codage par quantification scalaire sont déterminés avec des calculs simples et rapides à effectuer. Selon une autre caractéristique préférée, le critère d'attribution minimise le coût de codage. L'attribution d'un mode de codage à un bloc revient à comparer deux coûts de codage et à sélectionner le mode de codage associé au coût le plus faible. Selon une caractéristique préférée, le procédé comporte en outre une étape d'initialisation à laquelle le mode de codage par quantification scalaire est attribué à chacun des blocs. Cette étape permet de calculer un premier coût de codage par quantification scalaire pour chacun des blocs. Selon une caractéristique préférée, le critère de convergence est satisfait lorsque les mêmes modes de codage sont respectivement attribués aux mêmes blocs à deux itérations successives de l'étape d'attribution. Ce critère est fiable tout en étant simple à mettre en oeuvre. Selon une caractéristique préférée, un indicateur est associé à chaque bloc pour indiquer quel mode de codage est attribué à chaque bloc. Cet indicateur est ensuite utilisé lors du décodage des blocs. Selon une caractéristique préférée, le premier mode de codage est une mise à une valeur prédéterminée des coefficients du bloc. Ce mode de codage présente les avantages d'être une bonne approximation des blocs contenant peu d'information, d'être très simple à mettre en oeuvre et d'avoir un débit de codage associé qui est nul. L'invention vise aussi un appareil de traitement de signal numérique, comportant des moyens de mise en oeuvre du procédé de codage, ou encore comportant le dispositif de codage, tels qu'exposés ci-dessus. Les avantages du dispositif de codage et de cet appareil de traitement de signal numérique, sont identiques à ceux du procédé de codage 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é de codage. Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture d'un mode préféré de réalisation illustré par les dessins ci-joints, dans lesquels: - la figure 1 est un bloc diagramme d'un mode de réalisation d'un dispositif de codage de signal numérique selon l'invention; - la figure 2 est un circuit de décomposition en sous-bandes de fréquence, inclus dans le dispositif de la figure 1; - la figure 3 est une image numérique à coder par le dispositif de codage selon l'invention; - la figure 4 est une image décomposée en sous-bandes par le circuit de la figure 2; - la figure 5 est une image décomposée en sous-bandes puis divisée en blocs; - la figure 6 représente un circuit de codage par quantification codée en treillis, inclus dans le dispositif de la figure 1; - la figure 7 est un bloc diagramme d'un mode de réalisation d'un dispositif de décodage selon l'invention; - la figure 8 est un algorithme de codage d'un signal numérique selon l'invention; - la figure 9 est un algorithme de décodage d'un signal numérique selon l'invention. Selon le mode de réalisation choisi et représenté à la figure 1, un dispositif de codage selon l'invention est destiné à coder un signal numérique dans le but de le compresser. Le dispositif de codage est intégré dans un appareil 100, qui est par exemple un appareil photographique numérique, ou un camescope numérique, ou un système de gestion de base de données, ou encore un ordinateur. Le signal numérique à compresser SI est dans ce mode particulier de réalisation une suite d'échantillons numériques représentant une image. Le dispositif comporte une source de signal 1, ici de signal d'image. De manière générale, la source de signal soit contient le signal numérique, et est par exemple une mémoire, un disque dur ou un CD-ROM, soit convertit un signal analogique en signal numérique, et est par exemple un camescope analogique associé à un convertisseur analogiquenumérique. Une sortie 11 de la source de signal est reliée à un circuit d'analyse, ou de décomposition en sous-bandes 2. Le circuit de décomposition 2 possède des sorties 21 qui sont reliées à un circuit de division en blocs 4. Le circuit 4 a des sorties 41 reliées à un circuit de sélection 5. Le circuit de sélection 5 comporte plusieurs circuits de codage, par exemple un premier et un second circuits 51 et 52, qui codent les blocs reçus du circuit 4 selon un premier et un second modes de codage. Le premier mode de codage est ici une mise à une valeur prédéterminée, par exemple nulle, des coefficients des blocs, et le second mode de codage est une quantification scalaire des coefficients de chacun des blocs. Une sortie 511 du circuit 51 et une sortie 524 du circuit 52 sont reliées à un circuit de comparaison 53, dont une première sortie 531 est reliée à un circuit de traitement 8 et dont une seconde sortie 532 est reliée à un circuit de codage 6. Le fonctionnement du circuit de sélection 5 sera exposé dans la suite. Le circuit de codage 6 comporte un circuit de liaison 61. Ce demrnier a une sortie 614 reliée à un circuit 62 de codage par quantification codée en treillis, dit TCQ d'après l'Anglais "Treillis Coded Quantization". Le circuit 62 a des sorties 624 et 622 reliée à un circuit 63 de codage entropique dont une sortie 634 est reliée au circuit de traitement 8, qui est par exemple un circuit de transmission, ou une mémoire. La source d'image 1 est un dispositif pour générer une suite d'échantillons numériques représentant une image IM. La source 1 comporte une mémoire d'image et fournit un signal numérique d'image SI à l'entrée du circuit de décomposition 2. Le signal d'image SI est une suite de mots numériques, par exemple des octets. Chaque valeur d'octet représente un pixel de l'image IM, ici à 256 niveaux de gris, ou image noir et blanc. Le circuit de décomposition en sous-bandes 2, ou circuit d'analyse, est un ensemble classique de filtres, respectivement associés à des décimateurs par deux, qui filtrent le signal d'image selon deux directions, en sous-bandes de hautes et basses fréquences spatiales. Selon la figure 2, le circuit 2 comporte trois blocs successifs d'analyse pour décomposer l'image IM en des sous-bandes selon trois niveaux de résolution. De manière générale, la résolution d'un signal est le nombre d'échantillons par unité de longueur utilisés pour représenter ce signal. Dans le cas d'un signal d'image, la résolution d'une sous-bande est liée au nombre d'échantillons par unité de longueur utilisés pour représenter cette sous-bande horizontalement et verticalement. La résolution dépend du nombre de décimations effectuées, du facteur de décimation et de la résolution de l'image initiale. Le premier bloc d'analyse reçoit le signal numérique d'image et l'applique à deux filtres numériques respectivement passe-bas et passe-haut 21 et 22 qui filtrent le signal d'image selon une première direction, par exemple horizontale dans le cas d'un signal d'image. Après passage par des décimateurs par deux 210 et 220, les signaux filtrés résultant sont respectivement appliqués à deux filtres passe-bas 23 et 25, et passe- haut 24 et 26, qui les filtrent selon une seconde direction, par exemple verticale dans le cas d'un signal d'image. Chaque signal filtré résultant passe par un décimateur par deux respectif 230, 240, 250 et 260. Le premier bloc délivre en sortie quatre sous-bandes LL1, LH1, HL1 et HH1 de résolution RES1 la plus élevée dans la décomposition. La sous-bande LL1 comporte les composantes, ou coefficients, de basse fréquence, selon les deux directions, du signal d'image. La sous-bande LH, comporte les composantes de basse fréquence selon une première direction et de haute fréquence selon une seconde direction, du signal d'image. La sous-bande HL1 comporte les composantes de haute fréquence selon la première direction et les composantes de basse fréquence selon la seconde direction. Enfin, la sous-bande HH1 comporte les composantes de haute fréquence selon les deux directions. Chaque sous-bande est une image construite à partir de l'image d'origine, qui contient de l'information correspondant à une orientation respectivement verticale, horizontale et diagonale des contours de l'image, dans une bande de fréquence donnée. La sous-bande LL1 est analysée par un bloc d'analyse analogue au précédent pour fournir quatre sous-bandes LL2, LH2, HL2 et HH2 de niveau de résolution RES2 intermédiaire dans la décomposition. La sous-bande LL2 comporte les composantes de basse fréquence selon les deux directions d'analyse, et est à son tour analysée par le troisième bloc d'analyse analogue aux deux précédents. Le troisième bloc d'analyse fournit des sous-bandes LL3, LH3, HL3 et HH3, de résolution RES3 la plus faible dans la décomposition, résultant du découpage en sous-bandes de la sous-bande LL2. Chacune des sous-bandes de résolution RES2 et RES3 correspond également à une orientation dans l'image. La décomposition effectuée par le circuit 2 est telle qu'une sous- bande d'une résolution donnée est découpée en quatre sous-bandes de résolution inférieure et a donc quatre fois plus de coefficients que chacune des sous-bandes de résolution inférieure. Une image numérique IM en sortie de la source d'image 1 est représentée de manière schématique à la figure 3, tandis que la figure 4 représente l'image IMD résultant de la décomposition de l'image IM, en dix sous-bandes selon trois niveaux de résolution, par le circuit 2. L'image IMD comporte autant d'information que l'image d'origine IM, mais l'information est fréquentiellement découpée selon trois niveaux de résolution. Le niveau de plus basse résolution RES3 comporte les sous-bandes LL3, HL3, LH3 et HH3, c'est-à-dire les sous-bandes de basse fréquence selon les deux directions d'analyse. Le second niveau de résolution RES2 comporte les sous-bandes HL2, LH2 et HH2 et le niveau de plus haute résolution RES1 comporte les sous-bandes de plus haute fréquence HL1, LH1 et HH1. Bien entendu, le nombre de niveaux de résolution, et par conséquent de sous-bandes, peut être choisi différemment, par exemple 13 sous-bandes et quatre niveaux de résolution, pour un signal bi-dimensionnel tel qu'une image. Le nombre de sous-bandes par niveau de résolution peut également être différent. Les circuits d'analyse et de synthèse sont adaptés à la dimension du signal traité. Les sous-bandes formées par le circuit 2 sont fournies au circuit de division 4, selon un ordre de sous-bande a priori quelconque, mais prédéterminé. Il est à noter que la décomposition en sous-bandes de fréquence du signal n'est pas essentielle pour l'invention, qui peut être mise en oeuvre pour un signal numérique qui n'a pas été décomposé en sous-bandes. Il est a noter également qu'une sous-bande du signal numérique est ellemême un signal numérique, et que selon l'invention, elle est traitée indépendamment des autres sous-bandes. Comme représenté à la figure 5, le circuit de division 4 divise chaque sous-bande de détail en bloc. Selon le mode de réalisation choisi, toutes les sous-bandes de détail fournies au circuit 4 sont divisées en un même nombre N de blocs Bpr, o l'indice p est un entier, ici entre 1 et 9, qui représente l'ordre de la sous-bande considérée et l'indice n, entre 1 et N, est un entier qui représente l'ordre du bloc dans la sous- bande considérée. Les blocs sont ici de forme carrée, mais peuvent être en variante de forme rectangulaire. De manière générale, un bloc est un ensemble de coefficients extraits de la sous-bande pour former un vecteur. L'ordre des blocs est a priori quelconque, mais prédéterminé. Pour des raisons pratiques, les blocs sont ordonnés de la même manière dans toutes les sous-bandes, par exemple de gauche à droite et de haut en bas. En conséquence du mode de division en blocs, la surface des blocs est divisée par quatre en passant de la résolution RES1 à la résolution RES2, et de la résolution RES2 à la résolution RES3. Cette division en blocs est simple à mettre en oeuvre, puisque toutes les sous-bandes sont divisées en un même nombre de blocs. Cependant, pour la mise en oeuvre de l'invention, le nombre et le format des blocs peuvent être différents d'une résolution à l'autre et d'une sous-bande à l'autre. Le circuit de sélection 5 sélectionne le premier ou le second mode de codage pour chacun des blocs fournis par le circuit 4, comme détaillé dans la suite. Le premier mode de codage (circuit 51) consiste à mettre tous les coefficients du bloc à une valeur prédéterminée, par exemple la valeur zéro. Ce codage est très économique en nombre de bits, puisqu'il n'implique la transmission ou la mémorisation d'aucune donnée de codage, et par conséquent nécessite un débit de transmission nul. Cependant, I'erreur de codage risque d'être grande si le bloc considéré n'est pas d'énergie faible. Le second mode de codage (circuit 52) est une quantification scalaire uniforme de chacun des coefficients du bloc puis codage des indices issus de la quantification par un codage entropique, par exemple un codage de Huffman. Pour chacun des blocs, le circuit 53 compare les deux codages selon un critère pour sélectionner le codage le plus approprié, selon ce critère, pour chaque bloc considéré. A cette fin, le circuit 5 réalise de manière itérative les opérations suivantes. Le circuit 53 détermine les débits Rlp, et R2,pn nécessaires pour transmettre le bloc codé par chacun des deux circuits 51 et 52, ainsi que les erreurs de codage, ou distorsion, D1,p,n et D2,pn provoquées par le codage réalisé par chacun des deux circuits 51 et 52. Les erreurs Dpn et D2,pn mesurent respectivement l'erreur quadratique apportée dans l'image reconstruite par le codage du bloc considéré, selon le premier et le second mode de codage. Dans le cas o la décomposition en sous- bande est orthogonale, les erreurs D1,p et D2,p,n sont égales aux erreurs quadratiques entre le bloc original et le bloc reconstruit. Le circuit 53 compare ensuite, pour chacun des blocs, les sommes R1,p,n + k.Dp,n et R2,p,n + k.D2,p,n, O X est un coefficient de réglage du rapport compression/distorsion. Le codage pour lequel la somme est la plus faible est sélectionné, pour chacun des blocs considérés. La sélection itérative du mode de codage est détaillée dans la suite (figure 8). Un indicateur Ip, est associé à chacun des blocs pour indiquer quel est le codage sélectionné par le circuit 53. L'indicateur Ip,n est par exemple un bit qui est mis à zéro si le bloc considéré est codé par mise à zéro, et qui est mis à un sinon. L'indicateur Ipn fait partie de la forme codée du bloc considéré. Les circuits 51, 52 et 53 effectuent ainsi une séparation de l'information pertinente et de l'information non pertinente. L'information non pertinente, c'est-à-dire les blocs à coder par mise à zéro, ont comme forme codée leur indicateur Ipn L'information pertinente, c'est-à-dire les autres blocs, vont ensuite être codés par les circuits 61, 62 et 63. Le circuit 53 transmet au circuit de liaison 61 I'indicateur Ipn de chaque bloc codé. Le circuit de liaison 61 prend en compte les blocs qui ne sont pas codés par mise à zéro et lie ces blocs de manière à former une suite de blocs {Bm}, m étant un entier compris entre 1 et M, et M étant le nombre de blocs de la suite. Pour former la suite, les blocs sont par exemple considérés de gauche à droite et de haut en bas, dans chaque bande de fréquence. Le circuit 61 fournit cette suite au circuit de quantification 62. Le circuit 62 de quantification codée en treillis est représenté à la figure 6. Le circuit 62 comporte un circuit 621 de codage selon l'algorithme de Viterbi, un registre à décalage 622, un circuit de sélection de dictionnaire 623 et des moyens de mémoire 624 pour mémoriser des dictionnaires de vecteurs de code. Le codage par quantification codée en treillis est décrit par exemple dans l'article intitulé "Trellis Coded Quantization of Memoryless and Gauss- Markov Sources" de M.W. Marcellin et T.R. Fischer, paru dans IEEE Transactions on Communications, Vol. 38, n 1, Janvier 1990, ainsi que dans l'article "Universal Trellis Coded Quantization" de J.H. Kasner, M. W. Marcellin et B.R. Hunt, disponible par Internet à l'adresse http://vail.ece.arizona.edu/Publications.html. De manière générale le circuit de codage 62 code une suite de symboles {Sk} pour fournir deux flux binaires i(k) et j(k), o i(k) représente une suite de transitions et j(k) représente une suite d'indices des dictionnaires de vecteurs de code. Dans le contexte de l'invention, les symboles Sk sont les coefficients extraits de blocs Bp,n liés par le circuit 61. Le fonctionnement du circuit 62 est celui d'une machine à états finis, le passage d'un état à un autre étant identifié par une transition. Dans un premier mode de réalisation, chaque état correspond à un dictionnaire et est identifié par les deux valeurs binaires i(k-2) et i(k-1). Chacun des dictionnaires contient des vecteurs de code qui sont chacun identifiés par un indice dans le dictionnaire concerné. Un vecteur de code est par conséquent complètement identifié par son indice et par l'état représentant le dictionnaire auquel il appartient. Les transitions possibles de la machine à états finis, pour la suite de symboles à coder, forment une structure régulière, ou treillis. Le circuit 621 met en oeuvre un algorithme de Viterbi pour déterminer un chemin optimal dans le treillis. Le chemin est optimal au sens d'un coût qui est minimisé sur tout le treillis, donc sur toute la suite à coder. Le coût d'une transition est l'erreur quadratique mesurée entre le symbole à coder et le vecteur de code sélectionné dans le dictionnaire identifié par l'état dans lequel aboutit la transition. Le coût d'un état du treillis est la somme des coûts des transitions aboutissant à cet état. L'algorithme de Viterbi calcule le coût minimal de chaque état pour déterminer le chemin optimal représenté par la suite de transitions i(k). Dans un second mode de réalisation, le nombre d'états est supérieur au nombre de dictionnaires. Par exemple, quatre dictionnaires et huit états sont utilisés. Le registre à décalage mémorise alors trois valeurs binaires pour définir les huit états. Chaque état est associé à deux dictionnaires. Dans tous les cas, le circuit 62 foumrnit les deux flux binaires i(k) et j(k) au circuit de codage entropique 63 qui les combine et réalise un codage entropique de la combinaison. Le circuit 6 transmet en outre au circuit de traitement 8 les indicateurs Ipn de chacun des blocs codés, associés à la suite codée des blocs. En référence à la figure 7, le dispositif de décodage réalise globalement des opérations inverses de celles du dispositif de codage. Le dispositif de décodage est intégré dans un appareil 200, qui est par exemple un lecteur d'image numérique, ou de séquence vidéo numérique, ou un système de gestion de base de données, ou encore un ordinateur. Un même appareil peut comporter à la fois le dispositif de codage et le dispositif de décodage selon l'invention, de manière à effectuer des opérations de codage et de décodage. Le dispositif de décodage comporte une source de données codées qui comporte par exemple un circuit de réception associé à une mémoire tampon. Une sortie 20, du circuit 20 est reliée à un circuit 21 de lecture d'indicateur Ip,, dont une sortie 211 est reliée à un circuit de décodage 22. Le circuit de décodage 22 a une sortie 224 reliée à un circuit de reconstruction 23. Ce dernier a une sortie 234 reliée à un circuit 24 d'exploitation des données décodées, comportant par exemple des moyens de visualisation d'image. Le circuit 20 fournit des données codées au circuit 21, qui détermine le mode de codage utilisé pour chacun des blocs en analysant l'indicateur Ipn. Si l'indicateur Ip,n indique que le bloc considéré est codé par mise à zéro, son décodage consiste à créer un bloc dont tous les coefficients sont à la valeur zéro. La taille du bloc créé dépend de la sous-bande en cours de décodage. Si l'indicateur Ip,n indique que le bloc considéré est codé par quantification codée en treillis, le circuit 22 effectue globalement des opérations inverses de celles effectuées au codage. Pour chaque symbole à décoder, la transition i(k) est décodée pour déterminer un dictionnaire de vecteurs de code et l'indice j(k) est décodé pour déterminer un vecteur de code dans ce dictionnaire. L'ensemble des symboles décodés forme un bloc décodé. Le circuit 22 foumrnit les blocs décodés Bdpn au circuit de reconstruction 23, qui est un circuit de synthèse correspondant au circuit d'analyse 2décrit précédemment et reconstruit l'image IMd correspondant aux sous-bandes décodées. Selon un mode préféré de réalisation de l'invention, les circuits de décomposition en sous-bandes 2, de division en bloc 4, de sélection 5, de codage 6 et de traitement 8, tous inclus dans le dispositif de codage représenté à la figure 1, sont réalisés par un microprocesseur associé à des mémoires vives et mortes. La mémoire morte comporte un programme selon l'invention pour coder chacun des blocs de données, et la mémoire vive comporte des registres adaptés à enregistrer des variables modifiées au cours de l'exécution du programme. Le programme de codage 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 CR-ROM (disque compact à mémoire figée). De même, les circuits de lecture 21, de décodage 22, de reconstruction 23, inclus dans le dispositif de décodage représenté à la figure 7, sont réalisés par un second microprocesseur associé à des mémoires vives et mortes. La mémoire morte comporte un programme selon l'invention pour décoder chacun des blocs de données, et la mémoire vive comporte des registres adaptés à enregistrer des variables modifiées au cours de l'exécution du programme. Le programme de décodage 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 CR-ROM (disque compact à mémoire figée). En référence à la figure 8, un procédé de codage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de codage, comporte des étapes E1 à El1. Le procédé de codage utilise deux modes de codage attribuables aux blocs en fonction d'un critère. L'étape E1 est la décomposition en sous-bandes de l'image IM, comme représenté à la figure 4. L'étape E1 a pour résultat les sous-bandes LL3, HL3, LH3 et HH3 de plus faible résolution RES3, les sous-bandes LH2, HL2, HH2 de résolution intermédiaire RES2, et les sous-bandes LH1, HL1 et HH1 de plus haute résolution RES1. Comme exposé plus haut, la décomposition en sous-bande n'est pas essentielle pour l'invention. L'étape E1 est suivie par l'étape E2 qui est la division des sous- bandes en blocs Bpn, comme représenté à la figure 5. L'étape suivante E3 est une initialisation pour considérer la première sous-bande. Les sous-bandes sont prises en compte selon un ordre a priori quelconque, tout en étant prédéterminé. Chaque sous-bande est traitée indépendamment des autres sous-bandes. L'étape suivante E4 est une initialisation à laquelle l'indicateur Iprn de chacun des blocs Bpn de la sous-bande courante est mis à une valeur indiquant que le bloc est codé par le second mode de codage, à savoir par quantification scalaire. L'étape E4 est suivie par l'étape E5 qui est la mise à jour des débits et des distorsions, pour chacun des blocs de la sous-bande considérée. A cette étape, sont calculés et mémorisés: - le débit R1,pn associé au codage du bloc Bpn par mise à zéro, - la distorsion D1,p,n associée au codage du bloc Bp,,n par mise à zéro, - le débit R2,p,n associé au codage du bloc Bp,n par quantification scalaire, et - la distorsion D2,pn associée au codage du bloc Bpn par quantification scalaire. Le débit R1,pn associé au codage du bloc Bpn par mise à zéro est nul. La distorsion Dpn associée au codage du bloc Bp,n par mise à zéro est égale à l'erreur quadratique du bloc. La distorsion D2,pn associée au codage du bloc Bp,, par quantification scalaire est égale à l'erreur quadratique du bloc déquantifié. Ces trois quantités sont calculées une seule fois, lors du premier passage par l'étape E5. En effet, ces quantités ne varient pas au cours des itérations ultérieures de codage. Les blocs auxquels la quantification scalaire est attribuée sont groupés de manière à former un ensemble, ou groupe, de blocs à coder. A la première itération, tous les blocs de la sous-bande considérée font partie du groupe à coder par quantification scalaire. Le débit de codage R2,p,n du bloc Bp,. est déterminé. Pour cela, les blocs du groupe considéré sont codés par quantification scalaire, puis on détermine un codeur entropique adapté à la distribution des symboles issus de la quantification scalaire du groupe considéré, puis on applique ce codeur entropique au bloc Bp,n quantifié, pour déterminer son débit. L'étape suivante E6 est l'attribution, pour chacun des blocs de la sous-bande en cours de traitement, du mode de codage qui lui est le plus adapté, en fonction d'un critère. Le critère consiste à minimiser un coût de codage, qui est de manière générale une fonction du débit et de la distorsion. Selon un mode préféré de réalisation, le coût de codage est la somme Rjpn + k.Dj,p,n, O x, est un coefficient de réglage du rapport compression/distorsion, et j est un entier égal à 1 ou 2, représentant le premier ou le second mode de codage. Le coefficient;X varie de zéro à l'infini. Pour des raisons pratiques, on peut utiliser de manière équivalente la somme (1-X).Rjpn +;.Dj,p,n, avec le coefficient 2. variant entre zéro et un. Le mode de codage qui minimise la somme Rj,p,n +.Djp, n est sélectionné pour coder le bloc considéré Bpn. En conséquence, la valeur de l'indicateur Ipn du bloc considéré est mise à jour. L'étape suivante E7 est un test de convergence. Ce test consiste à vérifier si les mêmes modes de codage sont attribués aux mêmes blocs, au cours de plusieurs, par exemple deux, répétitions successives des étapes E5 et E6. Tant que le test de convergence n'est pas satisfait, I'étape E7 est suivie de l'étape E5. Lorsque le test de convergence est satisfait, I'étape E7 est suivie de l'étape E8. En variante, un nombre maximal de répétitions des étapes E5 et E6 est prédéterminé, de manière à limiter la durée de codage. L'étape E8 est une liaison des blocs auxquels la quantification scalaire a été attribuée. Les blocs sont par exemple considérés de gauche à droite et de haut en bas, dans la bande de fréquence considérée. L'étape E8 a pour résultat une suite de blocs à coder {Bm}. L'étape suivante E9 est le codage par quantification codée en treillis de la suite de blocs à coder formée à l'étape précédente. Le codage est effectué comme précédemment exposé (figure 6), et peut être suivi d'un codage entropique des suites binaires obtenues. Le résultat de codage de la sous-bande considérée est un ensemble d'indicateurs indiquant pour chaque bloc quel mode de codage lui a été attribué après convergence, et la suite des données codées par quantification codée en treillis. L'attribution de la quantification scalaire aux blocs est une bonne approximation de l'attribution du mode de codage par quantification codée en treillis et présente l'avantage d'être plus simple et plus rapide à mettre en oeuvre. L'étape suivante E10 est un test pour déterminer si toutes les sous- bandes ont été traitées. S'il reste au moins une sous-bande à traiter, l'étape E10O est suivie par l'étape E 11 pour considérer la sous-bande suivante. L'étape E11 est suivie par l'étape E4 précédemment décrite. En variante, les étapes de liaison et codage par quantification codée en treillis sont réalisées après une réponse positive à l'étape E10, c'est-à-dire lorsqu'un mode de codage a été attribué à tous les blocs de toutes les sous- bandes. Il est possible de former une suite de blocs par sous-bande, ou de former une seule suite de blocs pour toutes les sous-bandes, puis d'effectuer le codage par quantification codée en treillis des ou de la suite(s) de blocs. En référence à la figure 9, un procédé de décodage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de décodage, comprend des étapes E21 à E30. L'étape E21 est une initialisation pour considérer la première sous- bande à décoder. L'étape E21 est suivie de l'étape E22 qui est une initialisation pour considérer le premier bloc à décoder dans la sous-bande courante. Les sous- bandes sont décodées dans le même ordre qu'au codage, et les blocs dans une sous-bande donnée sont décodés dans le même ordre qu'au codage, bien que des ordres différents soient possibles. L'étape suivante E23 est la lecture de l'indicateur Ip,n pour déterminer quel mode de codage a été utilisé pour coder le bloc courant. L'étape E23 est suivie de l'étape E24 qui est le décodage du bloc courant. Si le bloc a été codé par mise à zéro, le décodage consiste à créer un bloc dont tous les coefficients sont à la valeur zéro. La taille du bloc créé dépend de la sous-bande en cours de décodage, et est par exemple déterminée par l'indice du bloc. Si le bloc a été codé par quantification codée en treillis, des opérations inverses de celles effectuées au codage sont effectuées. Les données de codage du bloc considéré sont extraites des suites d'indices et de transitions. Pour chaque symbole à décoder, la transition i(k) est décodée pour déterminer un dictionnaire de vecteurs de code et l'indice j(k) est décodé pour déterminer un vecteur de code dans ce dictionnaire. L'ensemble des symboles décodés forme un bloc décodé. Le bloc décodé Bdp, est mémorisé à l'étape suivante E25. Les étapes E26 et E28 sont des tests pour vérifier, respectivement si tous les blocs d'une sous-bande, et si toutes les sous-bandes ont été décodées. S'il reste au moins un bloc à décoder dans la sous-bande courante, l'étape E26 est suivie par l'étape E27 pour considérer le bloc suivant. L'étape E27 est suivie par l'étape E23 précédemment décrite. S'il reste au moins une sous-bande à décoder, l'étape E28 est suivie par l'étape E29 pour considérer la sous-bande suivante. L'étape E29 est suivie par l'étape E23 précédemment décrite. Lorsque toutes les sous-bandes ont été décodées, c'est-à-dire que la réponse est positive à l'étape E28, cette dernière étape est suivie de l'étape E30 de construction de l'image décodée. Cette dernière peut ensuite être visualisée, par exemple. Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier. En particulier, I'invention peut aisément être appliquée à d'autres types de signaux. Ces signaux peuvent être des signaux mono- dimensionnels tel que des sons, ou des relevés sismiques, ou encore des électrocardiogrammes; en fonction de leur nature, I'analyse des signaux est réalisée selon des fréquences temporelles ou spatiales. Ces signaux peuvent être tri-dimensionnels tels que des séquences vidéo représentées selon deux fréquences spatiales et une fréquence temporelle. On met alors en oeuvre une décomposition en sous-bandes de fréquence en dimension trois, et la décomposition du signal en vecteurs s'effectue également en dimension trois. Pour un signal ayant des composantes dans plusieurs bandes de fréquences, tel qu'un signal d'image en couleur ayant des composantes rouge, verte et bleue, I'invention s'applique dans chacune des bandes de fréquence. REVENDICATIONS 1. Procédé de codage de signal numérique d'image, caractérisé en ce qu'il comporte les étapes de: - division (E2) du signal en blocs (Bp,), - mise à jour (E5) à laquelle est calculé un coût de codage de chacun des blocs, pour au moins un premier mode de codage et pour un mode de codage par quantification scalaire, - attribution (E6) de l'un des modes de codage à chacun des blocs, selon un critère d'attribution dépendant du coût de codage, - réitération des étapes de mise à jour et d'attribution, de manière à satisfaire un critère de convergence, - liaison (E8) des blocs auxquels a été attribué le mode de codage par quantification scalaire, pour former une suite de blocs, - codage (E9) de la suite de blocs par quantification codée en treillis d'une suite de coefficients extraits des blocs de la suite. 2. Procédé de codage selon la revendication 1, caractérisé en ce que le coût de codage de chaque bloc est une somme pondérée du débit (R1.,p, R2,p,,) et de l'erreur (D1,,,, D2,p.) de codage du bloc considéré. 3. Procédé de codage selon la revendication 1 ou 2, caractérisé en ce que, à une itération donnée, le calcul du coût de codage pour le mode de codage par quantification scalaire d'un bloc considéré quelconque, comporte les étapes (E5) de: - groupement des blocs auxquels a été attribué le mode de codage par quantification scalaire, pour former un groupe de blocs, codage du groupe de blocs par quantification scalaire, - détermination d'un codeur entropique adapté à la distribution des symboles issus de la quantification scalaire des blocs du groupe, - codage entropique du bloc considéré quantifié, par le codeur entropique précédemment déterminé, - extraction du débit (R2,p,,) de codage du bloc considéré. 4. Procédé de codage selon l'une quelconque des revendications 1 à 3, caractérisé en ce que, à une itération donnée, le calcul du coût de codage pour le mode de codage par quantification scalaire d'un bloc considéré quelconque, comporte l'étape de détermination de la distorsion (D2pn) associée au codage du bloc considéré par quantification scalaire. 5. Procédé de codage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le critère d'attribution minimise le coût de codage. 6. Procédé de codage selon l'une quelconque des revendications 1 à , caractérisé en ce qu'il comporte en outre une étape d'initialisation (E4) à laquelle le mode de codage par quantification scalaire est attribué à chacun des blocs. 7. Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le critère de convergence est satisfait lorsque les mêmes modes de codage sont respectivement attribués aux mêmes blocs à deux itérations successives de l'étape d'attribution. 8. Procédé de codage selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'un indicateur (l,n) est associé à chaque bloc (Bpn) pour indiquer quel mode de codage est attribué à chaque bloc. 9. Procédé de codage selon l'une quelconque des revendications 1 à 8, caractérisé en ce que le premier mode de codage est une mise à une valeur prédéterminée des coefficients du bloc. 10. Dispositif de codage de signal numérique caractérisé en ce qu'il comporte: - des moyens (4) de division de signal numérique en blocs (Bpn), - des moyens (5) de mise à jour adaptés à calculer un coût de codage de chacun des blocs, pour au moins un premier mode de codage et pour un mode de codage par quantification scalaire, - des moyens d'attribution (53) de l'un des modes de codage à chacun des blocs, selon un critère d'attribution dépendant du coût de codage, les moyens de mise à jour et d'attribution étant adaptés à être mis en oeuvre de manière itérative, de manière à satisfaire un critère de convergence, - des moyens de liaison (61) des blocs auxquels a été attribué le mode de codage par quantification scalaire, pour former une suite de blocs, - des moyens de codage (62) de la suite de blocs par quantification codée en treillis d'une suite de coefficients extraits des blocs de la suite. 11. Dispositif de codage selon la revendication 10, caractérisé en ce que les moyens (5) de mise à jour sont adaptés à calculer le coût de codage de chaque bloc comme une somme pondérée du débit (R,.p,, R2p,.) et de l'erreur (D1,pn. D2,p,n) de codage du bloc considéré. 12. Dispositif de codage selon la revendication 10 ou 11, caractérisé en ce que pour calculer le coût de codage pour le mode de codage par quantification scalaire d'un bloc considéré quelconque, les moyens de mise à jour (52) sont adaptés à: - grouper les blocs auxquels a été attribué le mode de codage par quantification scalaire, pour former un groupe de blocs, - coder le groupe de blocs par quantification scalaire, déterminer un codeur entropique adapté a la distribution des symboles issus de la quantification scalaire des blocs du groupe, - appliquer le codeur entropique précédemment déterminé au bloc considéré quantifié, - extraire le débit (R2,p,) de codage du bloc considéré. 13. Dispositif de codage selon l'une quelconque des revendications à 12, caractérisé en ce que, pour le calcul le coût de codage pour le mode de codage par quantification scalaire d'un bloc considéré, les moyens de mise à jour sont adaptés à déterminer la distorsion (D2p,) associée au codage du bloc considéré par quantification scalaire. 14. Dispositif de codage selon l'une quelconque des revendications à 13, caractérisé en ce que les moyens d'attribution (53) sont adaptés à mettre en oeuvre un critère d'attribution qui minimise le coût de codage. 15. Dispositif de codage selon l'une quelconque des revendications 10 à 14, caractérisé en ce que les moyens d'attribution (53) sont adaptés à attribuer initialement le mode de codage par quantification scalaire à chacun des blocs. 16. Dispositif de codage selon l'une quelconque des revendications à 15, caractérisé en ce qu'il est adapté à mettre en oeuvre un critère de convergence qui est satisfait lorsque les mêmes modes de codage sont respectivement attribués aux mêmes blocs à deux mises en oeuvre successives des moyens d'attribution. 17. Dispositif de codage selon l'une quelconque des revendications à 16, caractérisé en ce qu'il est adapté à associer un indicateur (Ipn) à chaque bloc (Bpn) pour indiquer quel mode de codage est attribué à chaque bloc. 18. Dispositif de codage selon l'une quelconque des revendications à 17, caractérisé en ce qu'il est adapté à mettre en oeuvre un premier mode de codage qui est une mise à une valeur prédéterminée des coefficients du bloc. 19. Dispositif de codage selon l'une quelconque des revendications à 18, caractérisé en ce que les moyens de division, d'attribution, de quantification, de formation et de sélection sont incorporés dans: - un micro-processeur, - une mémoire morte comportant un programme pour coder chacun des blocs de données, et - une mémoire vive comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 20. Appareil (100) de traitement de signal numérique, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 9. 21. Appareil (100) de traitement de signal numérique, caractérisé en ce qu'il comporte le dispositif de codage selon l'une quelconque des revendications 10 à 19. 22. Appareil photographique numérique caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 9. 23. Appareil photographique numérique caractérisé en ce qu'il comporte le dispositif de codage selon l'une quelconque des revendications 10 à 19. 24. Camescope numérique caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 9. 25. Camescope numérique caractérisé en ce qu'il comporte le dispositif de codage selon l'une quelconque des revendications 10 à 19. 26. Procédé de codage selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'il est mis en oeuvre dans un système de gestion de base de données. 27. Dispositif de codage selon l'une quelconque des revendications à 19, caractérisé en ce qu'il est mis en oeuvre dans un système de gestion de base de données. 28. Ordinateur caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 9. 29. Ordinateur caractérisé en ce qu'il comporte le dispositif de codage selon l'une quelconque des revendications 10 à 19.