Brevet FR3046321A1 — publié le 20170630

Procédé de codage d'une image numérique, procédé de décodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associés 1. Domaine de l'invention Le domaine de l'invention est celui de la compression de signal, en particulier d'une image numérique ou d'une séquence d'images numériques, dans lequel une prédiction d'une portion du signal à coder est réalisée à partir d'une portion du signal déjà codée. Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant : - des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D), - des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D), - des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D), - etc. La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D. L'invention peut notamment, mais non exclusivement, s'appliquer au codage vidéo mis en oeuvre dans les codeurs vidéo actuels AVC et HEVC et leurs extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant. L'invention peut s'appliquer aussi au codage audio, par exemple mis en oeuvre dans les codeurs audio actuels (EVS, OPUS, MPEG-H, etc) et leurs extensions et au décodage correspondant. 2. Présentation de l'art antérieur On considère un schéma de compression classique d'une image numérique, selon lequel l'image est divisée en blocs de pixels. Un bloc courant à coder est prédit à partir d'un bloc précédemment codé décodé. Un bloc résidu est obtenu par soustraction des valeurs originales aux valeurs prédites. Il est ensuite transformé à l'aide d'une transformation de type DCT (pour « Discrete Cosinus Transform », en anglais) ou ondelettes. Les coefficients transformés sont quantifiés puis leurs amplitudes sont soumises à un codage entropique de type Huffmann ou 3046321 2 arithmétique. Un tel codage obtient des performances efficaces, car, du fait de la transformation, les valeurs des amplitudes à coder sont en grande majorité nulles. En revanche, il ne s'applique pas aux valeurs des signes des coefficients, dont les valeurs + et - sont généralement associées à des probabilités d'apparition équivalentes. Ainsi, les signes des 5 coefficients sont codés par un bit 0 ou 1. On connait de l'article de Koyama, J. et al, intitulé « Coefficient sign bit compression in video coding », et publié dans les proceedings de la conférence «Picture Coding Symposium (PCS) », en mai 2012, une méthode de sélection de signes de coefficients d'un bloc résidu à prédire. La sélection proposée est basée sur un nombre de coefficients prédéterminé en 10 fonction de leur amplitude et de la taille du bloc dont ils sont issus. Les signes sélectionnés sont prédits en testant toutes les combinatoires possibles des valeurs de ces signes pour le bloc et en choisissant celle qui maximise un critère de vraisemblance prédéterminé. Les prédictions obtenues sont comparées aux valeurs originales des signes pour déterminer la valeur d'un indicateur de prédiction, appelé aussi résidu d'un signe prédit. Cet indicateur peut prendre deux valeurs, qui sont 15 une première valeur représentative d'une prédiction correcte et une deuxième valeur représentative d'une prédiction incorrecte. Le reste des signes est codé de façon explicite, sans prédiction. Un avantage d'une telle sélection est de prédire la valeur d'un signe avec une probabilité de prédiction correcte supérieure à 50%, donc de permettre l'application d'un codage entropique aux 20 valeurs des indicateurs de prédiction. Ce codage entropique code l'information de signe avec un débit moyen inférieur à un bit par signe, et permet ainsi d'augmenter le taux de compression. 3. Inconvénients de l'art antérieur Un inconvénient de cette technique est qu'en prédisant globalement tous les signes sélectionnées, 25 chaque signe subit l'influence de la valeur des autres, et la prédiction s'en trouve dégradée. 4. Objectifs de l'invention L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention est de proposer une solution qui sélectionne 30 plus efficacement les signes à prédire. 3046321 3 Un autre objectif de l'invention est de proposer une solution qui soit plus performante en compression. Encore un autre objectif de l'invention est de proposer une solution qui s'applique à tout type d'élément de description d'un bloc de pixels mis en oeuvre pour le codage d'une image 5 numérique. 5. Exposé de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de codage d'une image numérique, ladite image étant divisée en une pluralité de blocs de pixels 10 traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc courant Traitement du bloc courant destiné à fournir un ensemble d'éléments de description du bloc traité ; - Sélection d'un sous-ensemble d'au moins deux éléments de description à prédire 15 dans l'ensemble fourni; - Ordonnancement des éléments de description du sous-ensemble en une séquence ordonnée; Codage des éléments de la séquence; Selon l'invention, l'étape de codage des éléments de la séquence comprend un parcours des 20 éléments de la séquence et comprend, pour un élément courant, les sous-étapes suivantes: - Sélection d'une combinaison de valeurs des éléments de description de la séquence parmi une pluralité de combinaisons en fonction d'un critère de coût prédéterminé et, à partir du deuxième élément, de valeurs d'éléments de description précédemment traités dans la séquence; 25 Prédiction de l'élément courant de la séquence par sa valeur dans la combinaison sélectionnée ; et Codage d'un indicateur représentatif d'une différence entre la valeur réelle de l'élément courant et sa valeur prédite, L'invention repose sur une approche tout-à-fait nouvelle et inventive qui consiste ordonner les 30 éléments de description à prédire en fonction d'un score associé et à prédire chaque élément de la 3046321 4 séquence sur la base de la meilleure combinaison de prédictions des valeurs des éléments de la séquence ordonnée, selon un critère de coût prédéterminé. Ainsi, contrairement à l'art antérieur, l'élément courant profite d'un traitement individualisé qui exploite la connaissance des valeurs réelles des éléments déjà traités, ce qui permet d'améliorer la qualité de la prédiction des éléments 5 au fur et à mesure du traitement de la séquence et donc d'augmenter l'efficacité de compression. Selon un autre aspect de l'invention, l'étape d'ordonnancement produit une séquence initiale, l'étape de codage prend comme élément courant le premier élément d'une séquence courante initialisée à la séquence initiale et comprend, une fois le premier élément courant traité, une sous-étape de mise à jour de la séquence courante par suppression du premier élément. 10 Un avantage de cette implémentation est de libérer de la mémoire au fur et à mesure qu'on traite la séquence d'éléments de prédiction. Selon un autre aspect de l'invention, le procédé comprend une étape préalable de calcul des coûts associés à la pluralité de combinaisons de valeurs de la séquence initiale, une étape de 15 mémorisation de la pluralité de combinaisons et de leurs coûts associés et en l'étape de sélection sélectionne, pour l'élément courant, une combinaison de valeurs de la séquence initiale pour laquelle les éléments précédemment traités ont leurs valeurs réelles. Un avantage de cette solution est d'être économe en ressources de calculs. Les combinaisons et leurs coûts associés sont calculés et mémorisés une fois pour toutes. 20 Selon un autre aspect de l'invention, l'étape de sélection comprend une sous-étape de calcul des coûts associés aux combinaisons de valeurs possibles de la séquence courante en fonction d'un critère de coût qui dépend des valeurs des éléments précédemment traités. Un avantage de cette solution est d'être économe en ressources de mémoire, le calcul des combinaisons et de leurs coûts associés étant mis en oeuvre à la volée pour chaque séquence 25 courante. Selon un autre aspect de l'invention, l'étape de sélection sélectionne un sous-ensemble d'éléments de description à prédire en fonction de scores prédéterminés, un score prédéterminé étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de prédiction auquel il est associé, et l'étape d'ordonnancement ordonne les éléments à prédire en fonction desdits scores. 30 Un avantage est que le score étant indicatif d'un niveau de fiabilité ou d'une faculté d'un élément à être bien prédit, le sous-ensemble ne comprend que les meilleurs candidats à la prédiction. 3046321 5 Selon encore un autre aspect de l'invention, le critère de coût prédéterminé appartient à un groupe comprenant au moins : - un critère de minimisation d'une distorsion le long d'une frontière du bloc courant avec un bloc précédemment traité ; 5 - un critère de proximité avec une valeur prédéterminée ; - un critère de minimisation d'une mesure d'énergie d'une différence entre le bloc courant une prédiction du bloc courant ; Un avantage est que l'invention permet d'utiliser alternativement plusieurs critères de coût et éventuellement une combinaison de ces critères. 10 Le procédé qui vient d'être décrit dans ses différents modes de réalisation est avantageusement mis en oeuvre par un dispositif de codage d'une image numérique, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit dispositif comprenant une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et 15 configurée pour : Traiter un bloc courant et fournir un ensemble d'éléments de description du bloc traité ; Sélectionner un sous-ensemble d'au moins deux éléments de description à prédire dans l'ensemble fourni parmi un ensemble d'éléments de description du bloc courant; - Ordonner les éléments de description du sous-ensemble en une séquence ordonnée; 20 - Coder les éléments de la séquence ordonnée. Selon l'invention, le codage des éléments de la séquence comprend un parcours des éléments de la séquence et, pour un élément courant, est apte à et configuré pour : Sélectionner une combinaison de valeurs des éléments de description de la séquence parmi une pluralité de combinaisons en fonction d'un critère de coût 25 prédéterminé et, à partir du deuxième élément, de valeurs d'éléments de description précédemment traités dans la séquence; - Prédire l'élément courant de la séquence par sa valeur dans la combinaison sélectionnée ; et Coder un indicateur représentatif d'une différence entre la valeur réelle de l'élément 30 courant et sa valeur prédite, 3046321 6 Corrélativement, l'invention concerne aussi un procédé de décodage d'une image numérique à partir d'un train binaire, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, le train binaire comprenant des données codées représentatives d'éléments de description des blocs de l'image, ledit procédé comprenant les étapes suivantes, mises en 5 oeuvre pour un bloc, dit bloc courant : Identification d'un ensemble d'éléments de description du bloc courant à partir de données du train binaire ; Sélection d'un sous-ensemble d'au moins deux éléments de description à prédire dans l'ensemble identifié; 10 - Ordonnancement des éléments de description du sous-ensemble en une séquence ordonnée; - Décodage des éléments de la séquence ordonnée; Selon l'invention, ledit procédé est particulier en ce que l'étape de décodage des éléments de la séquence comprend un parcours desdits éléments et comprend, pour un élément courant, les 15 sous-étapes suivantes: Sélection d'une combinaison de valeurs des éléments de description de la séquence parmi une pluralité de combinaisons en fonction d'un critère de coût prédéterminé et, à partir du deuxième élément, à partir du deuxième élément, de valeurs d'éléments de description précédemment traités dans la séquence; 20 Prédiction du premier élément de la séquence par sa valeur dans la combinaison sélectionnée ; Décodage d'un indicateur représentatif d'une différence entre la valeur décodée de l'élément courant et la valeur prédite, à partir de données codées extraites du train binaire, et 25 Obtention de la valeur décodée de l'élément courant à partir de l'indicateur décodé et de la valeur prédite. Un avantage de l'invention est qu'elle permet de garder une indépendance entre la lecture/analyse (pour « parsing », en anglais) des données codées contenues dans le train binaire et le traitement/exploitation de ces données pour décoder le bloc courant. 30 Selon un autre aspect de l'invention, l'étape d'ordonnancement produit une séquence initiale, l'étape de décodage prend comme élément courant le premier élément d'une séquence 3046321 7 courante, initialisée à la séquence initiale et comprend, une fois le premier élément courant traité, une sous-étape de mise à jour de la séquence courante par suppression du premier élément. Comme à l'encodage, ce mode de réalisation présente l'avantage de limiter le stockage de données calculées et de libérer la mémoire au fur et à mesure de l'avancement du traitement. 5 Selon encore un autre aspect de l'invention, le procédé de décodage comprend une étape préalable de calcul des coûts associés à la pluralité de combinaisons de valeurs de la séquence initiale, une étape d'enregistrement de la pluralité de combinaisons et de leurs coûts associés et l'étape de sélection sélectionne une combinaison parmi les combinaisons enregistrées qui commencent par les valeurs des éléments précédemment traités dans l'ordre de traitement. 10 Comme à l'encodage, ce mode de réalisation présente l'avantage d'être économe en ressources de calculs. Les combinaisons et leurs coûts associés sont calculés et mémorisés une fois pour toutes. Selon encore un autre aspect de l'invention, l'étape de sélection comprend un calcul des coûts associés aux combinaisons de valeurs possibles de la séquence courante en fonction d'un 15 critère de coût qui dépend des valeurs des éléments précédemment traités. Comme à l'encodage, un avantage de cette solution est d'être économe en ressources de mémoire, le calcul des combinaisons et de leurs coûts associés étant mis en oeuvre à la volée pour chaque séquence courante. Le procédé qui vient d'être décrit dans ses différents modes de réalisation est 20 avantageusement mis en oeuvre par un dispositif de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, le train binaire comprenant des données codées représentatives d'éléments de description des blocs de l'image, ledit dispositif comprenant une machine de calcul reprogrammable ou une machine de calcul dédiée, configurée 25 pour et apte à, pour un bloc, dit bloc courant : Identifier un ensemble d'éléments de description du bloc courant à partir de données du train binaire ; Sélectionner un sous-ensemble d'au moins deux éléments de description à prédire 30 dans l'ensemble identifié; 3046321 8 - Ordonner les éléments de description du sous-ensemble en une séquence ordonnée; Décoder les éléments de la séquence ordonnée; Selon l'invention, le décodage des éléments de la séquence initiale comprend au moins deux 5 itérations des unités suivantes, configurées pour et aptes à être appliquées à une séquence dite courante, initialisée à la séquence initiale : Sélection (SEL Cbk) d'une combinaison de valeurs des éléments de description de la séquence courante parmi une pluralité de combinaisons possibles en fonction d'un critère de coût prédéterminé et à partir du deuxième élément, de valeurs 10 d'éléments de description précédemment traités de la séquence initiale; Prédiction (PRED) du premier élément de la séquence par sa valeur dans la combinaison sélectionnée ; Décodage (DEC IP) d'un indicateur représentatif d'une différence entre la valeur décodée de l'élément courant et la valeur prédite, à partir de données codées 15 extraites du train binaire, et Obtention (GET) de la valeur décodée de l'élément courant à partir de l'indicateur décodé et de la valeur prédite. Corrélativement, l'invention concerne également un signal portant un train binaire comprenant 20 des données codées représentatives d'éléments de description de blocs de pixels d'une image numérique, lesdits blocs de pixels étant traités dans un ordre défini. Le signal selon l'invention est particulier caractérisé en ce que lesdites données codées dans le train binaire sont obtenues conformément au procédé de codage selon l'invention. Corrélativement, l'invention concerne aussi un terminal d'utilisateur comprenant un 25 dispositif de codage d'une image numérique et un dispositif de décodage d'une image numérique selon l'invention. L'invention concerne encore un programme d'ordinateur comportant des instructions pour la mise en oeuvre des étapes d'un procédé de codage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur. 3046321 9 L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en oeuvre des étapes d'un procédé de décodage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur. Ces programmes peuvent utiliser n'importe quel langage de programmation. Ils peuvent être 5 téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur. L'invention se rapporte enfin à des supports d'enregistrement, lisibles par un processeur, intégrés ou non au dispositif de codage d'une image numérique et au dispositif de décodage d'une image numérique selon l'invention, éventuellement amovibles, mémorisant respectivement un 10 programme d'ordinateur mettant en oeuvre un procédé de codage et un programme d'ordinateur mettant en oeuvre un procédé de décodage, tels que décrits précédemment. 6. Liste des figures D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la 15 lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1 illustre de façon schématique une séquence d'images numériques à coder et le découpage en blocs de ces images selon l'art antérieur ; - la figure 2 présente de façon schématique les étapes d'un procédé de codage d'une image 20 numérique selon l'invention ; - la figure 3 détaille l'étape de traitement d'un bloc mise en oeuvre dans le procédé de codage selon l'invention ; - la figure 4 présente de façon schématique un bloc courant décodé d'une image numérique décodée; 25 - la figure 5 présente de façon schématique les étapes d'un procédé de décodage d'une image numérique selon un premier mode de réalisation de l'invention ; et la figure 6 présente un exemple de structure simplifiée d'un dispositif de codage d'une image numérique et d'un dispositif de décodage d'une image numérique selon un mode de réalisation de l'invention. 3046321 10 7. Description d'un mode de réalisation particulier de l'invention Le principe général de l'invention repose sur un traitement individuel et successif d'éléments de description d'une séquence ordonnée d'éléments de description à prédire. Pour un 5 élément de cette séquence, l'invention sélectionne la meilleure combinaison de valeurs de la séquence ordonnée selon un critère de coût prédéterminé et en fonction des valeurs réelles/décodées des éléments déjà traités et sur la prédiction de l'élément courant de cette séquence par sa valeur dans cette combinaison. En relation avec la Figure 1, on considère une vidéo originale constituée d'une suite de M 10 images a, 12, ...IM, avec M entier non nul. Les images sont encodées par un encodeur, les données codées sont insérées un train binaire TB transmis à un décodeur via un réseau de communication, ou un fichier compressé FC, destiné à être stocké sur un disque dur par exemple. Le décodeur extrait les données codées, puis reçues et décodées par un décodeur dans un ordre prédéfini connu de l'encodeur et du décodeur, par exemple dans l'ordre temporel I1, puis 12, ..., puis IM, cet ordre 15 pouvant différer suivant le mode de réalisation. Lors de l'encodage d'une image Im, avec m entier compris entre 1 et M, celle-ci est subdivisée en blocs de taille maximale qui peuvent à leur tour être subdivisés en blocs plus petits. Chaque bloc C va subir une opération d'encodage ou de décodage consistant en une suite d'opérations, comprenant de manière non exhaustive une prédiction, un calcul de résidu du bloc 20 courant, une transformation des pixels du bloc courant en coefficients, une quantification des coefficients et un codage entropique des coefficients quantifiés. Cette suite d'opérations sera détaillée par la suite. Les étapes du procédé de codage d'une image Im selon l'invention vont maintenant être décrites en relation avec la Figure 2. 25 En E0, on commence par sélectionner comme bloc courant C le premier bloc à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels. Au cours d'une étape E1, on traite un bloc C courant en mettant en oeuvre un schéma de codage, par exemple tel que spécifié dans la norme HEVC, dans le document "ISO/IEC 230082:2013 - High efficiency coding and media delivery in heterogeneous environments -- Part 2: High 30 efficiency video coding », International Organization for Standardization, publié en novembre 2013. 3046321 11 Cette étape de traitement est destinée à fournir un ensemble d'éléments E de description des données à coder pour le bloc courant C. Ces éléments de description peuvent être de types variés. De façon non exhaustive, ils comprennent notamment : les informations relatives à des choix de codage du bloc courant C, par exemple un mode 5 de codage du bloc courant, tel que le mode INTRA, INTER ou SKIP, un mode de prédiction du bloc courant, parmi les 35 modes de prédiction d'un bloc INTRA, un mode de prédiction d'un vecteur mouvement estimé pour le bloc courant, ou encore la signifiance d'une amplitude d'un coefficient , connus en soi dans HEVC; les valeurs de données à coder, telles que les composantes d'un vecteur mouvement, 10 l'amplitude ou le signe d'un coefficient ; - etc On suppose qu'il existe L découpes en blocs possibles numérotées de 1 à L, et que la découpe utilisée sur le bloc C est la découpe numéro I. Par exemple, il peut y avoir 4 découpes possibles, en blocs de taille 4x4, 8x8, 16x16, et 32x32. 15 En relation avec la Figure 4, l'image courante décodée est désignée par ID. On notera que, dans un codeur vidéo, l'image ID est (re)construite dans le codeur de façon à pouvoir servir pour prédire les autres pixels de la séquence d'images. En relation avec la Figure 3, on détaille un exemple de sous-étapes mises en oeuvre par ce traitement El du bloc courant C sélectionné, conformément à la norme HEVC. 20 Au cours d'une étape E11, on détermine une prédiction P du bloc original C. Il s'agit d'un bloc de prédiction construit par des moyens connus, typiquement par compensation de mouvement (bloc issu d'une image de référence précédemment décodée) dans le cas d'une prédiction dite INTER, ou par prédiction INTRA (bloc construit à partir des pixels décodés immédiatement adjacents au bloc courant dans l'image ID). Les informations de prédiction liées à P sont codées 25 dans le train binaire TB ou fichier compressé FC. On suppose ici qu'il y a K modes de prédiction possibles M1, . m .21.--, MK, avec K entier non nul, et que le mode de prédiction choisi pour le bloc C est le mode Mk. Au cours d'une étape E12, un résidu original R est formé, par soustraction R = C-P de la prédiction P du bloc courant C au bloc courant C. 30 Au cours d'une étape E13, le résidu R est transformé en un bloc résidu transformé, appelé RT, par une transformée de type DCT ou transformée en ondelettes, toutes les deux connues de 3046321 12 l'homme de métier et notamment mises en oeuvre dans les normes JPEG pour la DCT et JPEG2000 pour la transformée en ondelettes. En Ela, le résidu transformé RT est quantifié par des moyens classiques de quantification, par exemple scalaire ou vectorielle, en un bloc résidu quantifié RQ. Ce bloc quantifié RQ contient 5 NxN coefficients. De façon connue dans l'état de l'art, ces coefficients sont scannés dans un ordre prédéterminés de façon à constituer un vecteur monodimensionnel RQ[i], où l'indice i varie de 0 à N2-1. L'indice i est appelé fréquence du coefficient RQ[i]. Classiquement, on scanne ces coefficients par ordre croissant de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes JPEG. 10 Lors d'une étape E15, on vient coder les informations d'amplitude des coefficients du bloc résidu RQ par codage entropique, par exemple selon une technique de codage de Huffman ou de codage arithmétique. Par amplitude, on entend ici la valeur absolue du coefficient. Des moyens de codage des amplitudes sont par exemple décrits dans la norme HEVC et dans l'article de Sole et al, intitulé « Transform Coefficient Coding in HEVC », publié dans la revue IEEE Transactions on 15 Circuits and Systems for Video Technology, Volume 22, Issue: 12, pp. 1765 - 1777, en décembre 2012. Classiquement, on peut coder pour chaque coefficient une information représentative du fait que le coefficient est non nul. Ensuite, pour chaque coefficient non nul, une ou plusieurs informations relatives à l'amplitude sont codées. On obtient les amplitudes codées CA. A l'issue de l'étape El, on dispose donc pour le bloc courant C d'un ensemble E d'éléments 20 de description de données à coder, parmi lesquels on compte les coefficients résidus transformés quantifiés RQ[i] , les signes de ces coefficients, le mode de prédiction Mk etc En relation avec la Figure 2, on sélectionne au cours d'une étape E2, un sous-ensemble SE de cet ensemble, comprenant les éléments de description à prédire EP pour le bloc C. Par exemple, on sélectionne un nombre prédéterminé d'éléments à prédire en fonction de 25 leur amplitude et de la taille du bloc courant. Dans l'exemple de réalisation de l'invention qui va être maintenant détaillé, on considère des éléments de description d'un type particulier, par exemple des signes de coefficients transformés et quantifiés du bloc courant RQ. Bien sûr, l'invention n'est pas limitée à ce type d'éléments et s'applique à tout autre élément de description du bloc courant. D'autres exemples 30 seront présentés ci-après. 3046321 13 Au cours d'une première sous-étape E2 on commence par définir un sous-ensemble initial SEI d'éléments de description à prédire. Par exemple il s'agit de tous les signes des coefficients résidus transformés quantifiés RQ[i] non nuls du bloc courant. De façon avantageuse, on exploite la connaissance d'un contexte Cx; associé à chaque 5 coefficient parmi une pluralité J de contextes prédéterminés, avec J entier non nul et j entier compris entre 1 et J. Un tel contexte est défini par au moins une caractéristique du coefficient ou du bloc dont il est issu. De façon avantageuse, on considère les caractéristiques suivantes : - la taille du bloc résidu quantifié RQ, 10 - l'amplitude du coefficient quantifié RQ[i], - la fréquence du coefficient ou indice i dans le bloc RQ, - le mode de prédiction du bloc courant Mk parmi les K modes possibles. En effet, la prédiction du signe est d'autant plus fiable que l'amplitude est élevée. De 15 même, il a été constaté que lorsque le bloc est de taille plus grande, la fréquence du coefficient plus faible, la prédiction est plus fiable. Enfin, il a été constaté que la prédiction est plus fiable lorsque le bloc courant est associé à une prédiction intra d'un certain type. De façon alternative, d'autres contextes sont envisageables. Ainsi, il est possible de tenir compte du type d'image dans lequel se trouve le bloc courant, par exemple du type Intra ou Inter, 20 connu de la norme HEVC, en fonction de l'énergie du prédicteur P, ou encore en fonction du nombre total de coefficients non nuls dans le bloc courant. Ensuite, on sélectionne les signes des coefficients du bloc RQ de l'ensemble initial, en fonction d'un score prédéterminé Si, pour le contexte Cx; associé au coefficient RQ[i] considéré. Un tel score Sj est représentatif d'un niveau de fiabilité de la prédiction du signe du coefficient 25 RQ[i]. Par exemple, le score Si prend des valeurs dans un ensemble prédéterminé, par exemple de 0 à 10. Selon une variante, le score est une simple indication binaire, dont l'une des deux valeurs indique que le signe peut être prédit, et l'autre que le signe ne peut pas être prédit. 30 Selon une autre variante, les scores Si correspondent à des probabilités connues a priori, dépendantes du contexte Cxj associé au coefficient RQ[i]. On dispose, dans l'encodeur, d'un 3046321 14 ensemble de probabilités de détection correcte des signes des coefficients RQ. Par exemple cet ensemble de probabilités est stocké en mémoire. Ces probabilités ont été construites avant l'encodage et le décodage, soit par accumulation statistique sur un ensemble de signaux représentatifs des signaux à coder, soit par calcul 5 mathématique à partir d'hypothèses sur la distribution des signes des coefficients. Pour un coefficient RQ[i] associé au contexte Cx;, on peut donc obtenir le score SJ[i] en calculant la probabilité p[1][mk][i][iRQ[i]l] de prédiction correcte du signe du coefficient RQ[i]. Avantageusement, les signes à prédire sont sélectionnés par seuillage des scores auxquels ils sont associés. Ainsi, pour chaque coefficient RQ[i] qui a un signe (c'est-à-dire, qui n'est pas nul) 10 et qui est associé à un contexte Cx; de score SJ, on prédit le signe si et seulement si Si>Th, où Th est un seuil prédéterminé, par exemple égal à 0,7. Par exemple, le seuil Th est connu du codeur et du décodeur. Selon une variante, le seuil Th peut être choisi en cours de codage et inscrit dans le fichier compressé ou dans le train binaire comprenant les données codées représentatives de l'image 15 numérique Im. Par exemple, si l'unité qui effectue l'encodage ne dispose pas d'assez de ressources de calcul à un moment donné, il lui est possible d'augmenter ce seuil Th de façon à prédire moins de signes, et donc mettre en oeuvre moins de calculs. Il serait également possible de faire varier le seuil Th en fonction du contenu des images à coder : une image comportant beaucoup de contenu, tel que des variations de luminosité 20 importantes ou des mouvements nombreux utiliserait un seuil élevé, et une image comportant peu de contenu tel que des variations de luminosité faibles ou mouvements peu nombreux, utiliserait un seuil Th plus bas, de façon à lisser la complexité ou la mémoire nécessaire au codage de chaque image. A l'issue de cette sélection, les signes des coefficients RQ[i] sélectionnés sont tous associés 25 à un contexte Cx; et à un score S; supérieur au seuil Th prédéterminé et forment un ensemble SE d'éléments EP de description à prédire. Au cours d'une étape E3, on encode de façon classique les éléments de description ENP qui n'appartiennent pas au sous-ensemble SE sélectionné. Cette étape met en oeuvre des techniques de codage connues de l'homme de métier. Pour les signes des coefficients RQ[i] par exemple, il est 30 connu notamment de la norme HEVC, en particulier de l'article de Sole et al., déjà cité, le fait de transmettre chaque signe sous forme d'un élément binaire 0 ou 1, avec une convention associant l'un au signe plus et l'autre au signe moins. 3046321 15 En E4, on ordonne les éléments de description EP. Cet ordre peut être prédéfini, et par exemple correspondre à l'ordre de scan des signes tel que défini dans la norme HEVC. De façon préférentielle, on les ordonne en fonction de leur score associé. Par exemple si le score utilisé est représentatif d'une probabilité de prédiction correcte, on ordonne les éléments par score 5 décroissant. On obtient une séquence Sec!, dite initiale, d'éléments de description à prédire. Supposons que l'on dispose à ce stade de M signes ordonnés à prédire Seq, = { EPo=so, En E5, on encode les éléments de description de la séquence ordonnée Seq,. Selon un premier mode de réalisation de l'invention, cette étape E5 comprend les sous- 10 étapes suivantes : En ES1 on considère une séquence courante Seq, que l'on initialise à la séquence initiale Seqi. Les étapes suivantes forment une boucle itérative qui sera répétée plusieurs fois, en fonction du nombre M d'éléments de description à prédire sélectionnés dans la séquence Seqc. 15 Un élément de description est susceptible de prendre au moins deux valeurs. Par exemple, un signe peut valoir + ou -. Au cours de l'étape E52, on évalue les différentes possibilités ou hypothèses de combinaisons de valeurs de la séquence Seq, d'éléments à prédire, à l'aide d'une fonction d'évaluation FE ou d'un critère de coût prédéterminé. On suppose qu'on a K hypothèses ou 20 combinaisons possibles, avec K entier non nul. Dans le cas où les éléments de description à prédire sont les M signes d'une séquence, un signe pouvant prendre la valeur + ou la valeur -, le nombre de combinaisons possibles est K = 2m. Par exemple, pour une hypothèse donnée cette fonction produit un coût, par exemple : FE({s0 = -,s1=+,s2=-,s3=-,...,sM-1=+) = CT = 4240 25 Ici, l'hypothèse est {-,+,-,-,...,+} et le coût résultant est 4240. Bien sûr, la fonction d'évaluation doit faire en sorte de générer un coût minimal lorsque l'hypothèse de signes est la plus vraisemblable. Il existe plusieurs fonctions de coût connues de l'état de l'art et présentées dans l'article de Koyama et al, cité plus tôt. 30 De façon avantageuse, on utilise une fonction d'évaluation qui consiste à mesurer la distorsion le long de frontières gauche FG et supérieure FS du bloc courant avec des blocs précédemment traités. En relation avec la Figure 4, on a représenté une image décodée ID et un bloc décodé virtuel DVs de taille NxN pixels de cette image avec l'hypothèse de combinaison de 3046321 16 signes dont on veut mesurer le coût, où DVs(lin,col) est la valeur du pixel du bloc DVs situé sur la ligne lin et la colonne col du bloc. On considère un opérateur « Side Matching » SM(Z,B)), avec B image courante et C bloc courant, défini comme suit : 5 N-1 N-1 SM(5:5,C) =1(C(0, a) - 2(lin - 1, col + a))2 + (C (a, 0) - (lin + a, col - 1))2 a=0 a=0 avec C(i,j) la valeur des coefficients dans le bloc décodé virtuel DVs, avec i, j entiers compris entre 0 et N-1. Sur la figure 4, on a représenté les pixels situés le long de la frontière gauche FG dont les 10 valeurs sont de bas en haut yi à y4 et situés les pixels situés le long de la frontière supérieure FS du bloc décodé virtuel DVs dont les valeurs sont de gauche à droite y4 à y7, ainsi que les pixels x1 à x4 et x4 à x8 respectivement situés de l'autre côté des frontières FG et FS. Appliquer cet opérateur revient à former la somme (x1-yi)2+ (x2-y2)2+ (x31/3)2+ (x4-Y4)2+ (x5- Y4)2+ (x6-y5)2+ (x7115)2+ (x8-y7)2. 15 On détermine le bloc décodé virtuel optimal DVopt qui minimise cette mesure : DVopt = argminDvsSM (ID, DVs) où ID représente l'image reconstruite après décodage. Alternativement, le critère de vraisemblance utilisé est la minimisation de l'erreur avec le prédicteur P. Cela consiste à sélectionner le bloc décodé virtuel qui minimise l'erreur avec le 20 prédicteur P. Le résidu virtuel associé au bloc décodé virtuel optimal est ainsi identifié. Bien sûr, on pourrait recourir à d'autres critères de coût, tels que par exemple un critère de minimisation d'une mesure de distance/proximité à une valeur prédéterminée, par exemple moyenne ou la minimisation de l'énergie du bloc résidu. 25 Pour générer un bloc courant décodé correspondant à une hypothèse de signes Cbk, on procède de la façon suivante : 3046321 17 on attribue à chaque coefficient du bloc résidu courant son signe réel (s'il s'agit d'un coefficient dont le signe n'est pas prédit), ou l'hypothèse de signe (s'il s'agit d'un coefficient dont le signe est à prédire). 5 à l'aide des moyens classiques de déquantification et de transformée inverse, on obtient un bloc de résidu décodé, dont les échantillons {r1,r2,...,r7} voisins des bloc précédemment décodés sont ajoutés aux éléments prédits correspondants du bloc P pour former les éléments reconstruits y1 = r1 +p1,y2 = p2 + r2, y7=p7+r7 du bloc décodé virtuel DV, comme indiqué sur la figure 4. 10 Le bloc décodé virtuel obtenu DV est utilisé pour calculer le coût CTk associé à la combinaison CBk évaluée. Dans la suite, on considère que la séquence initiale Seqi={so,si,s2} compte 3 signes à prédire. On suppose que les valeurs réelles de la séquence initiale sont so = = + et s2 = On évalue donc les coûts CTk des 8 combinaisons suivantes : 15 CT0=FE({+,+,+}) CT1=FE({+,+,-}) CT2=FE({±,-,+}) CT3=FE({+,-,-}) CT4=FE({-,+,+}) 20 CT5=FE({-,+,-}) CT6=FE({-,-,+}) CT7=FE({-,-,-}) On identifie la combinaison associée au coût minimal. Supposons qu'il s'agisse de CT2. Au cours d'une étape E53, on prédit le premier élément de la séquence courante Seqc par 25 la valeur qu'il prend dans la combinaison Ck2. Dans l'exemple considéré, cette valeur est +. En E54, on calcule l'indicateur de prédiction IP correspondant. Pour ce faire, on compare la valeur prédite de sO à sa valeur réelle. L'indicateur IP indique si le signe prédit est égal à ou différent du signe réel. Par exemple, il vaut 0 si les signes prédit et réels sont égaux, 1 sinon. En l'espèce, la valeur prédite est un +, la valeur réelle un -, donc l'indicateur IP du premier signe EDO 30 est fixé à 1. En E55, on code l'indicateur IP obtenu. On met par exemple en oeuvre une technique de codage entropique connue, telle que par exemple un codage de Huffman, codage arithmétique ou encore codage CABAC utilisé dans la norme HEVC. On obtient une valeur codée de l'indicateur de prédiction. 3046321 18 Selon l'invention, du fait que seuls sont prédits les éléments de description qui sont associés à un score représentatif d'un niveau de fiabilité suffisant, l'indicateur de prédiction prend plus souvent la valeur 1 que la valeur 0. Ceci est mis à profit par le codage entropique pour réduire la taille du signal compressé. 5 Avantageusement, le codage entropique tient compte du score Si associé au signe prédit pour coder l'indicateur IP. Par exemple, dans le mode de réalisation de l'invention selon lequel le score a une valeur comprise entre 0 (faible fiabilité de la prédiction) et 10 (haute fiabilité de la prédiction), le codage entropique des indicateurs est paramétré en tenant compte du score, de façon à exploiter la répartition plus ou moins uniforme des indicateurs. Par exemple, on utilise un 10 codage entropique de type CABAC, connu de la norme HEVC, en initialisant les probabilités utilisées dans CABAC en fonction des scores prédéterminés. En E56, on teste si le premier signe EDO est le dernier de la séquence. Si c'est le cas, le traitement de l'étape E5 est fini, car la séquence ne comprenait qu'un seul élément. Sinon, on met à jour la séquence courante Seqc en E57, en supprimant le premier élément ED0 qui vient d'être 15 traité. Le deuxième élément EDi de la séquence initiale devient donc premier et on a terminé la première itération. Au cours de la deuxième itération, on traite l'élément EDi, devenu premier de la séquence courante. Les étapes E52 à E56 sont répétées de la façon suivante : A ce stade deux modes de réalisation de l'étape E52 sont envisagés : 20 Selon une première option, on réutilise les combinaisons calculées pour la séquence initiale, déjà exploitées pour la première itération. On suppose donc qu'elles ont été enregistrées dans une mémoire. Parmi les K combinaisons de la première itération, on élimine celles pour lesquelles so n'a pas sa valeur réelle. On ne conserve donc que les 4 combinaisons CT4 à CT7 pour lesquelles so vaut -, et leurs coûts associés : 25 CT4=FE({-,+,+}) CT5=FE({-,+,-}) CT6=FE({-,-,+}) CT7=FE({-,-,-}) De nouveau on identifie celle qui obtient le coût minimal. Par exemple, on suppose qu'il 30 s'agit de Cb6 avec le coût CT6. Selon une deuxième option, on recalcule les coûts associés aux combinaisons de la nouvelle séquence courante. La séquence courante Seqc comprend M=2 éléments. Il y a K = 22 combinaisons possibles. On évalue donc les 4 combinaisons possibles à l'aide d'une fonction 3046321 19 d'évaluation qui peut être différente de celle mise en oeuvre à la première itération. Par exemple, on utilise une mesure de l'énergie des coefficients du bloc résidu virtuel décodé DVs et on choisit la combinaison qui minimise cette mesure. Cette fonction d'évaluation est plus précise, mais aussi plus complexe à calculer et donc mieux adaptée à des séquences plus courtes. 5 On comprend que les combinaisons et les coûts calculés pour une itération précédente ne sont pas conservés pour l'itération suivante. En E53, on prédit le signe si à - ce qui correspond à sa valeur dans la combinaison sélectionnée. 10 En E54, on calcule l'indicateur de prédiction IP correspondant. La valeur réelle de s1 étant égale à +, l'indicateur IP vaut 1. En E55, on code l'indicateur de prédiction IP obtenu pour si ; En E56, on teste si le signe si est le dernier de la séquence courante. Ce n'est pas le cas, on met donc à jour la séquence courante en supprimant si. La nouvelle 15 séquence courante ne comprend plus que le signe 52. On réalise la troisième et dernière itération de façon similaire. En E52, sachant que so vaut - et si vaut +, les combinaisons de valeurs possibles restantes sont C1-4 et CT5. On suppose que le coût minimal est CT5. On choisit donc la combinaison Cb4. En E53, on prédit s3 à la valeur qu'il prend dans la combinaison Cb4, à savoir +. 20 En E54, on calcule l'indicateur de prédiction IP correspondant. La valeur réelle de s2 étant égale à +, l'indicateur IP indique une prédiction correcte et vaut O. En E55, on code l'indicateur de prédiction calculé. En E56, on teste s'il reste des éléments de description à traiter dans la séquence. s2 étant le dernier, le traitement de l'étape de codage E5 est terminé. 25 Dans le mode de réalisation qui vient d'être présenté, les itérations de l'étape E5 s'appliquent au premier élément de la séquence, laquelle est mise à jour par suppression du premier élément une fois traité. Ce mode de réalisation présente l'avantage de réduire à chaque itération la longueur de la séquence courante à traiter. Néanmoins, l'invention ne se limite pas à ce choix d'implémentation. On peut 30 alternativement conserver la séquence initiale et faire progresser l'indice de l'élément courant à chaque nouvelle itération de l'étape E5. Dans ce cas, l'option qui consiste à calculer préalablement les coûts associés à toutes les combinaisons de valeurs possibles de la séquence initiale et à les mémoriser, est la plus adaptée. 3046321 20 En E6, on construit le bloc décodé, en appliquant au résidu quantifié RQ les étapes de déquantification et de transformée inverse (connues en soi). On obtient un bloc résidu décodé RD. On ajoute à RD le bloc prédicteur P pour obtenir le bloc décodé BD. Au cours de cette étape on vient également ajouter le bloc décodé BD à l'image reconstruite ID. Ceci permet de disposer dans 5 le codeur d'une version décodée de l'image courante. Cette version décodée est utilisée dans notamment au cours de l'étape de construction d'une prédiction des signes sélectionnés pour être prédits. On passe à l'étape E7 d'insertion dans le train binaire TB ou dans un fichier compressé des 10 données codées représentatives des indicateurs de prédiction IP et des éléments de description non prédits pour le bloc courant C. En E8, on vient tester si le bloc courant est le dernier bloc à traiter par l'unité de codage, compte tenu de l'ordre de parcours défini précédemment. Si oui, l'unité de codage a terminé son traitement. Si non, l'étape suivante est l'étape E0 de sélection du bloc suivant. 15 Dans un autre mode de réalisation, on sélectionne des éléments de description à prédire d'un autre type que les signes. On considère en particulier l'élément de description M indicatif du mode de prédiction INTRA/INTER (dans la norme HEVC, un tel élément de description porte le nom « pred_mode_flag »), l'élément de description A indicatif de l'amplitude du premier coefficient résidu quantifié pour le bloc courant (dans la norme HEVC, un tel élément de description porte le 20 nom « coeff abslevel_remaining ») et l'élément de description T indicateur de l'utilisation ou non d'une transformée inverse (dans la norme HEVC, un tel élément de description porte le nom « tra nsform_ski pila g »). Dans la norme HEVC par exemple, un élément M peut prendre une valeur comprise entre 0 et 34. Un élément A peut prendre des valeurs comprises entre 0 et 216-1. 25 Pour le bloc courant, l'ensemble de départ est constitué des éléments de description {M, AIT}. On considère dans cet exemple que, pour le bloc courant C, et en fonction des informations contextuelles, il est trouvé lors de l'étape E2 que le score de T est inférieur au seuil nécessaire Th, tandis que M et A ont un score supérieur. Le sous-ensemble SE est donc {M,A}. 30 Le train binaire TB est destiné à être présenté en entrée d'un décodeur, local ou distant. Par exemple, un signal portant le train binaire est transmis au décodeur par l'intermédiaire d'un réseau de communication. 3046321 21 En relation avec la Figure 5, on présente maintenant les étapes du procédé de décodage d'une image numérique codée selon un exemple de réalisation de l'invention. On suppose qu'un train binaire TB a été reçu par un dispositif de décodage mettant en oeuvre le procédé de décodage selon l'invention. En variante, le dispositif de décodage obtient un fichier compressé FC. 5 En DO, on commence par sélectionner comme bloc courant C' le premier bloc à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels. En Dl, on traite le bloc C' courant en mettant en oeuvre le schéma de décodage, correspondant au schéma de codage utilisé par l'encodeur, par exemple tel que spécifié dans la norme HEVC. En particulier, au cours de cette étape, on identifie un ensemble d'éléments ED de 10 description des données à décoder pour le bloc courant C'. On réalise en outre une prédiction P' du bloc à décoder C'. Les informations de prédiction liées à P' sont lues dans le train binaire ou fichier compressé et décodées. On décode donc l'information de mode de prédiction. On décode aussi les informations d'amplitude du résidu à décoder RQ' sont lues dans le 15 train binaire ou le fichier compressé et décodées. On connait donc maintenant les amplitudes des RQ'[i], mais pas encore les signes. En D2, le procédé de décodage selon l'invention met en oeuvre l'étape de sélection des éléments de description à prédire parmi les éléments de description déterminés. Cette étape a déjà été décrite en détails pour le procédé de codage en relation avec les Figures 2 et 3. Les éléments 20 de description à prédire sont avantageusement sélectionnés en fonction de scores prédéterminés. Un ensemble SE est obtenu. A l'issue de cette étape, on connait les valeurs décodées des éléments de description du bloc qui n'ont pas été prédits parce qu'ils étaient associés à un score Sj inférieur à un seuil Th prédéterminé. 25 Au cours d'une étape D3, le procédé lit dans le train binaire TB les données codées relatives aux éléments de description du bloc courant non prédits et les décode. En Da, il ordonne les éléments de l'ensemble SE obtenu en une séquence initiale Seqi, par scores décroissants, comme déjà décrit pour le procédé de codage selon l'invention. L'étape D5 de décodage des éléments de description à prédire va maintenant être détaillée 30 dans un mode de réalisation particulier. On notera qu'elle est très similaire à l'étape E5 mise en oeuvre par le procédé de codage selon l'invention qui vient d'être décrit. 3046321 22 En D51 on considère une séquence courante Seqc que l'on initialise à la séquence initiale Seqi. Les étapes suivantes (D52 à D56) forment une boucle itérative qui sera répétée plusieurs fois, en fonction du nombre M d'éléments de description à prédire sélectionnés dans la séquence 5 Seck. En D52, on sélectionne la meilleure combinaison au sens d'une fonction d'évaluation FE, la même que celle utilisée par le procédé de codage qui a produit le train binaire à décoder, parmi les combinaisons de valeurs possibles de la séquence courante Seqc. Comme déjà évoqué pour le procédé de codage, il existe plusieurs fonctions d'évaluation possibles. Dans la suite, on considère 10 une mesure de distorsion le long d'une frontière avec des blocs précédemment traités et on sélectionne la combinaison de valeurs qui minimise cette mesure. Au cours d'une première itération, on décode le premier élément de description de la séquence Seqc. Dans la suite, on suppose que les éléments de description sont des signes. A l'aide de la fonction de coût, on génère les coûts correspondant à chaque hypothèse ou 15 combinaison possible pour l'ensemble des signes à prédire. Ainsi, supposons que M=3, et Seqc={so,s1,s2}. On va générer les coûts suivants : CT0=FE({±,-F,+}) CT1=FE({+,+,-}) CT2=FE({+,-,+}) 20 CT3=FE({+,-,-}) CT4=FE({-,+,+}) CT5=FE({-,+,-}) CT6=FE({-,-,+}) CT7=FE({-,-,-}) 25 Ce sont les 8 coûts correspondant aux 8 hypothèses possibles sur les signes à prédire. On suppose que le coût minimal est CT2. En D53, on prédit la valeur du premier signe sO par sa valeur dans la combinaison Cb2. Il s'agit d'un +. En D54, on décode l'indicateur de prédiction IP correspondant à ce premier signe sO, à 30 partir de données codées extraites du train binaire ou fichier compressé. Cet indicateur indique si le 3046321 23 signe prédit a été correctement prédit ou non. Par exemple, on suppose que la valeur décodée est un 1 et qu'elle est associée à une prédiction incorrecte. En D55, on en déduit que la valeur décodée du signe sO est un -. En D56, on teste si l'élément EDo est le dernier de la séquence courante. Si c'est le cas, le 5 traitement s'achève. Sinon, on met à jour la séquence courante en D57 en supprimant l'élément EDo = sO qui vient d'être décodé. Au cours d'une deuxième itération, on traite le deuxième élément s2, devenu premier de la séquence courante. En D52, on considère les combinaisons Cbk, pour lesquelles so a sa valeur décodée, les 10 autres étant éliminées. Dans l'exemple considéré, la valeur réelle de so est -, donc on compare les coûts suivants : CT4=FE({-,+,+}) CT5=FE({-,+,-}) CT6=FE({-,-,+}) 15 CT7=FE({-,-,-}) Ces 4 coûts correspondent aux 4 hypothèses possibles sur les signes qui restent à prédire, connaissant la valeur décodée de celui qui a déjà été traité. CT6 est identifié comme le coût minimal En D53, on prédit si par sa valeur dans la combinaison Cb6, c'est-à-dire un -. 20 En D54, on décode l'indicateur IP correspondant à D2 à partir des données codées extraites du train binaire ou fichier compressé. un indicateur est décodé, qui indique si le signe prédit est égal ou différent du signe réel. Dans notre exemple, supposons que la valeur décodée de IP soit 0, ce qui signifie que la prédiction de ce signe est correcte. En D55, on en déduit que s1 vaut -. 25 En D56, on teste si sl est le dernier élément. Comme ce n'est pas le cas, on met à jour la séquence courante en D57, en supprimant s1. La nouvelle séquence Seq, est réduite à l'élément s2. Au cours d'une troisième et dernière itération, on décode le dernier signe s2. En D52, on considère les combinaisons de valeurs de la séquence initiale Seqi pour lesquelles les éléments de description déjà traités sO et s1 prennent leur valeur décodée. 3046321 24 On compare donc les coûts suivants : CT6=FE({-,-,+}) CT7=FE({-,-,-}) On identifie CT6 comme le coût minimal. 5 Alors, le dernier signe s2 dans l'ordre prédéfini est prédit, en D53, par sa valeur dans la combinaison Cb6 : il s'agit d'un +. Ensuite, un indicateur IP associé au signe s2 est décodé en D54. Il indique si le signe s2 a été correctement prédit ou non. Dans notre exemple, supposons que la valeur décodée soit 0, ce qui correspond à une prédiction correcte. 10 On en déduit en D55 que la valeur décodée de s2 est le signe +. En D56, on constate que 52 est le dernier élément à traiter. Comme pour l'encodage, on notera que l'invention ne se limite pas au mode de réalisation qui vient d'être présenté. D'autres choix d'implémentation peuvent être faits, comme par exemple celui que conserver la séquence à sa longueur initiale, de mettre à jour l'indice de l'élément 15 courant, initialisé au premier élément de description EDo et de mettre fin aux itérations une fois le dernier élément EDm-1 traité. On passe ensuite à l'étape D6 de reconstruction du bloc courant C' à partir des éléments de description décodés, EP prédits (D5) et ENP non prédits (D3),des informations d'amplitude des coefficients du bloc résidu RQ' et de la prédiction P' obtenus en D1. 20 Pour ce faire, on commence par déquantifier le bloc RQ' pour obtenir un bloc déquantifié. Ceci est réalisé par des moyens adaptés à la quantification utilisée lors du codage (déquantification scalaire, déquantification vectorielle...), connus de l'homme de métier. On applique ensuite au résidu déquantifié une transformée inverse de celle utilisée au codage. On obtient alors le résidu décodé. 25 On reconstruit enfin le bloc décodé BD' en ajoutant le résidu décodé à la prédiction P'. Ce bloc est intégré à l'image en cours de décodage. Au cours d'une étape D7, on vient tester si le bloc courant est le dernier bloc à traiter, compte tenu de l'ordre de parcours des blocs, défini précédemment. Si oui, le décodage est terminé. Si non, l'étape suivante est l'étape Do de sélection du bloc suivant et les étapes du 30 procédé de décodage sont répétées. 3046321 25 Selon l'invention, du fait que tous les éléments de la séquence initiale sélectionnés en fonction des scores prédéterminés sont prédits, on sait donc dès l'issue de l'étape D2 combien d'indicateurs de prédiction IP sont à extraire du train binaire ou du fichier compressé. On comprend que cela permet d'implémenter une mise en oeuvre de l'invention qui décorrèle les opérations de 5 lecture et d'analyse des données codées contenues dans le train binaire ou fichier compressé (pour « parsing », en anglais) des opérations de traitement du bloc courant conformément au schéma de codage/décodage mis en oeuvre. Par exemple, on pourrait organiser le décodage en utilisant un composant spécifique pour l'analyse/lecture des données codées dans le train binaire et un autre pour les opérations de reconstruction des blocs décodés. Un avantage de cette indépendance de 10 parsing est de permettre une parallélisation des opérations de décodage. On notera que l'invention qui vient d'être décrite, peut être mise en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « unité », utilisés dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant 15 matériel, soit encore à un ensemble de composants matériels et/ou logiciels, aptes à mettre en oeuvre la ou les fonctions décrites pour le module ou l'unité concerné(e). En relation avec la figure 6, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique et d'un dispositif 200 de décodage d'un train binaire selon l'invention. Le dispositif 100 met en oeuvre le procédé de codage selon l'invention qui 20 vient d'être décrit en relation avec la Figure 2. Seuls les principaux éléments relatifs à la mise en oeuvre de la technique selon l'invention sont illustrés. Par exemple, le dispositif 100 comprend une unité de traitement 110, équipée d'un processeur pi, et pilotée par un programme d'ordinateur Pgi 120, stocké dans une mémoire 130 et mettant en oeuvre le procédé de selon l'invention. 25 A l'initialisation, les instructions de code du programme d'ordinateur Pgi 120 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 110. Le processeur de l'unité de traitement 110 met en oeuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 120. Dans cet exemple de réalisation de l'invention, le processeur 110 est apte à et configuré pour : 3046321 26 traiter (PROC) un bloc courant et obtenir un ensemble d'éléments de description de ce bloc ; sélectionner (SEL) un sous-ensemble d'éléments de description à prédire parmi un ensemble d'éléments de description du bloc, en fonction de scores associés auxdits 5 éléments; ordonner (ORDER) les éléments de description du sous-ensemble en une séquence, dit séquence initiale, en fonction desdits scores ; Encoder (COD) les éléments de la séquence ordonnée. Le dispositif 100 est en outre configuré pour encoder les éléments non prédits (ENC ENP) et 10 pour reconstruire le bloc décodé BD et l'image décodée (RECONST). Selon un mode de réalisation de l'invention, l'encodage des éléments de la séquence initiale comprend au moins deux itérations des unités suivantes, configurées pour et aptes à être appliquées à une séquence dite courante, initialisée à la séquence initiale : - sélection (SEL Cbk) d'une combinaison de valeurs des éléments de description de la 15 séquence courante parmi une pluralité de combinaisons possibles en fonction d'un critère de coût prédéterminé et, à partir du deuxième élément, de valeurs d'éléments de description précédemment traités de la séquence initiale; - prédiction (PRED) du premier élément de la séquence par sa valeur dans la combinaison sélectionnée ; 20 - codage (COD IP) d'un indicateur représentatif d'une différence entre la valeur de l'élément courant et la valeur prédite, et Mise à jour (UPD Sega de la séquence courante par suppression du premier élément. Selon un mode de réalisation de l'invention, le dispositif 100 comprend en outre une unité M1 de stockage des contextes de codage des coefficients, des scores prédéterminés associés à 25 chacun de ces contextes, des valeurs prédites pour les éléments de description sélectionnés et de la pluralité de combinaisons de valeurs de la séquence d'éléments de description à prédire sélectionnés. Ces unités sont pilotées par le processeur 14 de l'unité de traitement 110. De façon avantageuse, un tel dispositif 100 peut être intégré à un équipement terminal 30 d'utilisateur TU, tel qu'un encodeur, un ordinateur personnel, une tablette, une caméra numérique, 3046321 27 un téléphone mobile intelligent (pour « smartphone », en anglais), etc. Le dispositif 100 est alors agencé pour coopérer au moins avec le module suivant du terminal TU : - un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par 5 exemple un réseau filaire, radio, ou hertzien. Le dispositif de décodage 200 met en oeuvre le procédé de décodage selon l'invention qui vient d'être décrit en relation avec la Figure 5. Par exemple, le dispositif 200 comprend une unité de traitement 210, équipée d'un 10 processeur p2, et pilotée par un programme d'ordinateur Pg2 220, stocké dans une mémoire 230 et mettant en oeuvre le procédé de selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur Pg2 220 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 210. Le processeur de l'unité de traitement 210 met en oeuvre les étapes du procédé 15 décrit précédemment, selon les instructions du programme d'ordinateur 220. Dans cet exemple de réalisation de l'invention, le dispositif 200 est apte à et configuré pour : - Identifier (IDENT) un ensemble d'éléments de description du bloc courant à partir de données du train binaire ; - Sélectionner (SEL) un sous-ensemble d'éléments de description à prédire dans 20 l'ensemble identifié, en fonction de scores associés auxdits éléments; - Ordonner (ORDER) les éléments de description du sous-ensemble en une séquence, dit séquence initiale, en fonction desdits scores ; Décoder (DEC) les éléments de la séquence ordonnée; Selon l'invention, le décodage des éléments de la séquence initiale comprend au moins 25 deux itérations des unités suivantes, configurées pour et aptes à être appliquées à une séquence dite courante, initialisée à la séquence initiale : Sélection (SEL Cbk) d'une combinaison de valeurs des éléments de description de la séquence courante parmi une pluralité de combinaisons possibles en fonction d'un critère de coût prédéterminé et de valeurs d'éléments de description précédemment 30 traités de la séquence initiale; 3046321 28 Prédiction (PRED) du premier élément de la séquence par sa valeur dans la combinaison sélectionnée ; Décodage (DEC IP) d'un indicateur représentatif d'une différence entre la valeur décodée de l'élément courant et la valeur prédite, à partir de données codées 5 extraites du train binaire, Obtention (GET DED0) de la valeur décodée de l'élément courant à partir de l'indicateur décodé et de la valeur prédite ; et Mise à jour (UPD Seq,) de la séquence courante par suppression du premier élément décodé. 10 Le dispositif 200 est en outre configuré pour décoder les éléments non prédits (DEC ENP) et pour reconstruire le bloc décodé BD et l'image décodée (RECONST). Le dispositif 200 comprend en outre une unité M2 de stockage des contextes de codage des coefficients, des scores prédéterminés associés à chacun de ces contextes, des valeurs prédites pour les éléments de description sélectionnés pour un bloc C' et des combinaisons Cbk de valeurs 15 des éléments de description de la séquence à prédire sélectionnés. Ces unités sont pilotées par le processeur .t2 de l'unité de traitement 210. De façon avantageuse, un tel dispositif 200 peut être intégré à un terminal d'utilisateur TU, par exemple un décodeur, un boitier de connexion TV (pour « Set-Top-Box », en anglais), un téléviseur numérique, un ordinateur, une tablette, un téléphone mobile intelligent, etc. Le dispositif 20 200 est alors agencé pour coopérer au moins avec le module suivant du terminal TU - un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est reçu du réseau de télécommunications. - un module DISP d'affichage des images numériques décodées. 25 L'invention qui vient d'être présentée peut trouver de nombreuses applications, en particulier dans le cadre d'une compression de signal vidéo, audio (paroles, son), d'images fixes, d'images acquises par un module d'imagerie médicale. Elle s'applique par exemple aussi bien aux contenus bidimensionnels (2D), tridimensionnels (3D) incluant une carte de profondeur, ou encore d'images 3046321 29 multispectrales (dont les intensités de couleur sont différentes des trois bandes rouge vert bleu) ou enfin d'images intégrales. Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre 5 purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention. REVENDICATIONS1. Procédé de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels (C) traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc courant : - Traitement (El) du bloc courant destiné à fournir un ensemble d'éléments de description du bloc traité ; - Sélection (E2) d'un sous-ensemble d'au moins deux éléments de description à prédire dans l'ensemble fourni; - Ordonnancement (E4) des éléments de description du sous-ensemble en une séquence ordonnée; - Codage (E5) des éléments de la séquence; ledit procédé étant caractérisé en ce que l'étape de codage des éléments de la séquence comprend un parcours des éléments de la séquence et comprend, pour un élément courant, les sous-étapes suivantes: - Sélection (E52) d'une combinaison de valeurs des éléments de description de la séquence parmi une pluralité de combinaisons en fonction d'un critère de coût prédéterminé et, à partir du deuxième élément, de valeurs d'éléments de description précédemment traités dans la séquence; Prédiction (E53) de l'élément courant de la séquence par sa valeur dans la combinaison sélectionnée ; et Codage (E55) d'un indicateur représentatif d'une différence entre la valeur réelle de l'élément courant et sa valeur prédite, 2. Procédé de codage d'une image numérique selon la revendication 1, caractérisé en ce que l'étape (E4) d'ordonnancement produit une séquence initiale (Seq;), l'étape de codage (E5) prend comme élément courant le premier élément (EDo) d'une séquence courante initialisée à la séquence initiale et comprend, une fois le premier élément courant traité, une sous-étape (E57) de mise à jour de la séquence courante par suppression du premier élément. 3046321 31 3. Procédé de codage d'une image numérique selon l'une des revendications précédentes, caractérisé en ce qu'il comprend une étape préalable de calcul des coûts associés à la pluralité de combinaisons de valeurs de la séquence ordonnée, une étape de mémorisation de la pluralité de combinaisons et de leurs coûts associés et en ce que l'étape de sélection (E52) sélectionne, pour l'élément courant, une combinaison de valeurs de la séquence ordonnée pour laquelle les éléments précédemment traités ont leurs valeurs réelles. Procédé de codage d'une image numérique selon l'une des revendications 1 ou 2, caractérisé en ce que l'étape de sélection comprend, pour l'élément courant, une sous-étape de calcul des coûts associés aux combinaisons de valeurs possibles de la séquence courante en fonction d'un critère de coût qui dépend des valeurs des éléments précédemment traités. Procédé de codage d'une image numérique selon l'une des revendications précédentes, caractérisé en ce que l'étape de sélection sélectionne un sous-ensemble d'éléments de description à prédire en fonction de scores prédéterminés, un score prédéterminé étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de prédiction auquel il est associé et en ce que l'étape d'ordonnancement ordonne les éléments à prédire en fonction desdits scores. Procédé de codage d'une image numérique selon l'une des revendications précédentes, caractérisé en ce que le critère de coût prédéterminé appartient à un groupe comprenant au moins : - un critère de minimisation d'une distorsion le long d'une frontière du bloc courant avec un bloc précédemment traité ; - un critère de proximité avec une valeur prédéterminée ; - un critère de minimisation d'une mesure d'énergie d'une différence entre le bloc 25 courant une prédiction du bloc courant ; 7. Dispositif (100) de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit dispositif comprenant une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour : - Traiter (PROC) un bloc courant et fournir un ensemble d'éléments de description du bloc traité ; 5 4. 10 5. 15 6. 20 3046321 32 - Sélectionner (SEL) un sous-ensemble d'au moins deux éléments de description à prédire dans l'ensemble fourni; Ordonner (ORDER) les éléments de description du sous-ensemble en une séquence ordonnée; 5 - Coder (COD) les éléments de la séquence ordonnée; ledit dispositif étant caractérisé en ce que le codage des éléments de la séquence comprend un parcours des éléments de la séquence et, pour un élément courant, est apte à et configuré pour : - Sélectionner (SEL Cbk) une combinaison de valeurs des éléments de description de 10 la séquence parmi une pluralité de combinaisons en fonction d'un critère de coût prédéterminé et, à partir du deuxième élément, de valeurs d'éléments de description précédemment traités dans la séquence; - Prédire (PRED) l'élément courant de la séquence par sa valeur dans la combinaison sélectionnée ; et 15 - Coder (COD IP) un indicateur représentatif d'une différence entre la valeur réelle de l'élément courant et sa valeur prédite. 8. Procédé de décodage d'une image numérique (Im) à partir d'un train binaire (TB), ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, le train binaire comprenant des données codées représentatives d'éléments de description des blocs de 20 l'image, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc (C'), dit bloc courant : Identification (Dl) d'un ensemble d'éléments de description du bloc courant à partir de données du train binaire ; - Sélection (D2) d'un sous-ensemble d'au moins deux éléments de description à prédire 25 dans l'ensemble identifié; - Ordonnancement (D4) des éléments de description du sous-ensemble en une séquence ordonnée; - Décodage (D5) des éléments de la séquence ordonnée; ledit procédé étant caractérisé en ce que l'étape (D5) de décodage des éléments de la 30 séquence ordonnée comprend un parcours desdits éléments et comprend, pour un élément courant, les sous-étapes suivantes: 3046321 33 Sélection (D52) d'une combinaison de valeurs des éléments de description de la séquence parmi une pluralité de combinaisons en fonction d'un critère de coût prédéterminé et, à partir du deuxième élément, de valeurs d'éléments de description précédemment traités dans la séquence; 5 Prédiction (D53) du premier élément de la séquence par sa valeur dans la combinaison sélectionnée ; Décodage (D54) d'un indicateur représentatif d'une différence entre la valeur décodée de l'élément courant et la valeur prédite, à partir de données codées extraites du train binaire, et 10 - Obtention (D55) de la valeur décodée de l'élément courant à partir de l'indicateur décodé et de la valeur prédite. 9. Procédé de décodage d'une image numérique selon la revendication 8, caractérisé en ce que l'étape d'ordonnancement (D52) produit une séquence initiale (Seq,), l'étape de décodage (D54) prend comme élément courant le premier élément (EDo) d'une séquence courante, 15 initialisée à la séquence initiale et comprend, une fois le premier élément courant traité, une sous-étape (D57) de mise à jour de la séquence courante par suppression du premier élément. 10. Procédé de décodage d'une image numérique selon la revendication 8, caractérisé en ce qu'il comprend une étape préalable de calcul des coûts associés à la pluralité de combinaisons de valeurs de la séquence initiale, une étape d'enregistrement de la pluralité de combinaisons et 20 de leurs coûts associés et en ce que l'étape de sélection sélectionne une combinaison parmi les combinaisons enregistrées qui commencent par les valeurs des éléments précédemment traités dans l'ordre de traitement. 11. Procédé de décodage d'une image numérique selon l'une des revendication 8 ou 9, caractérisé en ce que l'étape de sélection comprend, pour l'élément courant, un calcul des coûts associés 25 aux combinaisons de valeurs possibles de la séquence courante en fonction d'un critère de coût qui dépend des valeurs des éléments précédemment traités. 12. Dispositif (200) de décodage d'une image numérique (ID) à partir d'un train binaire (TB), ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, le train binaire comprenant des données codées représentatives d'éléments de description des blocs de 30 l'image, ledit dispositif comprenant une machine de calcul reprogrammable ou une machine de calcul dédiée, configurée pour et apte à, pour un bloc (C'), dit bloc courant : 3046321 34 Identifier (IDENT) un ensemble d'éléments de description du bloc courant à partir de données du train binaire ; Sélectionner (SEL) un sous-ensemble d'au moins deux éléments de description à prédire dans l'ensemble identifié; 5 Ordonner (ORDER) les éléments de description du sous-ensemble en une séquence ordonnée; Décoder (DEC) les éléments de la séquence ordonnée; ledit dispositif étant caractérisé en ce que le décodage des éléments de la séquence initiale comprend au moins deux itérations des unités suivantes, configurées pour et aptes à être 10 appliquées à une séquence dite courante, initialisée à la séquence initiale : Sélection (SEL Cbk) d'une combinaison de valeurs des éléments de description de la séquence courante parmi une pluralité de combinaisons possibles en fonction d'un critère de coût prédéterminé et à partir du deuxième élément, de valeurs d'éléments de description précédemment traités de la séquence initiale; 15 - Prédiction (PRED) du premier élément de la séquence par sa valeur dans la combinaison sélectionnée ; Décodage (DEC IP) d'un indicateur représentatif d'une différence entre la valeur décodée de l'élément courant et la valeur prédite, à partir de données codées extraites du train binaire, et 20 Obtention (GET) de la valeur décodée de l'élément courant à partir de l'indicateur décodé et de la valeur prédite. 13. Signal portant un train binaire (TB) comprenant des données codées représentatives d'éléments de description de blocs de pixels d'une image numérique, lesdits blocs de pixels étant traités dans un ordre défini, caractérisé en ce que lesdites données codées sont 25 obtenues conformément au procédé de codage selon l'une des revendications 1 à 6. 14. Terminal d'utilisateur (TU) caractérisé en ce qu'il comprend un dispositif de codage d'une image numérique selon la revendication 7 et un dispositif de décodage d'une image numérique selon la revendication 12. 15. Programme d'ordinateur (Pgi) comprenant des instructions pour la mise en oeuvre du procédé 30 de codage d'une image numérique selon l'une des revendications 1 à 6, lorsqu'il est exécuté 3046321 par un processeur. 16. Programme d'ordinateur (Pg2) comprenant des instructions pour la mise en oeuvre du procédé de décodage d'une image numérique selon l'une des revendications 8 à 11, lorsqu'il est exécuté par un processeur.