Brevet FR2816138A1 — publié le 20020503

La présente invention concerne un procédé de décodage d'un signal numérique codé. L'invention s'applique notamment dans le domaine du traitement des images. Dans le cadre de la norme JPEG2000 en cours de normalisation, la structure des données internes est telle qu'un utilisateur peut avoir accès à une partie d'une image codée, appelée sous-image, sans avoir à décoder la totalité de l'image. Ceci est avantageux dans la mesure où l'utilisateur obtient la sousimage qu'il désire plus rapidement que s'il devait effectuer le décodage de l'image entière. Le décodage d'une sous-image est rendu possible en raison de la structure des données ou échantillons constituant l'image codée et qui sont organisés en blocs, chaque bloc constituant une unité de base pour le codage de l'image. De ce fait, il est possible d'accéder plus rapidement à la sous-image sélectionnée par l'utilisateur en n'extrayant et en ne décodant que les blocs de base correspondants à cette sous-image. La Demanderesse a constaté que ce traitement pouvait être généralisé au cas d'un signal numérique codé qui n'est pas nécessairement une image codée et qui comporte un ensemble d'échantillons obtenus par codage d'un ensemble d'échantillons d'origine représentatifs de grandeurs physiques. Un tel signal numérique peut par exemple être un signal sonore. La présente invention vise à fournir un procédé et un dispositif qui permettent de décoder rapidement un ensemble de données. A cette fin, l'invention propose un procédé de décodage d'un ensemble de données représentatives de grandeurs physiques, les données ayant été préalablement codées par les étapes de transformation en sousbandes de fréquence, formation de blocs et codage de ces blocs en code-blocs, ces code-blocs étant inclus dans un train binaire, caractérisé en ce qu'il comporte les étapes de : - lecture d'une requête définissant l'ensemble de données à décoder, - analyse de la requête pour déterminer un premier sous-ensemble de données à décoder et un second sous-ensemble qui a précédemment été décodé et mémorisé, - projection du premier sous-ensemble à décoder sur les sousbandes de fréquence pour déterminer les code-blocs correspondants, - extraction des code-blocs précédemment déterminés, - décodage des code-blocs extraits, - transformation inverse des codes-blocs décodés de manière à former un premier sous-ensemble décodé. Corrélativement, l'invention concerne un dispositif de décodage d'un ensemble de données représentatives de grandeurs physiques, les données ayant été préalablement codées par des moyens de transformation en sousbandes de fréquence, formation de blocs et codage de ces blocs en code-blocs, ces code-blocs étant inclus dans un train binaire, caractérisé en ce qu'il comporte : - des moyens de lecture d'une requête définissant l'ensemble de données à décoder, - des moyens d'analyse de la requête pour déterminer un premier sous-ensemble de données à décoder et un second sous-ensemble qui a précédemment été décodé et mémorisé, - des moyens de projection du premier sous-ensemble à décoder sur les sous-bandes de fréquence pour déterminer les code-blocs correspondants, - des moyens d'extraction des code-blocs précédemment déterminés, - des moyens de décodage des code-blocs extraits, - des moyens de transformation inverse des codes-blocs décodés de manière à former un premier sous-ensemble décodé. Ainsi, grâce à l'invention, le décodage d'un ensemble de données est effectué en réutilisant des données précédemment décodées, ce qui limite la redondance du traitement. Le décodage est ainsi plus rapide. L'invention est particulièrement avantageuse dans le cas d'une application client-serveur, puisque les échanges de données sont réduits entre le client et le serveur. Selon une caractéristique préférée, le procédé de décodage comporte en outre une étape de concaténation du premier sous-ensemble décodé avec le second sous-ensemble. Ainsi, on retrouve finalement l'intégralité de l'ensemble des données décodées. Selon une caractéristique préférée, l'analyse de la requête prend en compte la dimension, la position, la résolution et la qualité de l'ensemble de données à décoder. L'invention s'applique en effet à des requêtes différentes, de manière à traiter des choix variés de l'utilisateur en ce qui concerne la résolution, la qualité, la taille et la position de l'ensemble de données. Cet ensemble de données peut notamment être une sous-image définie par l'utilisateur dans une image. Selon une caractéristique préférée, la projection du premier sousensemble à décoder est effectuée sur des sous-bandes de fréquence qui sont sélectionnées en fonction de la résolution de l'ensemble de données à décoder. Il est ainsi possible de faire un zoom sur les données souhaitées. Selon une caractéristique préférée, l'extraction d'un code-bloc est effectuée depuis une mémoire ou depuis le train binaire. Si un code-bloc a déjà été utilisé et mémorisé lors d'une opération de décodage précédente, il est possible de le retrouver en mémoire, sans effectuer une recherche dans le train binaire. Là encore, cela est particulièrement avantageux pour une organisation de type client-serveur. Dans un autre aspect, le procédé de décodage comporte les étapes de: - vérification si une première requête est en cours de traitement lorsqu'une seconde requête est détectée, - vérification que le traitement de la première requête a dépassé ou non un seuil d'avancement, si une première requête en cours de traitement est détectée, - arrêt du traitement de la première requête, si le traitement n'a pas dépassé le seuil d'avancement, - attente de la fin du traitement de la première requête, si le traitement a dépassé le seuil d'avancement, - traitement de la seconde requête. Ainsi, la dernière requête en date est traitée le plus rapidement possible, ce qui augmente la rapidité de décodage pour l'utilisateur. Dans un autre aspect, le procédé de décodage comporte les étapes de: - mise en mémoire des code-blocs extraits, - élimination de la mémoire de code-blocs dont la fréquence d'utilisation est faible, si la mémoire est pleine. Ces caractéristiques permettent de gérer une mémoire de taille fixe. L'invention concerne aussi un procédé d'affichage comportant le procédé de décodage précédemment exposé et une étape d'affichage de l'ensemble de données décodées. L'invention concerne un dispositif d'affichage comportant des moyens de mise en oeuvre des caractéristiques précédentes. Le procédé et le dispositif d'affichage présentent des avantages analogues à ceux qui ont été précédemment décrits. L'invention concerne aussi un appareil numérique incluant le dispositif de décodage ou d'affichage, ou des moyens de mise en #uvre du procédé selon l'invention. Cet appareil numérique est par exemple un appareil photographique numérique, un caméscope numérique ou un scanner. 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 #uvre le procédé selon l'invention. Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture d'un mode préféré de réalisation illustré par les dessins ci-joints, dans lesquels : - la figure 1 représente un mode de réalisation de dispositif de codage de données numériques, - la figure 2 représente un mode de réalisation de dispositif de décodage des données selon l'invention, - la figure 3 représente un mode de réalisation de dispositif selon l'invention, - les figures 4 et 5 représente l'organisation d'un train binaire contenant les données codées, - la figure 6 représente l'organisation d'un paquet de données inclus dans le train binaire de la figure 4 ou 5, - la figure 7 représente un mode de réalisation de procédé de décodage de données codées, selon l'invention, - la figure 8 représente une zone à décoder dans une image, - la figure 9 représente deux zones à décoder dans une image, - la figure 10 représente une image avant codage, - la figure 11 représente la décomposition en sous-bandes de fréquence de l'image précédente, - la figure 12 représente un mode de réalisation de projection de zone à décoder sur les sous bandes de fréquence, incluses dans l'algorithme de la figure 7, - la figure 13 représente un mode de réalisation de gestion de requête selon l'invention, - la figure 14 représente un mode de réalisation de mémorisation incluse dans l'algorithme de la figure 7. Selon un mode de réalisation choisi et représenté à la figure 1, un dispositif de codage de données est un dispositif 2 qui comporte une entrée 24 à laquelle est reliée une source 1 de données non codées. La source 1 comporte par exemple un moyen de mémoire, telle que mémoire vive, disque dur, disquette, disque compact, pour mémoriser des données non codées, ce moyen de mémoire étant associé à un moyen de lecture approprié pour y lire les données. Un moyen pour enregistrer les données dans le moyen de mémoire peut également être prévu. On considérera plus particulièrement dans la suite que les données à coder sont une suite d'échantillons numériques d'origine représentatifs de grandeurs physiques et représentant, par exemple, une image IM. La présente invention pourrait être appliquée sur un signal sonore dans lequel on souhaite décoder un extrait d'un signal audio compressé. La source 1 fournit un signal numérique d'image IM à l'entrée du circuit de codage 2. Le signal d'image IM 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. L'image peut être une image multispectrale, par exemple une image en couleur ayant des composantes dans trois bandes de fréquence, de type rouge-vert-bleu ou luminance et chrominance. Soit l'image couleur est traitée dans son intégralité, soit chaque composante est traitée de manière analogue à l'image monospectrale. Des moyens 3 utilisateurs de données codées sont reliés en sortie 25 du dispositif de codage 2. Le dispositif de codage 2 fournit les données codées sous forme de train binaire dont deux exemples seront exposés dans la suite. Les moyens utilisateurs 3 comportent par exemple des moyens de mémorisation de données codées, et/ou des moyens de transmission des données codées. Le dispositif de codage 2 comporte classiquement, à partir de l'entrée 24, un circuit de transformation 21 qui met en oeuvre des décompositions en des signaux de sous-bandes de fréquence du signal de données, de manière à effectuer une analyse du signal. Le circuit de transformation 21 est relié à un circuit de quantification 22. Le circuit de quantification met en #uvre une quantification connue en soi, par exemple une quantification scalaire, ou une quantification vectorielle, des coefficients, ou de groupes de coefficients, des signaux de sous-bandes de fréquence fournis par le circuit 21. Le circuit 22 est relié à un circuit 23 de codage entropique, qui effectue un codage entropique, par exemple un codage de Huffman, ou un codage arithmétique, des données quantifiées par le circuit 22. La figure 2 représente un dispositif 5 de décodage de données selon l'invention, les données ayant été codées par le dispositif 2. Des moyens 4 utilisateurs de données codées sont reliés en entrée 54 du dispositif de décodage 5. Les moyens 4 comportent par exemple des moyens de mémoire de données codées, et/ou des moyens de réception des données codées qui sont adaptés à recevoir les données codées transmises par les moyens de transmission 3. Des moyens 6 utilisateurs de données décodées sont reliés en sortie 55 du dispositif de décodage 5. Les moyens utilisateurs 6 sont par exemple des moyens de visualisation d'images, ou des moyens de restitution de sons, en fonction de la nature des données traitées. Le dispositif de décodage 5 effectue globalement des opérations inverses de celles du dispositif de codage 2 excepté pour les premières opérations. Le dispositif 5 comporte un circuit 56 de lecture de l'ensemble des informations représentatives des échantillons d'origine et de paramètres utilisés lors du codage. Cet ensemble d'informations constitue l'en-tête du signal codé qui est appliqué à l'entrée 54 dudit dispositif. Ce circuit 56 permet de lire les données concernant la taille de l'ensemble d'échantillons d'origine (image) constituant le signal d'image et sa résolution, c'est-à-dire le nombre de niveaux de décomposition en sous-bandes de fréquence de cet ensemble. Dans le cas où le signal d'image est partitionné en zones, également appelées tuiles, ce circuit procède à la lecture des données concernant ces tuiles, à savoir leur nombre, leur largeur, leur hauteur et leur position dans l'image. Le dispositif 5 comporte également un circuit 57 de sélection d'un sous-ensemble d'échantillons d'origine (sous-image) faisant partie de l'ensemble d'échantillons d'origine constituant le signal d'image. La sélection de cette sous-image d'origine est caractérisée par des données concernant la taille, la résolution et la qualité souhaitées. Ces données sont incluses dans une requête. Cette sélection peut se faire à l'aide d'une interface graphique qui contrôlera également, lors du choix de l'utilisateur, la validité de la sous-image sélectionnée. En effet, la sous-image sélectionnée doit être de taille inférieure ou égale à celle de l'image dans la résolution considérée. Les circuits 56 et 57 sont reliés à un circuit 58 d'analyse de requête qui est lui-même relié à un circuit de projection de manière à former une liste de code-blocs à décoder. Le fonctionnement de ces circuits sera détaillé ultérieurement. Le dispositif 5 comporte également un circuit de décodage entropique 60, qui effectue un décodage entropique correspondant au codage du circuit 23 de la figure 1. Le circuit 60 est relié à un circuit de déquantification 61, correspondant au circuit de quantification 22. Le circuit 61 est relié à un circuit de transformation inverse 62, correspondant au circuit de transformation 21. Les transformations envisagées ici réalisent une synthèse du signal numérique, à partir de signaux de sous-bandes de fréquence. Le dispositif de codage et/ou le dispositif de décodage peuvent être intégrés dans un appareil numérique, tel qu'un ordinateur, une imprimante, un télécopieur, un scanner ou un appareil photographique numérique, par exemple. Le dispositif de codage et le dispositif de décodage peuvent être intégrés dans un même appareil numérique, par exemple un appareil photographique numérique. Le dispositif de codage et le dispositif de décodage peuvent être intégrés dans deux appareils numériques distants, l'invention est alors mise en oeuvre dans une première station et le train binaire est mémorisé dans une seconde station distante, les deux stations étant adaptées pour communiquer entre elles. Comme représenté à la figure 3, un dispositif mettant en oeuvre l'invention est par exemple un micro-ordinateur 10 connecté à différents périphériques, par exemple une caméra numérique 107 (ou un scanner, ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant des informations à traiter selon l'invention. Le dispositif 10 comporte une interface de communication 112 reliée à un réseau 113 apte à transmettre des données numériques à traiter ou inversement à transmettre des données traitées par le dispositif. Le dispositif 10 comporte également un moyen de stockage 108 tel que par exemple un disque dur. Il comporte aussi un lecteur 109 de disque 110. Ce disque 110 peut être une disquette, un CD-ROM, ou un DVD-ROM, par exemple. Le disque 110 comme le disque 108 peuvent contenir des données traitées selon l'invention ainsi que le ou les programmes mettant en #uvre 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 #uvre l'invention, pourra être stocké en mémoire morte 102 (appelée ROM sur le dessin). En seconde variante, le programme pourra être reçu pour être stocké de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 113. Le dispositif 10 est relié à un microphone 111. Les données à traiter selon l'invention seront dans ce cas du signal audio. Ce même dispositif possède un écran 104 permettant de visualiser les données à traiter ou de servir d'interface avec l'utilisateur qui peut ainsi paramétrer certains modes de traitement, à l'aide du clavier 114 ou de tout autre moyen (souris par exemple). L'unité centrale 100 (appelée CPU sur le dessin) exécute les instructions relatives à la mise en #uvre 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 #uvre 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 #uvre le procédé selon l'invention. Le bus de communication 101 permet la communication entre les différents éléments inclus dans le micro-ordinateur 10 ou reliés à lui. La représentation du bus 101 n'est pas limitative et notamment l'unité centrale 100 est susceptible de communiquer des instructions à tout élément du microordinateur 10 directement ou par l'intermédiaire d'un autre élément du microordinateur 10. Les figures 4 à 6 schématisent le train binaire en sortie du dispositif de codage précédemment exposé. Comme représenté à la figure 4, le train binaire comporte un en-tête EN et des paquets de données P (r, où r et q sont des entiers représentant respectivement la résolution et la qualité des paquets. L'en-tête EN comporte notamment les informations suivantes : la taille de l'image, le nombre de tuiles formées dans celle-ci, le type de filtre, le pas de quantification et des paramètres de codage. Ces informations sont utiles lors du décodage du train binaire. A la figure 4, les paquets sont organisés en couche. La première couche correspond à une qualité donnée, par exemple 0,01 bpp (bit par pixel). Les couches suivantes contiennent des données additionnelles et correspondent respectivement à des qualités supérieures. La représentation des données est alors progressive en qualité. A la figure 5, les paquets sont organisés par résolution. Le train binaire comporte alors, à la suite de l'en-tête EN, des paquets regroupés par résolution. Il est à noter que ces deux trains binaires contiennent les mêmes paquets de données, et qu'ils se différencient uniquement par leur organisation interne. Il est à noter également que si l'image est décomposée en tuiles, le train binaire est organisé de manière similaire, les données étant regroupées tuile par tuile. Un paquet de données P (r,q) représenté à la figure 6. Ce paquet contient une liste LP de son contenu et une suite de données de codage CB de chacun des blocs, à la résolution r et à la qualité q. Les données de codage CB d'un bloc sont appelées code-bloc, d'après le terme anglais codeblock . Le fonctionnement du dispositif de décodage selon l'invention va maintenant être décrit au moyen d'algorithmes. L'algorithme de la figure 7 représente le fonctionnement général du dispositif de décodage selon l'invention et comporte des étapes E1 à E19. Cet algorithme peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque compact à mémoire figée). L'étape E1 est la lecture d'une requête définissant une zone ou sous image d'une image à décoder et afficher. La figure 8 représente une telle zone. Dans cette figure, l'image complète est notée IM et la zone souhaitée est notée C1. La zone souhaitée est définie par un utilisateur, par exemple au moyen de la souris. La figure 9 représente la zone souhaitée C1 et une seconde zone souhaitée C2. La zone C2 comporte une partie B qui est commune avec la zone C1 et une partie A qui n'est pas comprise dans la zone C1. La partie A peur être décomposée en deux parties rectangulaires A1 et A2. La figure 9 représente plus particulièrement un cas de déplacement de zone à décoder dans l'image, connu sous le terme anglais pan scroll . L'invention s'applique également à des cas où la résolution et/ou la qualité sont également modifiées entre deux zones successivement définies. L'étape E2 est la lecture de l'en-tête du train binaire pour lire les paramètres de codage et pour déterminer notamment la taille de l'image, le nombre de niveaux de résolution sur lesquels elle a été décomposée et la taille des code-blocs contenus dans le train binaire. L'étape suivante E3 est l'analyse de la requête pour déterminer la taille, la position, la résolution et la qualité de la zone à décoder. La requête est en outre validée, c'est-à-dire que l'on vérifie si elle est cohérente avec les informations sur l'image codée qui ont été lues dans l'en-tête du train binaire. L'étape suivante E4 est un test pour déterminer s'il existe une partie de la zone qui a déjà été décodée et qui est en mémoire image, telle que la partie B (figure 9). Le but de l'étape E4 est de séparer les parties telles que les parties A et B de la figure 9, afin de les traiter chacune de manière appropriée. Lorsqu'au moins une telle partie existe, alors cette partie est récupérée en mémoire à l'étape E5. L'étape E5 est suivie de l'étape E6. Lorsque la réponse est négative à l'étape E4, celle-ci est suivie de l'étape E6 à partir de laquelle la partie (partie A à la figure 9) qui n'est pas déjà sous forme décodée en mémoire est traitée. Cette partie peut elle-même être traitée sous la forme de plusieurs sous-parties de forme rectangulaire. Dans la suite, pour simplifier, on considérera une seule partie rectangulaire. A l'étape E6, la partie à décoder est projetée dans la décomposition en sous-bandes de fréquence de l'image. Cette étape sera détaillée dans la suite. Elle a pour résultat un ensemble de blocs dans les différentes sousbandes de fréquence, correspondant à la partie de l'image à décoder. La taille, la position et la résolution de la zone sont prises en compte lors de cette étape. L'étape suivante E7 est la création d'une liste de code-blocs correspondant à la projection effectuée à l'étape précédente. Ces code-blocs correspondent aux blocs précédemment déterminés. La qualité de la zone souhaitée est prise en compte lors de cette étape. L'étape suivante E8 est une initialisation pour mettre un paramètre b à un. Le paramètre b est un entier qui représente un indice de code-bloc dans la liste précédemment créée et qui va maintenant être parcourue. L'étape suivante E9 est un test pour vérifier si le code-bloc courant est déjà mémorisé dans une mémoire tampon. Si la réponse est positive, alors cette étape est suivie de l'étape E10 à laquelle le code-bloc est recherché dans la mémoire. A l'étape suivante E11, sa fréquence d'utilisation est mise à jour, par exemple en incrémentant un compteur à chaque fois que ce code-bloc est utilisé. Si la réponse est négative à l'étape E9, alors le code broc courant est extrait du train binaire à l'étape E12. L'étape suivante E13 est la mémorisation du code-bloc extrait dans la mémoire tampon. Les étapes E11et E13 sont suivies de l'étape E14 à laquelle le codebloc courant est décodé. L'étape suivante E15 est une déquantification du code bloc décodé. Le décodage et la déquantification dépendent des opérations de codage et de quantification qui ont été effectuées lors du codage de l'image. L'étape suivante E16 est un test pour déterminer si le code-bloc courant est le dernier à traiter. Si la réponse est négative, alors cette étape est suivie de l'étape E17 à laquelle le paramètre b est incrémenté de un pour considérer un code-bloc suivant. L'étape E17 est suivie de l'étape E9 précédemment décrite. Lorsque la réponse est positive à l'étape E16, alors cette étape est suivie de l'étape E18 à laquelle une transformation inverse est appliquée aux code-blocs décodés et déquantifiés. La transformation inverse est une transformation qui est l'inverse de celle qui a été effectuée lors du codage de l'image. Les étapes E18 et E5 sont suivie de l'étape E19 qui est la concaténation des résultats de ces deux étapes de manière à former la zone souhaitée. Par exemple, les parties A et B (figure 9) sont concaténées pour former la zone C2. Cette zone est par exemple affichée. L'étape E6 de projection va maintenant être détaillée. La figure 10 représente de manière schématique une image numérique IM en sortie de la source d'image 1 de la figure 1. Cette figure est décomposée par le circuit de transformation 21 de la figure 1 qui est un circuit de décomposition dyadique à trois niveaux de décomposition. Le circuit 21 est, dans ce mode de réalisation, un ensemble classique de filtres, respectivement associés à des décimateurs par deux, qui filtrent le signal d'image selon deux directions, en des signaux de sous-bandes de hautes et basses fréquences spatiales. La relation entre un filtre passe-haut et un filtre passe-bas est souvent déterminée par les conditions de reconstruction parfaite du signal. Il est à noter que les filtres de décomposition verticale et horizontale ne sont pas forcément identiques, bien qu'en pratique ce soit généralement le cas. Le circuit 21 comporte ici trois blocs successifs d'analyse pour décomposer l'image IM en des signaux de sous-bandes selon trois niveaux de décomposition. 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'un signal de sous-bande est liée au nombre d'échantillons par unité de longueur utilisés pour représenter ce signal de sous-bande horizontalement et verticalement. La résolution dépend du nombre de décompositions 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 SI et, de manière connue, délivre en sortie quatre signaux de sous-bandes LL3, LH3, HL3 et HH3 de résolution RES3 la plus élevée dans la décomposition. Le signal de sous-bande LL3 comporte les composantes, ou échantillons, de basse fréquence, selon les deux directions, du signal d'image. Le signal de sous-bande LH3 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. Le signal de sous-bande HL3 comporte les composantes de haute fréquence selon la première direction et les composantes de basse fréquence selon la seconde direction. Enfin, le signal de sous-bande HH3 comporte les composantes de haute fréquence selon les deux directions. Chaque signal de sous-bande est un ensemble d'échantillons réels (il pourrait également s'agir d'entiers) construit à partir de l'image d'origine, qui contient de l'information correspondant à une orientation respectivement verticale, horizontale et diagonale du contenu de l'image, dans une bande de fréquence donnée. Chaque signal de sous-bande peut être assimilé à une image. Le signal de sous-bande LL3 est analysé par un bloc d'analyse analogue au précédent pour fournir quatre signaux de sous-bandes LL2, LH2, HL2 et HH2 de niveau de résolution RES2. Chacun des signaux de sous-bandes de résolution RES2 correspond également à une orientation dans l'image. Le signal de sous-bande LL2 est analysé par un bloc d'analyse analogue au précédent pour fournir quatre signaux de sous-bandes LLo (par convention), LH1, HL1, et HH1 de niveau de résolution RES1. On notera que la sous-bande LLo forme à elle seule la résolution RESo. Chacun des signaux de sous-bandes de résolution RES1 correspond également à une orientation dans l'image. La figure 11 représente l'image IMD résultant de la décomposition de l'image IM, par le circuit 21, en dix sous-bandes et selon 4 niveaux de résolution : RESo (LLo), RES1 (LL2), RES2 (LL3), RES3 (image originale). 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 décomposition. Bien entendu, le nombre de niveaux de décomposition, et par conséquent de sous-bandes, peut être choisi différemment, par exemple 16 sous-bandes sur six 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. En outre, la décomposition peut ne pas être dyadique. Les circuits d'analyse et de synthèse sont adaptés à la dimension du signal traité. Sur la figure 11 les échantillons issus de la transformation sont rangés sous-bande par sous-bande. Par ailleurs, l'image IMD est partitionnée en blocs dont quelques-uns sont représentés sur la figure 11. Lors de la sélection d'une zone, ou sous-image, l'utilisateur précise la taille de cette sous-image représentée par les notations zw (largeur de la sousimage) et zh (hauteur de la sous-image), ainsi que les coordonnées zulx (abscisse du coin en haut de la sous-image) et zuly (ordonnée du coin en haut à gauche de cette sous-image) permettant de localiser cette sous-image dans l'image IM considérée (figurelO). L'utilisateur spécifie également la résolution, notée zres, de la sousimage choisie. L'utilisateur peut, par exemple, demander une sous-image de résolution inférieure à celle de l'image considérée. Ainsi, par exemple, on peut s'intéresser uniquement aux sous-bandes LLo, LH1, HL1, HH1, LL2, LH2, HL2 et HH2. L'utilisateur spécifie encore la qualité zqual de la sous-image choisie. Comme mentionné plus haut, cette étape peut être réalisée à l'aide d'une interface graphique. Les données zw, zh, zulx, zuly, zres et zqual sont également stockées dans des registres de la mémoire vive 106 de la figure 3. La projection de la zone souhaitée sur les sous-bandes de fréquence est représentée sous la forme d'un l'algorithme représenté à la figure 12. Cet algorithme comporte une étape E61 d'initialisation des valeurs des paramètres zulx, zuly, zw, zh et zres correspondant à la sous-image sélectionnée. Par ailleurs, il convient de noter que l'on peut également rajouter les coordonnées zulcx (abscisse) et zulcy (ordonnée) correspondant aux coordonnées de l'image par rapport à un repère d'origine, dans le cas où ces coordonnées ne sont pas confondues avec l'origine du repère. Par souci de simplification, on se placera dans le cas où les coordonnées zulcx et zulcy sont confondues avec l'origine du repère. L'étape E61 est suivie d'une étape E62 au cours de laquelle un paramètre i est fixé comme étant égal à la résolution zres souhaitée par l'utilisateur pour la sous-image sélectionnée. Dans le cas qui nous intéresse, i est égal à 3. L'étape E62 est suivie d'une étape E63 au cours de laquelle, lors de la première itération, on calcule la taille de la sous-image dans la sous-bande LL (3). Ce calcul se simplifie étant donné que les termes zulcxLL(3) et zulcyLL(3) sont égaux à zéro. Lors de cette étape, on calculera ainsi zulxLL(3), zulyLL(3), zwLL (3) et zhLL (3) de la façon suivante : - zulxLL(3) = zulx et zulyLL(3) = zuly - zwLL(3) = E((zulcx + zw + 1) /2)-zulcxLL(3), où E (a) désignela fonction mathématique partie entière de a - zhLL (3) =E((zulcy + zh + 1) /2) -zulcyLL(3) Lorsque les coordonnées zulcx et zulcy ne sont pas égales à 0 on utilise également les formules suivantes : zulcx LL (3) = E ((zulcx + 1 ) /2) zulcy LL (3) E ((zulcy + 1) /2) Les calculs effectués lors de cette étape ne sont que des calculs intermédiaires dont les résultats sont stockés dans des registres de la mémoire 106. Au cours de l'étape suivante notée E64, un test est pratiqué sur le paramètre i afin de savoir s'il est égal à zéro. Dans l'affirmative, l'étape E64 est suivie d'une étape E65 mettant fin à l'algorithme. Dans la négative, l'étape E64 est suivie d'une étape E66 au cours de laquelle on calcule la taille de la sous-image sélectionnée dans les différentes sous-bandes de fréquence HL3, LH3 et HH3 en prenant i = 3 dans les formules suivantes : zulcxHL(i) = E (zulcx/2) zulcyHL(i) = zulcyLL(i) zuIxHL(i) = ulx + zwLL(i) zulyHL(i) = zuly zwHL (i) = E((zulx + zw)/2) - zulcxHL(i) zhHL (i) = zhLL(i) zulcxLH(i) = zulcxLL(i) zulcyLH(i) = E(zulcy/2) zuixLH(i) = zulx zulyLH(i) = zuly + zhLL(i) zwLH (i) = zwLL(i) zhLH (i) = E((zulcy + zh)/2) - zulcyLH(i) zulcxHH(i) = zulcxHL(i) zulcyHH(i) = zulcyHL(i) zuIxHH(i) = zuIxHL(i) zulyHH(i) = zulyLH(i) zwHH (i) = zwHL(i) zhHH(i) = zhLH(i). On calcule ainsi zulxHL(3), zulyHL(3), zwHL (3) et zhHL (3), puiszulxLH(3), zulyLH(3), zwLH (3) et zhLH(3). Ensuite, on calcule la taille de la sous-image dans la sous-bande HH3, ce qui fournit les éléments zulxHH(3), zulyHH(3), zwHH (3) et zhHH(3). Les différents éléments qui viennent d'être calculés au cours de l'étape E66 sont reportés sur les sous-bandes correspondantes HL3, LH3 et HH3. Ces éléments sont par ailleurs stockés dans des registres de la mémoire vive 106 de la figure 3. L'étape suivante notée E67 consiste à remettre à jour les différents éléments calculés pour la sous-bande basse LL3 en vue de sa nouvelle décomposition. La remise à jour s'effectue à l'aide des égalités suivantes : zulcx = zulcxLL(i) zulcy = zulcyLL(i) zulx = zuIxLL(i) zuly = zulyLL(i) zw = zwLL(i) zh = zhLL(i). A la fin de cette étape on décrémente ensuite le paramètre i à la valeur 2. Au cycle suivant, l'étape E63 conduit au calcul de la taille de la sousimage projetée dans la sous-bande LL2 et, au cours de l'étape E66, au calcul de cette même sous-image projetée dans les sous-bandes HL2, LH2, HH2. Ces calculs sont effectués en utilisant les formules qui ont été présentées ci-dessus lors du calcul de la taille de la sous-image dans les signaux de sous-bandes LL3, LH3, LH3 et HH3. De façon analogue, l'étape E67 permet de remettre à jour les coefficients obtenus lors des calculs précédents de la taille de la sous-image projetée dans les signaux de sous-bandes LL2, HL2, LH2 et HH2. Les résultats de cette étape sont stockés dans des registres de la mémoire 106. Le paramètre i est ensuite décrémenté à la valeur 1 et l'étape E63 de nouveau exécutée permet de calculer la taille de la sous-image projetée dans la sous-bande LL1. Au cours de l'étape E66, on calcule la taille de cette même sous-image projetée dans les sous-bandes HL1, LH1, HH1 en utilisant les mêmes formules que précédemment. Les calculs de l'étape E66 conduisent d'eux-mêmes à la localisation de la sous-image sélectionnée dans les différents signaux de sous-bande de fréquence du dernier niveau de résolution, à savoir HL1, LH1 et HH1. L'étape E67 de remise à jour des coefficients et de décrémentation de i à 0 est suivie de l'étape E63 qui permet de calculer la taille de la sousimage projetée dans la sous-bande basse du dernier niveau de résolution LLo. Le résultat issu de cette étape permet de localiser la sous-image sélectionnée dans la sous-bande basse LLo de l'image considérée en repérant sa position dans cette dernière (figure 11). L'étape E63 est ensuite suivie de l'étape E64 et de l'étape E65 mettant fin à l'algorithme. L'algorithme de la figure 13 représente le fonctionnement général de la gestion de requête et comporte des étapes E20 à E26. Cet algorithme peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque compact à mémoire figée). L'étape E20 est une étape de surveillance de requête. Cette étape est suivie de l'étape E21 qui est un test pour déterminer si une nouvelle requête est détectée. Tant que la réponse est négative, alors l'étape E21 est suivie de l'étape E20. Lorsqu'il y a une nouvelle requête, alors l'étape E21 est suivie de l'étape E22 qui est un test pour déterminer si il y a une requête précédente qui est en cours de traitement. Si la réponse est positive à l'étape E22, alors cette étape est suivie de l'étape E23 qui est un test pour déterminer si le traitement de la requête précédente en cours a dépassé un seuil d'avancement. Si la réponse est négative, alors cette étape est suivie de l'étape E24 à laquelle le traitement de la requête précédente en cours est interrompu. Si la réponse est positive, alors l'étape E23 est suivie de l'étape E25 qui est une étape d'attente de la fin du traitement de la requête précédente en cours. Les étapes E22, E24 et E25 sont suivies de l'étape E26 qui est l'exécution de la requête qui avait été détectée à l'étape E21. Cette exécution comporte l'exécution des étapes E1 à E19 précédemment décrites. L'étape E26 est suivie de l'étape E20 précédemment décrite. L'étape E13 de mise en mémoire tampon du code-bloc courant est détaillée à la figure 14 sous la forme d'un algorithme comportant des étapes E130 à E133. Ces étapes sont parcourues lorsque qu'un code-bloc est à mémoriser. L'étape E130 est un test pour vérifier si la mémoire tampon est pleine. Si la réponse est positive, alors cette étape est suivie de l'étape E131 qui est un tri des code-blocs mémorisés dans la mémoire selon un critère. Ce critère est par exemple le nombre d'utilisation de chaque code-bloc. L'étape suivante E132 est l'élimination du nombre de code-blocs nécessaire pour libérer suffisamment de place mémoire pour pouvoir mémoriser le code-bloc à stocker. Les code-blocs qui sont éliminés sont ceux qui ont été le moins souvent utilisés. Si la réponse est négative à l'étape E130, cette étape est suivie de l'étape E33. De même, l'étape E132 est suivie de l'étape E133. L'étape E133 est la mémorisation proprement dite du code-bloc à stocker dans la mémoire tampon. 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. Il est à noter que le traitement qui a été décrit s'applique de façon similaire à une image qui a été décomposée en tuile lors de son codage. REVENDICATIONS 1. Procédé de décodage d'un ensemble de données représentatives de grandeurs physiques, les données ayant été préalablement codées par les étapes de transformation en sous-bandes de fréquence, formation de blocs et codage de ces blocs en code-blocs, ces code-blocs étant inclus dans un train binaire, caractérisé en ce qu'il comporte les étapes de : - lecture (E1) d'une requête définissant l'ensemble de données à décoder, - analyse (E3) de la requête pour déterminer un premier sousensemble de données à décoder et un second sous-ensemble qui a précédemment été décodé et mémorisé, - projection (E6) du premier sous-ensemble à décoder sur les sousbandes de fréquence pour déterminer les code-blocs correspondants, - extraction (E10, E12) des code-blocs précédemment déterminés, - décodage (E14) des code-blocs extraits, - transformation (E18) inverse des codes-blocs décodés de manière à former un premier sous-ensemble décodé. 2. Procédé de décodage selon la revendication 1, caractérisé en ce qu'il comporte en outre une étape (E19) de concaténation du premier sousensemble décodé avec le second sous-ensemble. 3. Procédé de décodage selon la revendication 1 ou 2, caractérisé en ce que l'analyse (E3) de la requête prend en compte la dimension, la position, la résolution et la qualité de l'ensemble de données à décoder. 4. Procédé de décodage selon l'une quelconque des revendications 1 à 3, caractérisé en ce que la projection (E6) du premier sous-ensemble à décoder est effectuée sur des sous-bandes de fréquence qui sont sélectionnées en fonction de la résolution de l'ensemble de données à décoder. 5. Procédé de décodage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que l'extraction (E10, E12) d'un code bloc est effectuée depuis une mémoire ou depuis le train binaire. 6. Procédé de décodage selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte les étapes de : - vérification (E22) si une première requête est en cours de traitement lorsqu'une seconde requête est détectée, - vérification (E23) que le traitement de la première requête a dépassé ou non un seuil d'avancement, si une première requête en cours de traitement est détectée, - arrêt (E24) du traitement de la première requête, si le traitement n'a pas dépassé le seuil d'avancement, - attente (E25) de la fin du traitement de la première requête, si le traitement a dépassé le seuil d'avancement, - traitement (E26) de la seconde requête. 7. Procédé de décodage selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comporte les étapes de : - mise en mémoire (E133) des code-blocs extraits, - élimination (E132) de la mémoire de code-blocs dont la fréquence d'utilisation est faible, si la mémoire est pleine. 8. Procédé d'affichage, caractérisé en ce qu'il comporte le procédé de décodage selon l'une quelconque des revendications 1 à 7 et une étape d'affichage (E19) de l'ensemble de données décodées. 9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il est mis en oeuvre dans une première station et que le train binaire est mémorisé dans une seconde station distante, les deux stations étant adaptées pour communiquer entre elles. 10. Dispositif de décodage d'un ensemble de données représentatives de grandeurs physiques, les données ayant été préalablement codées par des moyens de transformation en sous-bandes de fréquence, formation de blocs et codage de ces blocs en code-blocs, ces code-blocs étant inclus dans un train binaire, caractérisé en ce qu'il comporte : - des moyens (57) de lecture d'une requête définissant l'ensemble de données à décoder, - des moyens (58) d'analyse de la requête pour déterminer un premier sous-ensemble de données à décoder et un second sous-ensemble qui a précédemment été décodé et mémorisé, - des moyens (59) de projection du premier sous-ensemble à décoder sur les sous-bandes de fréquence pour déterminer les code-blocs correspondants, - des moyens (60) d'extraction des code-blocs précédemment déterminés, - des moyens (60) de décodage des code-blocs extraits, - des moyens (62) de transformation inverse des codes-blocs décodés de manière à former un premier sous-ensemble décodé. 11. Dispositif de décodage selon la revendication 10, caractérisé en ce qu'il comporte en outre des moyens (62) de concaténation du premier sousensemble décodé avec le second sous-ensemble. 12. Dispositif de décodage selon la revendication 10 ou 11, caractérisé en ce que les moyens (58) d'analyse de la requête sont adaptés à prendre en compte la dimension, la position, la résolution et la qualité de l'ensemble de données à décoder. 13. Dispositif de décodage selon l'une quelconque des revendications 10 à 12, caractérisé en ce que les moyens (59) de projection du premier sous-ensemble à décoder sont adaptés à effectuer la projection sur des sous-bandes de fréquence qui sont sélectionnées en fonction de la résolution de l'ensemble de données à décoder. 14. Dispositif de décodage selon l'une quelconque des revendications 10 à 13, caractérisé en ce que les moyens (60) d'extraction d'un code bloc sont adaptés à effectuer l'extraction depuis une mémoire ou depuis le train binaire. 15. Dispositif de décodage selon l'une quelconque des revendications 10 à 14, caractérisé en ce qu'il comporte (58) : - des moyens de vérification si une première requête est en cours de traitement lorsqu'une seconde requête est détectée, - des moyens de vérification que le traitement de la première requête a dépassé ou non un seuil d'avancement, si une première requête en cours de traitement est détectée, - des moyens d'arrêt du traitement de la première requête, si le traitement n'a pas dépassé le seuil d'avancement, - des moyens d'attente de la fin du traitement de la première requête, si le traitement a dépassé le seuil d'avancement, - des moyens de traitement de la seconde requête. 16. Dispositif de décodage selon l'une quelconque des revendications 10 à 15, caractérisé en ce qu'il comporte (60) : - des moyens de mise en mémoire des code-blocs extraits, - des moyens d'élimination de la mémoire de code-blocs dont la fréquence d'utilisation est faible, si la mémoire est pleine. 17. Dispositif d'affichage, caractérisé en ce qu'il comporte le dispositif de décodage selon l'une quelconque des revendications 10 à 16 et des moyens (6) d'affichage de l'ensemble de données décodées. 18. Dispositif selon l'une quelconque des revendications 10 à 17, caractérisé en ce qu'il est inclus dans une première station, le train binaire étant mémorisé dans une seconde station distante et les deux stations étant adaptées pour communiquer entre elles. 19. Dispositif (10) selon l'une quelconque des revendications 10 à 18, caractérisé en ce que les moyens de lecture, analyse, projection, extraction, décodage et transformation inverse 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. 20. Appareil de traitement de signal 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 à 9. 21. Appareil de traitement de signal numérique, caractérisé en ce qu'il comporte le dispositif selon l'une quelconque des revendications 10 à 19.