Brevet FR2853476A1 — publié le 20041008

La présente invention concerne d'une manière générale le codage de signal numérique et propose à cette fin un dispositif et un procédé de codage d'un signal numérique. 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 15 temps de transmission ou le débit de transmission, respectivement en réduisant la place mémoire utilisée. L'invention se situe dans le domaine de la compression avec perte de signaux numériques. Les signaux numériques considérés ici sont de nature quelconque, par exemple des images fixes, de la vidéo, du son, des données 20 informatiques. Dans la suite, on considère plus particulièrement le codage et le décodage d'une image fixe. Dans ce contexte, certains modes de codage utilisent un parcours établi parmi un ensemble d'échantillons numériques conjointement avec un 25 modèle d'amplitude des échantillons. Par exemple, les demandes de brevet français n' 01 06933, 01 12064 et 01 13922 concernent de tels modes de codage. Il existe des techniques pour déterminer un parcours parmi un ensemble d'échantillons. Ces techniques sont connues sous le nom de 30 techniques de résolution du problème du voyageur de commerce. La présente invention concerne plus particulièrement la détermination du modèle d'amplitude. Dans la demande de brevet français no 02 13822, la modélisation des amplitudes est effectuée par quantification vectorielle. Cette technique de quantification est détaillée dans l'ouvrage de A.Gersho et R.M. Gray intitulé " Vector quantization and signal compression ", Boston, MA, Kluwer, 1992. La présente invention vise à fournir un procédé et un dispositif de codage des données par un modèle d'amplitude et un parcours parmi les données, selon lequel la modélisation des amplitudes est effectuée par une quantification vectorielle améliorée de manière à augmenter le taux de 10 compression. A cette fin, l'invention propose un procédé de codage d'un ensemble de données représentatives de grandeurs physiques, l'ensemble de données comportant des coefficients, le procédé comportant des étapes de: détermination d'un modèle d'amplitude des coefficients et d'un parcours parmi les coefficients, - détermination de la longueur du parcours, caractérisé en ce que la détermination du modèle d'amplitude des coefficients comporte les étapes de: - sélection d'un dictionnaire de vecteurs de code en fonction de la longueur du parcours, parmi un ensemble prédéterminé de dictionnaires, les dictionnaires de l'ensemble prédéterminé comportant chacun un nombre prédéterminé de vecteurs de code, - sélection d'un vecteur de code dans le dictionnaire sélectionné, en 25 fonction d'un coût de codage. Grâce à l'invention, le taux de compression est plus élevé que selon la technique antérieure, à qualité d'image équivalente. En effet, au moins un dictionnaire est disponible pour chaque longueur de parcours, autrement dit pour chaque dimension de modèle d'amplitude. Le coût de codage est ainsi 30 minimisé pour chaque longueur de parcours en fonction de la taille du dictionnaire utilisé. Selon une caractéristique préférée, la sélection d'un dictionnaire de vecteurs de code comporte: - la sélection d'un sous-ensemble de dictionnaires en fonction de la longueur du parcours, - la sélection d'un dictionnaire dans le sous-ensemble sélectionné, en fonction du coût de codage. Un sous-ensemble donné de dictionnaires correspondant à une longueur de parcours comporte des dictionnaires de tailles différentes, ce qui permet d'ajuster le débit des données codées. Selon une caractéristique préférée, les vecteurs de code du dictionnaire sélectionné ont une longueur égale à la longueur du parcours. Ainsi, le choix du dictionnaire est optimal. En effet, cela évite l'utilisation d'un dictionnaire dont les vecteurs doivent être tronqués pour correspondre à la longueur du parcours. Selon une caractéristique préférée, l'ensemble de données est un bloc formé dans un ensemble initial de données. Le traitement par blocs permet de traiter toujours la même quantité de données correspondant à un bloc, quelle que soit la taille de l'ensemble initial de données. Selon une caractéristique préférée, une pluralité de blocs de 20 données est formée dans l'ensemble initial de données, et la sélection du dictionnaire est effectuée globalement pour tous les blocs ayant des parcours de même longueur. Ainsi, tous les blocs ayant des parcours de même longueur ont leurs modèles d'amplitude codés à partir d'un même dictionnaire. Selon une caractéristique préférée, le coût de codage est une somme pondérée du débit de la forme codée de l'ensemble de données et de la distorsion générée dans l'ensemble de données reconstruit après codage et décodage par rapport à l'ensemble de données initial. Selon une caractéristique préférée, l'ensemble de données est le 30 résultat d'une transformation DGT d'un ensemble initial de données. Ce type de transformation est couramment utilisé en traitement d'image. L'invention concerne aussi un procédé de construction d'un dictionnaire de vecteurs de code destiné à être utilisé par le procédé précédemment présenté, caractérisé en ce que le dictionnaire est construit à partir d'une séquence d'apprentissage comportant des éléments ayant le même nombre de coefficients que les vecteurs de code du dictionnaire considéré. L'invention concerne encore un procédé de décodage d'un ensemble de données représentatives de grandeurs physiques codé par le procédé de codage précédemment présenté, caractérisé en ce qu'il comporte l'étape de: - sélection d'un dictionnaire de vecteurs de code en fonction de la longueur du parcours. Selon une caractéristique préférée, la sélection d'un dictionnaire de vecteurs de code est effectuée en outre en fonction du coût de codage. Corrélativement, l'invention concerne un dispositif de codage d'un 15 ensemble de données représentatives de grandeurs physiques, l'ensemble de données comportant des coefficients, le dispositif comportant: - des moyens de détermination d'un modèle d'amplitude des coefficients et d'un parcours parmi les coefficients, - des moyens de détermination de la longueur du parcours, caractérisé en ce que les moyens de détermination du modèle d'amplitude des coefficients comportent: - des moyens de sélection d'un dictionnaire de vecteurs de code en fonction de la longueur du parcours, parmi un ensemble prédéterminé de dictionnaires, les dictionnaires de l'ensemble prédéterminé comportant chacun 25 un nombre prédéterminé de vecteurs de code, - des moyens de sélection d'un vecteur de code dans le dictionnaire sélectionné, en fonction d'un coût de codage. Le dispositif 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 construction et 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 et le procédé et le dispositif de construction présentent des avantages analogues à ceux précédemment présentés. L'invention concerne aussi un appareil numérique incluant le 5 dispositif selon l'invention ou des moyens de mise en oeuvre du procédé selon l'invention. Cet appareil numérique est par exemple un appareil photographique numérique, un caméscope numérique, un scanner, une imprimante, un photocopieur, un télécopieur. Les avantages du dispositif et de l'appareil numérique sont identiques à ceux précédemment exposés. Un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé selon l'invention. Un programme d'ordinateur lisible par un microprocesseur et comportant une ou plusieurs séquence d'instructions est apte à mettre en 15 oeuvre les procédés selon l'invention. Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture d'un mode préféré de réalisation illustré par les dessins ci-joints, dans lesquels: - la figure 1 est un mode de réalisation d'un dispositif mettant en oeuvre l'invention, - la figure 2 représente un dispositif de codage selon l'invention et un dispositif de décodage correspondant, - la figure 3 représente un mode de réalisation de procédé de codage 25 selon l'invention, - la figure 4 représente un mode de réalisation de détermination de la taille d'un parcours et le codage de celui-ci, - la figure 5 représente un mode de réalisation de sélection de dictionnaires de vecteurs de code et de codage de modèles d'amplitude, les figures 6 et 7 représentent deux modes de réalisation de construction de dictionnaires de vecteurs de code, - la figure 8 représente un mode de réalisation de procédé de décodage selon l'invention. Selon le mode de réalisation choisi et représenté à la figure 1, un 5 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 10 à un réseau 113 apte à transmettre des données numériques à traiter ou inversement à transmettre des données traitées par le dispositif. Le dispositif 10 comporte également un moyen de stockage 108 tel que par exemple un disque dur. Il comporte aussi un lecteur 109 de disque 110. Ce disque 110 peut être une disquette, un CD-ROM ou un DVD-ROM, par exemple. Le disque 110 15 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 20 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 30 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 10 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 microordinateur 10 directement ou par l'intermédiaire d'un autre élément du microordinateur 10. En référence à la figure 2, un mode de réalisation de dispositif de codage 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 20 scanner, une imprimante, un photocopieur, un télécopieur, un système de gestion de base de données ou encore un ordinateur. Un appareil photographique numérique 1 effectue l'acquisition d'une image numérique IM1. L'image est transmise à un dispositif de codage 2 dont le fonctionnement sera détaillé dans la suite à l'aide d'un algorithme. Le dispositif de codage comporte tout d'abord un circuit de transformation 21. Le circuit 21 met par exemple en oeuvre une transformation de type DCT (d'après l'anglais Discrete Cosine Transform) par blocs, telle que celle utilisée dans le codage JPEG. En variante, la transformation est une transformation en ondelettes 30 discrète DWT (d'après l'anglais Discrete Wavelet Transform), telle que celle utilisée dans le codage JPEG2000. La transformation a pour but de décorréler les pixels de l'image et de concentrer l'énergie du signal sur certains coefficients, ce qui facilite la compression ultérieure. Le circuit 21 est relié à un circuit 22 de détermination d'un parcours parmi les coefficients et d'un modèle d'amplitude des coefficients. La détermination du parcours est classique et ne sera pas détaillée ici. Selon l'invention, le circuit 22 de détermination du modèle d'amplitude comporte: - des moyens de sélection d'un dictionnaire de vecteurs de code en fonction de la longueur du parcours, parmi un ensemble prédéterminé de dictionnaires, les dictionnaires de l'ensemble prédéterminé comportant chacun un nombre prédéterminé de vecteurs de code, - des moyens de sélection d'un vecteur de code dans le dictionnaire 15 sélectionné, en fonction d'un coût de codage. 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 un circuit 41 de décodage d'un parcours parmi les coefficients et d'un modèle d'amplitude des coefficients. Le décodage du parcours est classique et ne sera pas détaillé ici. Selon, l'invention, le circuit 41 de décodage du modèle d'amplitude comporte: - des moyens de sélection d'un dictionnaire de vecteurs de code en fonction de la longueur du parcours. Le circuit 41 est relié à un circuit 42 de transformation inverse qui réalise une transformation inverse de celle effectuée par le circuit 21. Le résultat est une image décodée IM2 qui est par exemple 30 transmise à un dispositif d'affichage 5. Le fonctionnement du dispositif de décodage est détaillé dans la suite à l'aide d'un algorithme. La figure 3 représente un mode de réalisation de procédé de codage d'une image, selon l'invention. Ce procédé est mis en oeuvre dans le dispositif de codage et comporte des étapes El à E7. Le procédé comporte globalement une transformation du signal à coder, puis la détermination d'un parcours parmi les coefficients issus de la transformation pour coder les emplacements des coefficients. Un modèle d'amplitude des coefficients ensuite est ensuite déterminé selon l'invention. Le procédé est réalisé sous la forme d'un algorithme qui peut être 10 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 15 compact à mémoire figée). L'étape El est une transformation en cosinus discrète (DCT) par blocs de l'image courante, comme dans la norme JPEG. En variante, une autre transformation est utilisée, par exemple une transformation en ondelettes discrète, comme dans la norme JPEG2000. Le résultat est un ensemble de blocs de coefficients de taille prédéterminée. L'étape suivante E2 est une initialisation à laquelle est considéré un premier bloc. L'étape suivante E3 est un classement des coefficients du bloc 25 courant par amplitude décroissante. Le classement est réalisé de manière classique, par exemple par un tri à bulle. Il a pour résultat une liste P de coefficients classés par amplitude décroissante. L'étape suivante E4 est la recherche de la taille optimale du parcours du bloc courant et le codage de parcours ainsi déterminé. Cette étape est 30 détaillée dans la suite. Elle a pour résultat un parcours de longueur N. L'étape suivante E5 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 E6 à laquelle un bloc suivant dans l'image est considéré. L'étape E6 est suivie de l'étape E3 précédemment décrite. Lorsque la réponse est positive à l'étape E5, alors tous les blocs de l'image ont été traités et cette étape est suivie de l'étape E7 de choix des 5 dictionnaires pour coder les modèles d'amplitude des blocs. Cette étape comporte aussi le codage des modèles d'amplitude. Elle est détaillée dans la suite. L'étape E4 de détermination de la taille optimale du parcours d'un 10 bloc ainsi que de codage du parcours est maintenant détaillée en référence à la figure 4, sous la forme d'un algorithme comportant des étapes E40 à E44. On recherche ici le nombre N de coefficients de la liste P dont le codage fournit le coût de codage le plus faible. Le coût de codage d'un signal est la fonction C = R + X.D, dans 15 laquelle R représente le débit de transmission de la forme codée du signal, D représente la distorsion générée dans le signal reconstruit après codage et décodage, par rapport au signal d'origine et X est un paramètre de réglage entre compression du signal et distorsion générée par le codage. L'étape E40 est la détermination du coût de codage C associé à la 20 liste P. Lors du premier passage par cette étape, c'est la liste P, établie à l'étape E3, de tous les coefficients du bloc courant, classés par ordre décroissant, qui est considérée. Comme exposé dans la demande de brevet français n 01 06933, un parcours est déterminé par un coefficient initial et la liste des vecteurs joignant 25 les autres coefficients. Chaque coefficient du parcours différent du coefficient initial est représenté par un vecteur décrivant son emplacement par rapport au coefficient précédent dans le parcours. Il est à noter que le parcours ne passe pas forcement par tous les coefficients du bloc courant. En effet, il est possible de ne coder qu'une partie des coefficients et de mettre les autres coefficients à 30 la valeur zéro lors du décodage ultérieur. La distorsion est calculée en effectuant la somme quadratique des amplitudes des coefficients du signal qui ne font pas partie du parcours. En il effet, ces coefficients seront mis à la valeur zéro lors du décodage. On fait ici l'hypothèse que la distorsion des coefficients du signal qui font partie du parcours est négligeable. L'étape suivante E41 est la mémorisation de la liste courante P 5 comme liste optimale Popt, si le coût de codage est le plus petit de tous les coûts de codage déjà calculés. L'étape suivante E42 est un test pour déterminer si la liste courante P a une longueur nulle. Si la réponse est négative, alors cette étape est suivie de l'étape E43 à laquelle la liste P est modifiée en retirant le dernier coefficient 10 de la liste. L'étape E43 est suivie de l'étape E40 précédemment décrite. Lorsque la réponse est positive à l'étape E42, cette étape est suivie de l'étape E44 à laquelle le bloc courant est codé avec la liste P0pt. Cette étape comporte la détermination d'un parcours qui fournit une suite ordonnée des emplacements des coefficients. Un parcours est déterminé 15 par un coefficient initial et la liste des vecteurs joignant les autres coefficients. Chaque coefficient du parcours différent du coefficient initial est représenté par un vecteur décrivant son emplacement par rapport au coefficient précédent dans le parcours. Cette détermination est classique et ne sera pas détaillée ici. 20 L'étape E7 de choix des dictionnaires pour coder les modèles d'amplitude des blocs est maintenant détaillée en référence à la figure 5, sous la forme d'un algorithme comportant des étapes E70 à E79. On considère ici la suite des amplitudes des coefficients de chaque 25 liste P déterminée à l'étape E4. Chacune de ces suites d'amplitude est un vecteur dont les amplitudes sont décroissantes. On veut effectuer une quantification vectorielle de ce vecteur. En d'autres termes, on cherche un vecteur choisi parmi un ensemble de vecteurs de code appelé dictionnaire qui est une approximation de ce vecteur. Selon l'invention, on utilise une liste de dictionnaires spécifique pour chaque longueur N de vecteur à coder. Les longueurs, ou dimensions, considérées varient entre 1 et Lmax, ou Lmax est la taille d'un bloc de coefficients. Le choix d'un dictionnaire dans une liste correspondant à une longueur donnée est effectué en fonction de son débit, de manière à minimiser le coût de codage. L'étape E70 est une initialisation à laquelle la longueur N est initialisée à un. L'étape suivante E71 est une initialisation à laquelle un débit R est initialisé à un. On va considérer que le débit peut varier entre un et une valeur maximale prédéterminée Rmax. Le débit R est lié au nombre 2R de vecteurs de code du dictionnaire utilisé. L'étape suivante E72 est la recherche d'un modèle d'amplitude pour chaque bloc codé par un parcours de longueur N. Pour cela, on considère un dictionnaire prédéterminé comportant 2R vecteurs de code ayant tous une longueur N. La construction des dictionnaires sera détaillée dans la suite. Le choix du modèle d'amplitude est une sélection d'un vecteur de 15 code dans le dictionnaire pour chaque bloc codé par un parcours de longueur N. Pour un parcours donné, la sélection est effectuée de manière à minimiser la distorsion entre le vecteur de code choisi et le parcours considéré. L'étape suivante E73 est la détermination du coût de codage pour l'ensemble des blocs codés par un parcours de longueur N. Là aussi, le coût de codage est la fonction C = R + X,.D, dans laquelle R représente le débit de transmission de la forme codée de l'ensemble des blocs codés, D représente la distorsion générée dans le signal reconstruit après codage et décodage, par rapport au signal d'origine et X est un paramètre de réglage entre compression du signal et distorsion générée par le codage. L'étape suivante E74 est la mémorisation du débit courant R comme débit optimal Rpt si le coût de codage est le plus petit des coûts déjà calculés pour les blocs codés par un parcours de la longueur N courante. L'étape suivante E75 est un test pour déterminer si tous les débits à considérer ont été traités, c'est-à-dire si le débit courant est égal à la valeur 30 Rmax. Si la réponse est négative, alors cette étape est suivie de l'étape E76 à laquelle le débit courant R est incrémenté de une unité. L'étape E76 est suivie de l'étape E72 précédemment décrite. Lorsque la réponse est positive à l'étape E75, cette étape est suivie 5 de l'étape E77 à laquelle les indices des vecteurs de code déterminés à l'étape E72, pour le débit optimal Rpt, sont écrits dans le train binaire contenant les données de codage de l'image en cours de codage. La longueur courante N et le débit optimal Ropt sont également écrits dans le train binaire ce qui détermine le dictionnaire choisi. Les modèles d'amplitude des blocs codés par un parcours 10 de longueur N ont ainsi été codés. L'étape suivante E78 est un test pour déterminer si toutes les longueurs à considérer ont été traitées, c'est-à-dire si la longueur courante est égale à la valeur Lmax. Si la réponse est négative, alors cette étape est suivie de l'étape E79 15 à laquelle la longueur courante N est incrémentée de une unité. L'étape E79 est suivie de l'étape E71 précédemment décrite. Lorsque la réponse est positive à l'étape E78, le codage de l'image est terminé. Les figures 6 et 7 exposent deux modes de réalisation de construction de dictionnaires de vecteurs de code. Dans les deux modes, un dictionnaire de vecteurs de codes, qui sont ici des modèles d'amplitude, est construit à partir d'une séquence d'apprentissage comportant plusieurs images formant un échantillonnage 25 d'images naturelles. Pour cela, on utilise par exemple l'algorithme du plus proche voisin par paires (en anglais: pairwise nearest neighbor design) ou l'algorithme généralisé de Lloyd (en anglais: generalized Lloyd algorithm) ou encore l'algorithme de Linde-Buzo-Gray (LGB). Ces trois méthodes sont détaillées dans l'ouvrage de A.Gersho et R.M. Gray intitulé " Vector 30 quantization and signal compression ", Boston, MA, Kluwer, 1992. Pour un dictionnaire ayant des vecteurs d'une longueur (ou dimension) donnée, on n'utilise comme séquence d'apprentissage que des parcours de cette même longueur donnée. Selon le premier mode de réalisation illustré à la figure 6, on tient 5 compte du fait expérimental suivant. Pour une faible dimension de modèles d'amplitude, c'est-à-dire des vecteurs de code de faible longueur, l'ensemble des vecteurs est petit et par conséquent un petit nombre de vecteurs de code est suffisant. Le débit, qui dépend du nombre de vecteurs de code, est par conséquent petit. En revanche, pour une grande dimension de modèles d'amplitude, c'est-àdire des vecteurs de code de grande longueur, l'ensemble des vecteurs est grand et par conséquent un grand nombre de vecteurs de code est nécessaire. Le débit correspondant est donc grand. Comme représenté à la figure 6, on construit ainsi Lmax dictionnaires 15 différents, avec des nombres de vecteurs de code croissant avec la longueur N. Pour chaque longueur, ou dimension, il existe un dictionnaire ayant une taille, ou nombre de vecteurs de code, spécifique. Cette taille 2R correspond à un débit R. Selon le second mode de réalisation, on construit plusieurs 20 dictionnaires de tailles différentes pour chaque longueur N. Comme représenté à la figure 7, Rmax dictionnaires comportant entre 2 et 2Rmax vecteurs de code sont générés pour chaque longueur de parcours. Pour chaque longueur, ou dimension, il existe une liste de dictionnaires. Dans une liste donnée, chaque dictionnaire a une taille, ou nombre de vecteurs de code, spécifique. Cette taille 25 2R correspond à un débit R. Dans les deux modes de réalisation, les dictionnaires sont générés une fois pour toutes. Il est à noter que dans les figures 6 et 7, on a considéré que des blocs DCT de tailles 8x8 coefficients avaient été formés dans l'image. Le 30 premier coefficient DCT d'un bloc est appelé composante continue et est codé indépendamment, par exemple par prédiction linéaire. Ainsi, la longueur du parcours varie entre 1 et 63. C'est le second mode de réalisation qui a été plus particulièrement envisagé dans la description de la figure 5. Si l'on souhaite utiliser le premier mode de réalisation selon lequel un seul dictionnaire estdisponible pour une longueur donnée, l'algorithme de la figure 5 est simplifié puisque le choix du dictionnaire ne dépend alors que de la longueur N. La figure 8 représente un mode de réalisation de procédé de décodage de données préalablement codées selon le procédé de la figure 3. Ce procédé est mis en oeuvre dans le dispositif de décodage et 10 comporte des étapes E20 à E26. 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 15 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 E20 est une initialisation à laquelle les données de codage du premier bloc sont considérées. L'étape suivante E21 est le décodage des coordonnées des coefficients. Ce décodage est effectué comme exposé dans la demande de brevet français no 01 06933. Le parcours est décodé pour fournir les emplacements des coefficients dans le bloc décodé. L'étape suivante E22 est le décodage du modèle d'amplitude. Le 25 résultat est le modèle d'amplitude des coefficients du bloc courant. Dans le cas o Rmax dictionnaires sont disponibles pour chaque longueur, ce décodage comporte la lecture de la longueur N du parcours du bloc courant et du débit R.pt correspondant. Une liste de dictionnaires est sélectionnée en fonction de la longueur N puis un dictionnaire est sélectionné 30 dans cette liste en fonction du débit Rpt Si un seul dictionnaire est disponible pour chaque longueur, alors la longueur N détermine ce dictionnaire. Une fois le dictionnaire déterminé, le décodage du modèle d'amplitude proprement dit est ensuite la lecture de l'indice du vecteur de code qui modélise l'amplitude du bloc à décoder. L'étape suivante E23 est la construction de la liste P décodée. Pour 5 cela, pour chaque emplacement de coefficient déterminé à l'étape E21, une valeur fournie par le modèle d'amplitude est attribuée à cet emplacement. L'emplacement du kème coefficient décodé reçoit la kème composante du vecteur de code constituant le modèle d'amplitude. Les emplacements qui ne font pas partie du parcours reçoivent la valeur zéro. L'étape suivante E24 est une transformation DCT inverse des données obtenues à l'étape précédente. L'étape suivante E25 est un test pour déterminer si le bloc courant est le dernier bloc à décoder. Si la réponse est négative, cette étape est suivie de l'étape E26 à 15 laquelle un bloc suivant est considéré. L'étape E26 est suivie de l'étape E21 précédemment décrite. Si la réponse est positive à l'étape E25, alors le décodage de l'image est terminé. Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier. REVENDICATIONS 1. Procédé de codage d'un ensemble de données représentatives de grandeurs physiques, l'ensemble de données comportant des coefficients, le procédé comportant des étapes de: - détermination (E7) d'un modèle d'amplitude des coefficients et d'un parcours parmi les coefficients, - détermination (E4) de la longueur (N) du parcours, caractérisé en ce que la détermination du modèle d'amplitude des coefficients comporte les étapes de: - sélection (E72) d'un dictionnaire de vecteurs de code en fonction de la longueur du parcours, parmi un ensemble prédéterminé de dictionnaires, les 15 dictionnaires de l'ensemble prédéterminé comportant chacun un nombre prédéterminé de vecteurs de code, - sélection (E72) d'un vecteur de code dans le dictionnaire sélectionné, en fonction d'un coût de codage. 2. Procédé selon la revendication 1, caractérisé en ce que la sélection (E72) d'un dictionnaire de vecteurs de code comporte: - la sélection d'un sous-ensemble de dictionnaires en fonction de la longueur (N) du parcours, - la sélection d'un dictionnaire dans le sous-ensemble sélectionné, 25 en fonction du coût de codage. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que les vecteurs de code du dictionnaire sélectionné ont une longueur égale à la longueur (N) du parcours. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que l'ensemble de données est un bloc formé (El) dans un ensemble initial de données. 5. Procédé selon la revendication 4, caractérisé en ce qu'une pluralité de blocs de données est formée dans l'ensemble initial de données, et en ce que la sélection du dictionnaire (E72) est effectuée globalement pour tous les blocs ayant des parcours de même longueur. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le coût de codage est une somme pondérée du débit de la forme codée de l'ensemble de données et de la distorsion générée dans l'ensemble de données reconstruit après codage et décodage par rapport à l'ensemble de données initial. 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que l'ensemble de données est le résultat d'une transformation DCT (El) d'un ensemble initial de données. 8. Procédé de construction d'un dictionnaire de vecteurs de code destiné à être utilisé par le procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que le dictionnaire est construit à partir d'une séquence d'apprentissage comportant des éléments ayant le même nombre de coefficients que les vecteurs de code du dictionnaire considéré. 25 9. Procédé de décodage d'un ensemble de données représentatives de grandeurs physiques codé par le procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comporte l'étape de: - sélection (E22) d'un dictionnaire de vecteurs de code en fonction de la longueur du parcours. 10. Procédé selon la revendication 9, caractérisé en ce que la sélection d'un dictionnaire de vecteurs de code est effectuée en outre en fonction du coût de codage. 11. Dispositif de codage d'un ensemble de données représentatives de grandeurs physiques, l'ensemble de données comportant des coefficients, le dispositif comportant: - des moyens (22) de détermination d'un modèle d'amplitude des coefficients et d'un parcours parmi les coefficients, des moyens (22) de détermination de la longueur (N) du parcours, caractérisé en ce que les moyens de détermination du modèle d'amplitude des coefficients comportent: - des moyens de sélection d'un dictionnaire de vecteurs de code en fonction de la longueur du parcours, parmi un ensemble prédéterminé de 15 dictionnaires, les dictionnaires de l'ensemble prédéterminé comportant chacun un nombre prédéterminé de vecteurs de code, - des moyens de sélection d'un vecteur de code dans le dictionnaire sélectionné, en fonction d'un coût de codage (C). 12. Dispositif selon la revendication 11, caractérisé en ce que les moyens de sélection d'un dictionnaire de vecteurs de code comportent: - des moyens de sélection d'un sous-ensemble de dictionnaires en fonction de la longueur (N) du parcours, - des moyens de sélection d'un dictionnaire dans le sous-ensemble 25 sélectionné, en fonction du coût de codage (C). 13. Dispositif selon la revendication 11 ou 12, caractérisé en ce que les moyens de sélection d'un dictionnaire de vecteurs de code sont adaptés à effectuer la sélection de sorte que les vecteurs de code du dictionnaire 30 sélectionné ont une longueur égale à la longueur du parcours. 14. Dispositif selon l'une quelconque des revendications 11 à 13, caractérisé en ce qu'il est adapté à considérer un ensemble de données qui est un bloc formé dans un ensemble initial de données. 15. Dispositif selon la revendication 14, caractérisé en ce qu'il comporte des moyens pour former une pluralité de blocs de données dans l'ensemble initial de données, et en ce que les moyens de sélection du dictionnaire sont adaptés à effectuer la sélection globalement pour tous les blocs ayant des parcours de même longueur. 10 16. Dispositif selon l'une quelconque des revendications 11 à 15, caractérisé en ce qu'il est adapté à considérer un coût de codage (C) qui est une somme pondérée du débit de la forme codée de l'ensemble de données et de la distorsion générée dans l'ensemble de données reconstruit après codage 15 et décodage par rapport à l'ensemble de données initial. 17. Dispositif selon l'une quelconque des revendications 11 à 16, caractérisé en ce qu'il comporte des moyens (21) de transformation DCT d'un ensemble initial de données pour former l'ensemble de données. 20 18. Dispositif de construction d'un dictionnaire de vecteurs de code destiné à être utilisé par le dispositif selon l'une quelconque des revendications 11 à 17, caractérisé en ce qu'il est adapté à construire le dictionnaire à partir d'une séquence d'apprentissage comportant des éléments ayant le même 25 nombre de coefficients que les vecteurs de code du dictionnaire considéré. 19. Dispositif de décodage d'un ensemble de données représentatives de grandeurs physiques codé par le dispositif selon l'une quelconque des revendications 11 à 17, caractérisé en ce qu'il comporte: - des moyens (41) de sélection d'un dictionnaire de vecteurs de code en fonction de la longueur du parcours. 20. Dispositif selon la revendication 19, caractérisé en ce que les moyens de sélection (41) d'un dictionnaire de vecteurs de code sont adaptés à effectuer la sélection en outre en fonction du coût de codage. 21. Dispositif de codage selon l'une quelconque des revendications 11 à 17, caractérisé en ce que les moyens de détermination et sélection sont incorporés dans: - un microprocesseur (100), - une mémoire morte (102) comportant un programme pour traiter les données, et - une mémoire vive (103) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 22. Dispositif de construction selon la revendication 18, caractérisé en ce que les moyens de construction sont incorporés dans: - un microprocesseur (100), - une mémoire morte (102) comportant un programme pour traiter les données, et - une mémoire vive (103) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 23. Dispositif de décodage selon la revendication 19 ou 20, caractérisé en ce que les moyens sélection sont incorporés dans: 25 - un microprocesseur (100), - une mémoire morte (102) comportant un programme pour traiter les données, et - une mémoire vive (103) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 30 24. Appareil de traitement (10) d'une image numérique, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 10. 25. Appareil de traitement (10) d'une image numérique, caractérisé en ce qu'il comporte le dispositif selon l'une quelconque des revendications 11 à 23.