Brevet FR2867924A1 — publié le 20050923

L'invention concerne un procédé et un dispositif de décodage. Il est bien connu de coder des signaux physiques tels que ceux représentant une image ou un son afin de permettre leur transport ou leur enregistrement sous forme numérique. Certains types de codage permettent de réduire la taille des données nécessaires au stockage ou à la transmission d'une image ou d'un son. On dénomme généralement ce type de codage par le terme compression et l'on parle ainsi parfois de données compressées. Afin de restituer le signal original, il est nécessaire de procéder au décodage des données codées. A titre d'exemple, dans le domaine des images numériques, des images codées au format JPEG doivent être décodées tout d'abord par une phase de décodage entropique, puis par une phase de transformation fréquentielle inverse. En général, le décodage des données codées est réalisé en une étape. Toutefois, il a déjà été proposé de diviser le décodage en plusieurs étapes, notamment lorsque les données codées ont une taille importante qui occasionne un temps de décodage important. Une telle solution est notamment décrite dans le brevet US 6 259 820. Dans ce document, on décrit le décodage progressif d'une image codée au format JPEG. Le décodage est en effet réalisé par étapes successives; à la fin de chaque étape, on obtient une image avec une résolution intermédiaire. Dès qu'une image est décodée à un niveau de résolution intermédiaire, elle est affichée et l'on dispose ainsi d'un aperçu de l'image originale même sans décoder l'ensemble de l'image. Les étapes de décodage des niveaux de résolution ultérieurs sont ensuite effectuées jusqu'à la décompression totale de l'image originale. 2 2867924 Dans ce document, le décodage s'effectue de manière incontrôlée, de sorte que le décodage a lieu pour l'intégralité de l'image originale quelles que soient les possibilités du système et l'intérêt de ce décodage. Ce décodage intégral peut alors s'avérer problématique, par exemple 5 sur une machine à capacité calculatoire limitée, voire même inutile, par exemple lorsque la zone affichée ne couvre pas toute l'image. Par ailleurs, lorsque le décodage est réalisé par plusieurs phases successives de décodage comme rappelé ci-dessus, toutes les phases successives sont en général effectuées de manière intégrale, quels que soient le contenu des données traitées et les caractéristiques du système de traitement. Afin de remédier à au moins un de ces inconvénients, et notamment de mieux maîtriser le décodage des données, l'invention propose un procédé de décodage de données codées représentant une image, l'image étant divisée en blocs, caractérisé en ce qu'il comprend les étapes suivantes: application d'une première phase de décodage à au moins une partie des données codées afin d'obtenir des données intermédiaires relatives à au moins un bloc; - vérification d'un premier critère; - application d'une seconde phase de décodage aux données 20 intermédiaires seulement en cas de vérification positive du premier critère, ladite seconde phase comportant pour chaque bloc les étapes de: - vérification d'un second critère; - obtention de données d'image correspondant aux données intermédiaires relatives au bloc seulement en cas de vérification positive du second 25 critère. Grâce à l'utilisation d'un critère qui conditionne la réalisation de la seconde phase de décodage, le décodage est mieux contrôlé. De plus, l'utilisation d'un second critère qui conditionne le décodage au niveau de chaque bloc permet de contrôler de manière très fine le décodage. Selon une possibilité de mise en oeuvre, l'étape de vérification du premier critère est précédée par une étape de mise à jour de premières données de fonctionnement. L'étape de vérification du premier critère peut alors comporter une étape de comparaison d'au moins une partie des premières données de fonctionnement à une première valeur prédéterminée. On peut ainsi utiliser de 3 2867924 manière simple un critère relativement complexe qui tienne compte de l'évolution du décodage en temps réel. Selon un premier mode de réalisation, l'étape de vérification du premier critère comprend une étape de comparaison de l'énergie d'au moins une partie des données intermédiaires à un seuil d'énergie. Le premier critère peut ainsi tenir compte du résultat de la première phase de décodage. En général, l'énergie de ladite au moins une partie des données intermédiaires est exprimée comme la somme des carrés des valeurs de ladite au moins une partie des données intermédiaires. Ladite au moins une partie des données intermédiaires peut être l'ensemble des données intermédiaires relatives à l'image. Le premier critère peut ainsi tenir compte de toutes les applications de la première phase de décodage précédemment réalisées pour l'image considérée. En variante, ladite au moins une partie des données intermédiaires peut être l'ensemble des données intermédiaires obtenues lors d'une application de la première phase de décodage. On peut ainsi tenir compte plus précisément des données en cours de décodage. Selon un second mode de réalisation, lorsque la première phase de décodage est réalisée par un processeur, l'étape de vérification du premier critère comprend une étape de comparaison de l'activité du processeur à un seuil d'activité. Le décodage peut ainsi être modulé en fonction de l'activité du processeur et, par exemple, n'être réalisé que lorsque le processeur est disponible. Selon un troisième mode de réalisation, l'étape de vérification du premier critère comprend une étape de comparaison du temps de réalisation de la première phase de décodage à un seuil de temps. La seconde phase de décodage pourra ainsi, par exemple, n'avoir lieu que si la première phase de décodage a été réalisée suffisamment rapidement. Selon un quatrième mode de réalisation, lorsque le procédé est mis en oeuvre au sein d'un réseau, l'étape de vérification du premier critère comprend une 30 étape de comparaison de la bande passante utilisée à un seuil de bande passante. Le décodage pourra ainsi être conditionné par un état du réseau permettant une transmission suffisante des données. Selon un cinquième mode de réalisation, lorsque les données intermédiaires correspondent à une pluralité de fréquences, l'étape de vérification 4 2867924 du premier critère comprend une étape de comparaison du nombre de fréquences obtenues par la première phase de décodage à un seuil. On pourra ainsi limiter l'application de la seconde phase de décodage à des fréquences utiles. Plusieurs des modes de réalisation exposés ci-dessus peuvent naturellement être combinés au sein de l'étape de vérification du premier critère (qui pourra dans ce cas être un critère complexe). Selon une autre possibilité de mise en oeuvre, le procédé comporte une étape de mise à jour de secondes données de fonctionnement. Dans ce cas, l'étape de vérification du second critère peut comporter l'étape de comparaison d'au moins une partie des secondes données de fonctionnement à une seconde valeur prédéterminée. Lorsque la seconde phase de décodage est réalisée par un processeur, l'étape de vérification du second critère comprend par exemple une étape de comparaison de l'activité du processeur à un seuil d'activité. Les avantages de ces dernières possibilités de mise en oeuvre de l'étape de vérification du second critère sont identiques à celles mentionnées plus haut à propos du premier critère. Selon une autre possibilité, l'étape de vérification du second critère comprend les étapes suivantes: - calcul d'un paramètre relatif au bloc à partir des données intermédiaires du bloc; - comparaison du paramètre relatif au bloc à un seuil. La seconde phase de décodage peut ainsi être conditionnée par des caractéristiques du bloc en cours de traitement. Par exemple, le paramètre relatif au bloc est la somme des carrés des valeurs des données intermédiaires du bloc. Ce paramètre est facilement calculable et utilisable. Selon encore une autre possibilité, l'étape de vérification du second critère comprend une étape de détermination de la position du bloc dans l'image. La réalisation de la seconde phase de décodage peut ainsi être conditionnée par la position du bloc dans l'image, par exemple pour éviter l'application de la seconde phase de décodage à un bloc de l'image masqué lors de son affichage. L'invention propose également un dispositif de décodage de données codées représentant une image, l'image étant divisée en blocs, caractérisé en ce qu'il comprend: - un premier décodeur apte à appliquer une première phase de 5 décodage à au moins une partie des données codées afin d'obtenir des données intermédiaires relatives à au moins un bloc; - des moyens de vérification d'un premier critère; - un second décodeur apte à appliquer une seconde phase de décodage aux données intermédiaires seulement en cas de vérification positive du premier 10 critère, le second décodeur comportant: - des moyens de vérification d'un second critère; - des moyens d'obtention de données d'image correspondant aux données intermédiaires d'un bloc seulement en cas de vérification positive du second critère. Les avantages relatifs au dispositif exposé ci-dessus sont similaires à ceux procurés par le procédé de décodage selon l'invention. Dans le procédé et le dispositif qui viennent d'être décrits, la première phase de décodage est, par exemple, un décodage entropique et la seconde phase de décodage comprend, par exemple, une transformation fréquentielle inverse. L'invention propose en outre un moyen de stockage d'informations qui peut être lu par un ordinateur ou un microprocesseur, contenant des instructions d'un programme d'ordinateur pour exécuter les étapes du procédé proposé ci-dessus. II est proposé de manière analogue un moyen de stockage d'informations partiellement ou totalement amovible, qui peut être lu par un ordinateur ou un microprocesseur, contenant des instructions d'un programme d'ordinateur pour exécuter les étapes du procédé ci-dessus. L'invention propose aussi un programme d'ordinateur qui peut être chargé dans un appareil programmable, caractérisé en ce qu'il comprend des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre les étapes des procédés ci-dessus, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable. D'autres caractéristiques et avantages de l'invention apparaîtront à la lumière de la description qui suit, faite en référence aux dessins annexés, dans lesquels: - la figure 1 représente un appareil pouvant mettre en oeuvre l'invention; - la figure 2 est l'organigramme d'un procédé de codage; - la figure 3 est l'organigramme d'un procédé de décodage. La figure 1 présente les éléments principaux d'un appareil programmable pouvant mettre en oeuvre le procédé de décodage proposé par l'invention. L'appareil de la figure 1 peut constituer un dispositif de décodage conforme aux enseignements de l'invention. L'appareil de la figure 1 donné à titre d'exemple est un micro-ordinateur 10 connecté à différents périphériques tel qu'une caméra numérique 107 (ou un scanner, ou un appareil photographique numérique, ou tout moyen d'acquisition ou de stockage d'images) relié à une carte graphique et fournissant un appareil de traitement de données numériques. L'appareil peut en variante être une station de travail. L'appareil 10 comporte un bus de communication 101 auquel sont reliés: une unité centrale de traitement ou CPU 100 (microprocesseur), - une mémoire morte 102 (ou ROM), pouvant comporter un ou 20 plusieurs programmes d'ordinateur, selon l'invention, et permettant de mettre en oeuvre des algorithmes mentionnés dans la suite, - une mémoire vive 103 (ou RAM) adaptée à stocker des variables, paramètres et données traités au cours de l'exécution des différents algorithmes précités, ainsi qu'éventuellement, de manière temporaire, les instructions du ou des programmes d'ordinateur précités, - un écran 104 permettant de visualiser des données ou ce qu'elles représentent (par exemple une image) et/ou de servir d'interface graphique avec l'utilisateur, qui pourra interagir avec le ou les programmes selon l'invention à l'aide d'un clavier 114 ou de tout autre moyen tel qu'un dispositif de pointage, comme par exemple une souris ou un crayon optique, - un disque dur 108 pouvant mémoriser le ou les programmes, - un lecteur de disquette 109 apte à recevoir une disquette 110 et à y lire ou à y écrire des données numériques traitées ou à traiter selon l'invention, 7 2867924 - une interface de communication 112 reliée à un réseau de communication distribué 113, par exemple le réseau Internet, l'interface étant apte à transmettre et à recevoir des données numériques telles que celles mentionnées dans la suite. Le bus de communication 101 permet la communication et l'interopérabilité entre les différents éléments inclus dans le micro-ordinateur 10 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du micro-ordinateur 10 directement par l'intermédiaire d'un autre élément du micro- ordinateur 10. Le code exécutable (i.e. la séquence d'instructions) du programme ou de chaque programme permettant à l'appareil programmable 10 de mettre en oeuvre le procédé selon l'invention décrits ci-après peut être stocké, par exemple, dans le disque dur 108 ou en mémoire morte 102 comme représenté sur la figure 1. Pour son exécution, le code exécutable peut être transféré du disque dur 108 à la mémoire vive 103. Selon une variante, la disquette 110 peut contenir des données ainsi que le code exécutable du ou des programmes précités qui, une fois lu par l'appareil 10, sera stocké dans le disque dur 108 ou temporairement en mémoire vive 103. En seconde variante, le code exécutable du ou des programmes pourra être reçu par l'intermédiaire du réseau de communication 113, via l'interface 112, pour être stocké de façon identique à celle décrite précédemment. Les disquettes peuvent être remplacées par tout support d'informations tel que, par exemple, un disque compact (CD-ROM) ou une carte mémoire. De manière générale, un moyen de stockage d'informations, lisible par un ordinateur ou par un microprocesseur, intégré ou non à l'appareil, éventuellement amovible, est adapté à mémoriser un ou plusieurs programmes dont l'exécution permet la mise en oeuvre du procédé selon l'invention. De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage de l'appareil 10, telle que la mémoire vive 103, avant d'être exécutés. 8 2867924 L'unité centrale 100 va commander et diriger l'exécution des instructions ou portions de codes logiciels du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 108 ou dans la mémoire morte 102 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 108 ou la mémoire morte 102, sont transférés dans la mémoire vive 103 qui contiendra alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en oeuvre de l'invention. II convient de noter que l'appareil comportant le dispositif selon l'invention peut également être un appareil programmé. Cet appareil contient alors le code du ou des programmes informatiques par exemple figé dans un circuit intégré à application spécifique (ASIC). La figure 2 représente les étapes principales d'un procédé de codage 15 d'une image numérique. Ce procédé de codage est, par exemple, appliqué à une image numérique en couleurs représentée avant codage par un ensemble de données d'image brutes stockées par exemple au sein d'un fichier source sur un support d'informations. Les données d'image sont divisées en trois ensembles principaux de données qui correspondent chacun à une composante. Pour chaque composante, les données d'image définissent la valeur de la composante pour tous les pixels de l'image. Les composantes utilisées dépendent du système de représentation de la couleur choisi, par exemple le système RVB (composantes rouge, verte et bleue) ou le système YCrCb (une composante de luminance et deux composantes de chrominance) utilisé dans la suite de la description. On va détailler dans la suite le procédé de codage relatif à une composante. Dans le cas d'une image couleur comprenant plusieurs composantes, le procédé de codage tel que décrit ci-dessous s'applique à chaque composante. 9 2867924 Les données d'image relatives à une composante représentent les valeurs prises dans la composante considérée par chaque pixel de l'image numérique à coder. Le procédé de codage commence à l'étape E201 où l'image est divisée en blocs. En effet, l'ensemble des valeurs représentant l'image dans la composante considérée peut être vu comme une matrice de valeurs, chaque élément de la matrice correspondant à un pixel. On peut donc diviser l'image en blocs de pixels, par exemple en blocs de taille 8X8. On passe alors à l'étape E202 de transformation fréquentielle de chaque bloc défini à l'étape E201. Cette étape est, par exemple, réalisée par une boucle sur l'ensemble des blocs (non représentée en figure 2) : on parcourt l'ensemble des blocs définis à l'étape E201 et pour chaque bloc, on applique une transformation fréquentielle aux pixels qui constituent le bloc. La transformation fréquentielle est, par exemple, une transformation en cosinus discrète ou DCT (de l'anglais "Discrete Cosine Transform"). La transformation fréquentielle convertit les données d'image de chaque bloc en données intermédiaires, dénommées en général coefficients DCT lorsque la transformation est une transformation en cosinus discrète comme dans l'exemple qui vient d'être mentionné. Les données intermédiaires (ici coefficients DCT) pour un bloc constituent donc une représentation dans le domaine fréquentiel des données relatives au bloc considéré. Chaque coefficient DCT du bloc correspond à une valeur relative à une certaine fréquence spatiale dans le bloc considéré. Les données intermédiaires, qui forment également un bloc, sont rangées dans l'ordre des fréquences. Pour une certaine position dans le bloc, le coefficient DCT (ou donnée intermédiaire) à cette position correspond donc à une fréquence spatiale spécifique et ce, quel que soit le bloc considéré. Lorsque tous les blocs ont subi la transformation fréquentielle, on peut alors poursuivre le procédé de codage fréquence par fréquence comme décrit ci-dessous. Pour ce faire, on passe d'abord à l'étape E203 où l'on considère une première fréquence comme fréquence courante. Lorsque la composante continue (fréquence nulle) est codée indépendamment des autres fréquences (par 2867924 exemple par codage DPCM selon la norme JPEG), on considère à cette étape la première fréquence non nulle. Les différentes fréquences à considérer ont pu être classées au préalable selon un ordre prédéterminé. Cet ordre est par exemple l'ordre de balayage en zigzag défini dans la norme JPEG (en anglais "zigzag scan"). On procède ensuite au codage de l'ensemble des coefficients DCT relatifs à la fréquence considérée parmi tous les blocs de l'image. Dans ce but, on procède tout d'abord à l'étape E204 au cours de laquelle on sélectionne un premier bloc. A l'étape suivante E205, on ajoute le coefficient DCT (ou donnée intermédiaire) relatif au bloc courant dans la fréquence courante au signal de la fréquence courante. Le signal de la fréquence courante correspond à l'ensemble des coefficients DCT relatifs à cette fréquence. A l'étape E206, on détermine si le bloc courant est le dernier bloc. Si le bloc courant n'était pas le dernier bloc, on passe à l'étape E207 où l'on considère le bloc suivant, c'est-à-dire que l'on incrémente le bloc courant. Le passage au bloc suivant est par exemple réalisé suivant un ordre de balayage lexicographique, parfois dénommé ordre de balayage vidéo (en anglais "raster scan"). L'étape E207 est suivie de l'étape E205 déjà décrite au cours de laquelle on ajoute au signal de la fréquence courante le coefficient DCT relatif au bloc courant dans la fréquence considérée. Si l'on détermine à l'étape E206 que le bloc courant était le dernier bloc, on passe alors à l'étape E208 de codage entropique du signal de la fréquence courante. Cette étape E208 permet donc de procéder au codage entropique de l'ensemble des coefficients DCT relatifs à la fréquence courante (tous les blocs de l'image sont donc considérés), afin d'obtenir les données codées relatives à la fréquence courante. Le type de codage entropique utilisé peut varier selon la fréquence considérée. Par exemple, on peut utiliser un codeur arithmétique pour l'ensemble des fréquences sauf pour la composante continue (fréquence zéro) et un codeur 11 2867924 DPCM (de l'acronyme anglais "Differential Pulse Coded Modulation") à trois prédicteurs pour la composante continue. Lorsque le codage entropique des données intermédiaires relatives à la fréquence courante a été réalisé, on passe à l'étape E209 où l'on vérifie si la 5 fréquence courante est la dernière fréquence à considérer. Si la fréquence courante était la dernière fréquence, on met fin au procédé de codage à l'étape E211. On a alors obtenu les données codées relatives à l'ensemble des fréquences considérées. Ces données codées peuvent donc être stockées sous forme d'un fichier sur un support d'information, tel que le disque dur 108, ou envoyées sur le réseau de communication 113, en procédant de préférence par fréquence croissante. Si, au contraire, la fréquence courante n'était pas la dernière fréquence à considérer, on passe à l'étape E210 où l'on considère la fréquence suivante (c'est-à-dire que l'on incrémente la fréquence courante). On peut, par exemple, passer à la fréquence suivante en considérant la fréquence correspondant au coefficient DCT suivant dans l'ordre du balayage en zigzag (pris au sein d'un bloc). Lorsque la fréquence suivante est considérée à l'étape E210, on passe alors à l'étape E204 de sélection d'un premier bloc à traiter dans la 20 nouvelle fréquence considérée. La figure 3 décrit un mode de réalisation d'un procédé de décodage progressif comme proposé par l'invention. Ce procédé de décodage est, par exemple, appliqué à un fichier de données codées tel qu'obtenu par une procédure de codage conforme à celle de la figure 2. Le procédé de décodage progressif commence par l'étape E301 où l'on prend en compte les données relatives à la première fréquence considérée dans le fichier de données codées. La fréquence courante est donc la première fréquence considérée. On passe alors à l'étape E302 où l'on considère le premier bloc dans 30 la fréquence courante. 12 2867924 On passe ensuite à l'étape E303 où l'on procède au décodage entropique de la fréquence dans le bloc courant. Le décodage entropique est réalisé par un décodeur adapté au codeur qui a permis le codage entropique. Il s'agit dans l'exemple considéré d'un décodeur arithmétique (sauf pour la composante continue qui subira un décodage DPCM). Le décodage entropique d'une donnée codée relative à un bloc et à une fréquence déterminés permet d'obtenir le coefficient DCT (de manière générale, la donnée intermédiaire) relatif à ce bloc et à cette fréquence. Ce coefficient DCT (ou donnée intermédiaire) est stocké au moins temporairement sur des moyens de stockage de l'appareil de décodage, tels que la mémoire vive 103 ou le disque dur 108. On passe alors à l'étape E304 de mise à jour de premières données de fonctionnement relatives au procédé de décodage, qui permettent de tenir compte de l'évolution des différents paramètres du système, en général dans un but d'évaluation. Pour cette raison, ces données de fonctionnement peuvent être considérées comme des données statistiques sur l'évolution du système. Selon un mode de réalisation possible, ces premières données de fonctionnement comprennent la valeur de l'énergie des coefficients DCT déjà décodés, c'est-à-dire la somme des carrés de ces coefficients. Dans ce cas, l'étape E304 consiste à calculer le carré du coefficient DCT obtenu à l'étape E303 et à l'ajouter à la donnée de fonctionnement relative à l'énergie précédemment calculée et stockée. Une fois le coefficient DCT courant pris en compte dans la donnée de fonctionnement, on peut stocker cette donnée. Selon une possibilité de réalisation, on entend par coefficients DCT déjà décodés l'ensemble des coefficients DCT décodés dans la fréquence courante. En variante, il peut s'agir de l'ensemble des coefficients DCT décodés pour l'image considérée (toutes fréquences préalablement considérées confondues). Lorsque les premières données de fonctionnement ont été mises à jour, par exemple, par l'ajout des informations relatives au bloc courant et à la fréquence courante, on détermine à l'étape E305 si le bloc courant est le dernier bloc à considérer. 13 2867924 Si le bloc courant n'est pas le dernier bloc à considérer, on passe à l'étape E306 où l'on considère le bloc suivant, par exemple dans l'ordre de balayage lexicographique. Après la considération du bloc suivant (étape E306), on retourne à l'étape E303 déjà décrite de décodage entropique du bloc courant dans la fréquence courante. La répétition de la phase de décodage entropique (étape E303) pour l'ensemble des blocs de l'image permet donc d'obtenir l'ensemble des données intermédiaires (coefficients DCT) de l'image dans la fréquence considérée. Si l'on a déterminé à l'étape E305 que le bloc courant était le dernier 10 bloc à considérer, alors on passe à l'étape E307 où l'on vérifie si un premier critère est satisfait. L'étape E307 de vérification du premier critère comprend en général l'utilisation des premières données de fonctionnement précédemment mises à jour (étape E304). Dans le cas décrit précédemment où les premières données de fonctionnement (ou premières données statistiques) comprennent des données d'énergie des coefficients DCT décodés, le critère peut consister à comparer les premières données de fonctionnement à un seuil d'énergie, par exemple un seuil de valeur 10. Par exemple, on vérifiera si les premières données de fonctionnement sont supérieures à un certain seuil d'énergie, en deçà duquel la poursuite du procédé de décodage pour les données intermédiaires considérées (coefficients DCT) ne paraît pas utile. Si le critère vérifié à l'étape E307 n'est pas satisfait, on ne procède pas aux phases suivantes du décodage des données intermédiaires considérées, c'est-à-dire des données intermédiaires relatives à la fréquence courante. On passe donc à l'étape E315 où l'on vérifie si la fréquence courante était la dernière fréquence à considérer. Si la fréquence courante était la dernière fréquence à considérer à l'étape E315, alors on passe à l'étape E317 qui met fin au procédé de décodage 30 progressif. Si à l'étape E315 la fréquence courante n'était pas la dernière fréquence à considérer, alors on passe à l'étape E316 où l'on incrémente la 14 2867924 fréquence courante. On s'intéressera donc dans le fichier des données codées à la fréquence suivante, c'est-à-dire, pour chaque bloc, aux données codées qui correspondront au coefficient DCT suivant dans l'ordre de balayage en zigzag. Après l'étape E316, on revient donc à l'étape E302 déjà décrite où l'on 5 initialise la procédure de décodage entropique par la sélection du premier bloc à considérer pour la nouvelle fréquence courante. De retour à l'étape E307 de vérification du premier critère, on va à présent décrire la poursuite du décodage par ses phases ultérieures lorsque le premier critère est satisfait. En effet, quand on détermine à l'étape E307 que le premier critère est satisfait (par exemple par comparaison des premières données de fonctionnement avec un seuil), on passe à l'étape E308 où l'on initialise une boucle sur les blocs par la sélection du premier bloc. On passe alors à l'étape E309 où l'on met à jour de secondes données de fonctionnement. Ces secondes données de fonctionnement (ou secondes données statistiques) comprennent selon un mode de réalisation l'énergie du bloc courant, qui correspond, par exemple, à la somme des carrés des coefficients DCT relatifs à ce bloc pour l'ensemble des fréquences qui ont déjà été décodées. La mise à jour des secondes données de fonctionnement consiste donc à ajouter des informations relatives, par exemple, au bloc courant aux secondes données de fonctionnement telles qu'elles étaient précédemment stockées, puis à stocker les secondes données de fonctionnement telles que mises à jour. On passe ensuite à l'étape E310 où l'on vérifie si un second critère est satisfait. La vérification du second critère consiste, par exemple, en la comparaison des secondes données de fonctionnement à un seuil. Dans l'exemple précédemment mentionné, on peut, par exemple, comparer l'énergie du bloc courant à un seuil d'énergie en deçà duquel l'application des dernières phases de décodage n'est pas nécessaire. 2867924 Si l'on vérifie à l'étape E310 que le second critère est satisfait, alors on passe à l'étape E311 de transformation fréquentielle inverse du bloc courant, c'est-à-dire à l'application de la dernière phase du décodage pour le bloc courant. Dans ce cas, à l'étape E311, on procède à la transformation fréquentielle inverse des données intermédiaires relatives au bloc courant telles qu'elles ont été construites par les passages successifs à l'étape E303 de décodage entropique pour les fréquences qui ont déjà été décodées. Les fréquences non décodées auront été préalablement mises à zéro. La transformation fréquentielle inverse est, par exemple, une transformation en cosinus discrète inverse qui permet de reconstruire les données d'image d'un bloc à partir des coefficients DCT relatifs à ce même bloc. Pour obtenir les données d'image du bloc courant, on peut appliquer la transformation fréquentielle inverse à l'ensemble des coefficients DCT relatifs au bloc considéré tels qu'ils ont été déterminés fréquence par fréquence lors des étapes précédentes du décodage. En variante, on peut n'appliquer la transformation fréquentielle inverse qu'au coefficient DCT qui vient d'être décodé dans le bloc courant (relatif donc à la fréquence courante) et ajouter le signal ainsi obtenu aux données d'image du bloc telles qu'elles ont été précédemment déterminées lors des passages à l'étape E311. L'étape E311 de transformation fréquentielle inverse est suivie de l'étape E312 au cours de laquelle on affiche le bloc courant, c'est-à- dire que l'on utilise les données d'image qui viennent d'être déterminées à l'étape E311 pour les afficher sur l'écran 104. On passe alors à l'étape E313 décrite plus bas. A l'étape E310, si le second critère n'est pas satisfait, on passe directement à l'étape E313 sans procéder à la transformation fréquentielle inverse des coefficients DCT (données intermédiaires) qui viennent d'être décodés (étape E303). A l'étape E313, on vérifie si le bloc courant est le dernier bloc. 16 2867924 S'il s'avère que le bloc courant n'est pas le dernier bloc, on incrémente le bloc courant (par exemple dans l'ordre du balayage lexicographique) à l'étape suivante E314 et l'on retourne pour ce nouveau bloc courant à l'étape E309 déjà décrite de mise à jour des secondes données de fonctionnement. Si, à l'étape E313, le bloc courant est déterminé comme étant le dernier bloc à considérer, le traitement relatif à la fréquence courante est terminé, et l'on passe à l'étape E315 déjà décrite où l'on vérifie si la fréquence courante est la dernière fréquence à considérer. Le mode de réalisation du procédé de décodage progressif qui vient d'être décrit ne représente qu'une possibilité de réalisation de l'invention. Certaines caractéristiques du procédé de décodage pourront être modifiées sans sortir du cadre de l'invention. Notamment, les premières données de fonctionnement (ou premières données statistiques) pourront comprendre une ou plusieurs des informations 15 suivantes en plus de l'énergie des coefficients DCT déjà décodés: - temps d'unité centrale 100 consommé ; - temps écoulé depuis le début du décodage; - bande passante utilisée sur le réseau 113; - nombre de fréquences décodées depuis la dernière mise à jour de 20 l'écran 104. Dans chacun des cas précédents, la vérification du premier critère pourra comprendre un ou plusieurs des tests suivants: - comparaison du temps d'unité centrale consommé à un seuil maximum de ressource d'unité centrale utilisable; - comparaison du temps écoulé depuis le début de décodage au délai maximum souhaitable entre deux mises à jour de l'écran; comparaison de la bande passante utilisée à un seuil maximum d'utilisation de la bande passante; - comparaison du nombre de fréquences décodées au nombre de 30 fréquences nécessaires pour obtenir un certain niveau de résolution. 17 2867924 De la même manière, les secondes données de fonctionnement (ou secondes données statistiques) pourront comprendre, en plus de l'énergie relative au bloc considéré, une ou plusieurs des informations suivantes: la somme des valeurs absolues des coefficients du bloc divisée par la moyenne de cette même grandeur sur les blocs voisins disponibles, comme indicateur de l'importance de la nouvelle information du bloc par rapport aux blocs voisins; - le temps d'unité centrale 100 consommé ; - la position du bloc dans l'image. Dans chacun des cas précédents, le second critère qui utilise les secondes données de fonctionnement explicitées dans les exemples ci- dessus pourrait être par exemple: - la comparaison de l'importance de la nouvelle information (exprimée par le rapport indiqué ci-dessus) à un seuil; - la comparaison du temps d'unité centrale consommé à un seuil de ressource d'unité centrale utilisable; - la vérification que le bloc courant sera effectivement visible à l'affichage au moyen de sa position (cas d'une image masquée). Les diverses informations de fonctionnement possibles en tant que premières ou secondes données de fonctionnement, ainsi que les divers critères possibles en tant que premier ou second critère, pourront être combinés de façon à obtenir des critères complexes. Dans ce dernier cas, la vérification du premier critère complexe et ou du second critère complexe correspondra à la vérification d'un ensemble de 25 critères. Ainsi, dans ce cas, l'application de la seconde phase de décodage sera conditionnée par la vérification du premier critère complexe, c'est-àdire par la vérification d'un premier ensemble de critères; l'obtention des données d'image relatives à un bloc sera conditionnée par la vérification du second critère complexe, c'est-à-dire la vérification d'un second ensemble de critères. 18 2867924 REVENDICATIONS, 1. Procédé de décodage de données codées représentant une image, l'image étant divisée en blocs, caractérisé en ce qu'il comprend les étapes 5 suivantes: - application d'une première phase de décodage (E303) à au moins une partie des données codées afin d'obtenir des données intermédiaires relatives à au moins un bloc; - vérification d'un premier critère (E307) ; - application d'une seconde phase de décodage aux données intermédiaires seulement en cas de vérification positive du premier critère, ladite seconde phase comportant pour chaque bloc les étapes de: vérification d'un second critère (E310) ; - obtention de données d'image (E311) correspondant aux 15 données intermédiaires relatives au bloc seulement en cas de vérification positive du second critère. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape de vérification du premier critère est précédée par une étape de mise à jour de 20 premières données de fonctionnement (E304). 3. Procédé selon la revendication 2, caractérisé en ce que l'étape de vérification du premier critère comporte une étape de comparaison d'au moins une partie des premières données de fonctionnement à une première valeur prédéterminée. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que l'étape de vérification du premier critère comprend une étape de comparaison de l'énergie d'au moins une partie des données intermédiaires à un seuil d'énergie. 5. Procédé selon la revendication 4, caractérisé en ce que l'énergie de ladite au moins une partie des données intermédiaires est la somme des carrés des valeurs de ladite au moins une partie des données intermédiaires. 19 2867924 6. Procédé selon la revendication 4 ou 5, caractérisé en ce que ladite au moins une partie des données intermédiaires est l'ensemble des données intermédiaires relatives à l'image. 7. Procédé selon la revendication 4 ou 5, caractérisé en ce que ladite au moins une partie des données intermédiaires est l'ensemble des données intermédiaires obtenues lors d'une application de la première phase de décodage. 8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce que, la première phase de décodage étant réalisée par un processeur, l'étape de vérification du premier critère comprend une étape de comparaison de l'activité du processeur à un seuil d'activité. 9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce que 15 l'étape de vérification du premier critère comprend une étape de comparaison du temps de réalisation de la première phase de décodage à un seuil de temps. 10. Procédé selon l'une des revendications 1 à 9, caractérisé en ce que, le procédé étant mis en oeuvre au sein d'un réseau, l'étape de vérification du premier critère comprend une étape de comparaison de la bande passante utilisée à un seuil de bande passante. 11. Procédé selon l'une des revendications 1 à 10, caractérisé en ce que, les données intermédiaires correspondant à une pluralité de fréquences, 25 l'étape de vérification du premier critère comprend une étape de comparaison du nombre de fréquences obtenues par la première phase de décodage à un seuil. 12. Procédé selon l'une des revendications 1 à 11, caractérisé en ce qu'il comporte une étape de mise à jour de secondes données de fonctionnement 30 (E309). 13. Procédé selon la revendication 12, caractérisé en ce que l'étape de vérification du second critère comporte l'étape de comparaison d'au moins une 2867924 partie des secondes données de fonctionnement à une seconde valeur prédéterminée. 14. Procédé selon l'une des revendications 1 à 13, caractérisé en ce que, la seconde phase de décodage étant réalisée par un processeur, l'étape de vérification du second critère comprend une étape de comparaison de l'activité du processeur à un seuil d'activité. 15. Procédé selon l'une des revendications 1 à 14, caractérisé en ce que 10 l'étape de vérification du second critère comprend les étapes suivantes - calcul d'un paramètre relatif au bloc à partir des données intermédiaires du bloc; - comparaison du paramètre relatif au bloc à un seuil. 16. Procédé selon la revendication 15, caractérisé en ce que le paramètre relatif au bloc est la somme des carrés des valeurs des données intermédiaires du bloc. 17. Procédé selon l'une des revendications 1 à 16, caractérisé en ce que 20 l'étape de vérification du second critère comprend une étape de détermination de la position du bloc dans l'image. 18. Procédé selon l'une des revendications 1 à 17, caractérisé en ce que la première phase de décodage (E303) est un décodage entropique. 19. Procédé selon l'une des revendications 1 à 18, caractérisé en ce que la seconde phase de décodage comprend une transformation fréquentielle inverse. 20. Dispositif de décodage de données codées représentant une image, 30 l'image étant divisée en blocs, caractérisé en ce qu'il comprend: - un premier décodeur apte à appliquer une première phase de décodage à au moins une partie des données codées afin d'obtenir des données intermédiaires relatives à au moins un bloc; - des moyens de vérification d'un premier critère; 21 2867924 - un second décodeur apte à appliquer une seconde phase de décodage aux données intermédiaires seulement en cas de vérification positive du premier critère, le second décodeur comportant: des moyens de vérification d'un second critère; - des moyens d'obtention de données d'image correspondant aux données intermédiaires d'un bloc seulement en cas de vérification positive du second critère. 21. Dispositif selon la revendication 20, caractérisé en ce que la 10 première phase de décodage est un décodage entropique. 22. Dispositif selon la revendication 20 ou 21, caractérisé en ce que la seconde phase de décodage comprend une transformation fréquentielle inverse. 23. Moyen de stockage d'informations qui peut être lu par un ordinateur ou un microprocesseur, contenant des instructions d'un programme d'ordinateur pour exécuter les étapes du procédé selon l'une des revendications Ià19. 24. Moyen de stockage d'informations partiellement ou totalement amovible, qui peut être lu par un ordinateur ou un microprocesseur, contenant des instructions d'un programme d'ordinateur pour exécuter les étapes du procédé selon l'une des revendications 1 à 19. 25. Programme d'ordinateur qui peut être chargé dans un appareil programmable, caractérisé en ce qu'il comprend des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre les étapes du procédé selon l'une des revendications 1 à 19, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable.