FR 3064870 A1 20181005 FR 1752824 A 20170331 1 Procédé de décodage d'au moins une image numérique, procédé de codage, dispositifs, équipement terminal 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, divisée en blocs de pixels. L'invention concerne plus particulièrement la transformation d'un bloc de pixels, issu ou non d'une prédiction. Elle trouve notamment son application dans un contexte de compétition de transformées. 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 (pour « Advanced Video Coding », en anglais) et HEVC (pour « High Efficiency Video Coding », en anglais) et leurs extensions futures (MVC, 3D-AVC, MVHEVC, 3D-HEVC, post-HEVC, etc), et au décodage correspondant. 2. Présentation de l'art antérieur La compression de séquences d'images et de vidéo fait appel à des transformations. Celles- ci sont appliquées sur un signal résiduel, obtenu par différence entre les pixels d'un bloc de l'image à coder et sa prédiction. On connait de l'article de Zhao, J. Chen, M. Karczewicz, X. Li et C. Wei-Jung, intitulé "Enhanced Multiple Transfornn for Video Coding,", publié par la conférence Data Compression Conference (DCC), en 2016, le fait de provisionner une liste de plusieurs transformées pour un mode de codage donné. Ainsi le codeur a la possibilité de sélectionner dans cette liste une transformée adaptée au résidu courant. 3064870 2 Par exemple, dans la solution décrite, une liste fixe de 5 transformées est dédiée au codage inter. Elle comprend des transformées DCT de type 2 et 8 et DST de type 7. Afin d'effectuer la transformée inverse, le décodeur doit être informé de la transformée sélectionnée au codeur. Ainsi le codeur utilise un indicateur pour signaler au décodeur la transformée 5 utilisée. La valeur de cet indicateur est portée sur un certain nombre de bits. Le fait d'accroître le nombre de transformées permet d'améliorer les performances de compression. 3. Inconvénients de l'art antérieur La compétition de transformées implique un surcoût de signalisation systématique, qui 10 minimise le bénéfice apporté par le nombre de transformées. La solution décrite dans le document cité offre un bon compromis entre nombre de transformées et signalisation, cependant la liste de transformées pour un contexte de codage donné est figée. Or il apparaît que pour certaines images, seules certaines transformées de la liste proposée 15 sont performantes et que pour d'autres, une plus grande diversité de transformées serait nécessaire pour obtenir une meilleure compression. 4. Objectifs de l'invention L'invention vient améliorer la situation. L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. 20 Plus précisément, un objectif de l'invention est de proposer une solution qui permettre d'améliorer les performances de compression sans contrepartie en termes de signalisation. Un autre objectif de l'invention est de proposer une solution qui offre une plus grande flexibilité et permette d'adapter la liste de transformées aux images à coder. 5. Exposé de l'invention 25 Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de décodage d'au moins une image numérique, à partir de données codées par un encodeur et représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc, dit bloc courant : 30 - Décodage des coefficients du bloc courant à partir de données codées; 3064870 3 - Transformation du bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste de Nc transformées, dites applicables; - Reconstruction de l'image à partir du bloc décodé transformé ; Selon l'invention, le procédé comprend en outre les étapes suivantes : 5 - Evaluation des transformées d'une liste de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance, connu de l'encodeur; - Remise en cause des transformées de la liste de transformées applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur. 10 Avec l'invention, le décodeur a la possibilité de remettre en cause la liste de transformées appliquées aux blocs de l'image courante, en vue d'améliorer les performances de compression. Pour ce faire, il évalue, pour le bloc courant, les performances des transformées d'une partie ou de la totalité des transformées disponibles au codeur comme au décodeur et exploite le résultat de cette évaluation pour prendre une décision. S'il décide de modifier la liste de transformées courantes, il le fait dans 15 le respect de règles de modification, connues de l'encodeur. La liste de transformées ainsi modifiée est appliquée au bloc suivant. L'invention propose une approche tout-à-fait nouvelle et inventive de la compression vidéo, selon laquelle le décodeur ne fait plus que subir les décisions prises par l'encodeur mais contribue activement à l'évolution des paramètres de codage. 20 L'invention s'applique avantageusement au décodeur intégré au codeur, et plus généralement à tout décodeur. L'invention concerne aussi un procédé de codage d'au moins une image numérique, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc courant, de dimensions prédéterminées : 25 - Transformation du bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste de Nc transformées d'un ensemble de Nt transformées ; - Encodage du bloc transformé destiné à produire des données codées représentatives du bloc transformé ; - Insertion des données codées dans un train binaire représentatif de l'image codée ; 30 Selon l'invention, le procédé comprend en outre : - Décodage du bloc encodé ; 3064870 4 - Transformation du bloc décodé à l'aide de la transformée sélectionnée ; - Evaluation d'une liste Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance, connu du décodeur; - Remise en cause des transformées de la liste de transformées applicables au bloc suivant 5 en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues du décodeur. Avec l'invention, le codeur réalise une évaluation des transformées et une prise de décision similaires à celles du décodeur. La liste de transformées évolue ainsi de façon dynamique et synchrone au codeur comme au décodeur. De cette manière, aucune signalisation supplémentaire n'est requise 10 entre eux, ce qui permet d'améliorer les performances de compression sans contrepartie sur la quantité d'informations à signaler entre le codeur et le décodeur. Les différents modes ou caractéristiques de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux caractéristiques du procédé de décodage et/ou du procédé de codage défini ci-dessus. 15 Selon un aspect de l'invention, l'étape d'évaluation comprend un calcul d'un score par transformée à partir du au moins un indicateur de performance, un classement des transformées au moins à l'aide des scores calculés et selon un ordre de performance décroissante et l'étape de remise en cause comprend une formation d'une sous-liste à partir des transformées les mieux classées selon au moins une règle prédéterminée et un remplacement de transformées d'au moins une sous-liste 20 de la liste transformées applicables par la sous-liste formée. Un avantage de ce mode de réalisation est qu'il est à la fois simple et efficace. Une partie des transformées est systématiquement remplacée par la sous-liste des transformées les plus performantes selon l'indicateur de performance, sans comparaison préalable de la sous-liste à la liste initiale. On comprend que dans certains cas, l'opération peut être neutre. 25 Selon un autre aspect de l'invention, l'étape de classement prend en outre en compte les scores des transformées pour une pluralité de blocs précédemment traités. Un avantage est de rendre la prise de décision plus fiable en lissant le classement et en évitant les variations locales de scores qui dévieraient de la tendance générale observée. Selon encore un autre aspect de l'invention, la liste de transformées applicables au bloc courant 30 comprend une sous-liste de Nf transformées fixes et une sous-liste de Nr transformées remplaçables, avec Nc = Nf + Nr et la banque de transformées comprend au moins la sous-liste de transformées remplaçables. 3064870 5 Un avantage est qu'on garantit que certaines transformées fixes, donc non remplaçables, participent systématiquement à la compétition de transformées. Selon un autre aspect de l'invention, la liste de transformées applicables étant de longueur fixe égale à Nc, la sous-liste formée est de longueur fixe. 5 Un avantage de ce mode est qu'il maintient une liste de transformées applicables Sc de taille fixe égale à Nc, ce qui est simple à mettre en oeuvre. Dans le cas où seulement Nrl\lc transformées sont remplaçables, la sous-liste formée est de longueur Nr, qui est fixe elle aussi. Selon encore un autre aspect de l'invention, l'étape de remise en cause compare les scores des 10 transformées à au moins un seuil prédéterminé et la sous-liste est formée des transformées qui satisfont au moins un critère lié à ce au moins un seuil. Un avantage de ce mode de réalisation est qu'il ne sélectionne que les transformées dont les performances sont suffisantes au sens d'un ou plusieurs critères. Le nombre Nc, Nr de transformées contenues dans la liste Sc est donc susceptible de varier au cours du temps. 15 Selon encore un autre aspect de l'invention, le procédé comprend une étape de validation de la remise en cause de liste de transformées applicables mettant en oeuvre une information codée représentative d'une autorisation ou d'une interdiction de remise en cause de la liste de transformées applicables pour le bloc suivant. Un avantage de ce mode de réalisation est que le codeur contrôle la remise en cause de la liste de 20 transformées applicables au bloc suivant par le décodeur, à l'aide d'une information transmise dans le flux de données codées. Avantageusement, en ce qui concerne le procédé de codage, l'étape de validation comprend une étape d'évaluation des transformées de la banque de transformées selon un critère débit-distorsion, une étape de classement des transformées évaluées selon ce critère et en ce que l'étape de validation 25 compare le classement obtenu selon le critère débit-distorsion et le classement obtenu selon les scores calculés et valide la remise en cause en fonction d'un critère de similarité entre les deux classements. Un avantage est de laisser à l'encodeur la validation de la décision finale. Seul l'encodeur a accès au signal source et donc à une vérité terrain. Il est seul capable d'évaluer l'impact d'une décision de 30 changement de transformées sur la base d'un critère débit distorsion à partir du bloc reconstruit et du bloc original. Selon ce mode de réalisation de l'invention, le décodeur détermine qu'une remise 3064870 6 en cause de la liste de transformées Sc est nécessaire, mais c'est l'encodeur qui valide le changement lorsque son évaluation lui indique qu'il va dans le sens d'une amélioration de la compression. Avantageusement, en ce qui concerne le procédé de décodage, l'étape de validation comprend une lecture de ladite information dans les données codées et en ce que la validation de la remise en cause 5 de la liste de transformées applicables dépend de la valeur de ladite information. Le décodeur exploite donc l'indicateur de validité lu dans le flux pour valider ou invalider sa proposition de remise en cause de la liste de transformées applicables. L'invention concerne également un dispositif de décodage adapté pour mettre en oeuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce 10 dispositif de décodage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de décodage selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif de décodage sont les mêmes que ceux du procédé de décodage, et ne sont pas détaillés plus amplement. Selon un mode particulier de réalisation de l'invention, un tel dispositif de décodage est compris dans un terminal. 15 L'invention concerne également un dispositif de codage adapté pour mettre en oeuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce dispositif de codage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif de codage sont les mêmes que ceux du procédé de codage, et ne sont pas détaillés plus amplement. 20 Selon un mode particulier de réalisation de l'invention, un tel dispositif de codage est compris dans un terminal, ou un serveur. L'invention concerne aussi un signal portant un train binaire comprenant des données codées représentatives d'au moins une image, ladite image étant divisée en blocs de pixels traités dans un 25 ordre défini, les données codées comprenant, pour un bloc courant, une information représentative d'un index d'une transformée appliquée à ce bloc dans une liste de transformées prédéterminé. Selon l'invention, les données codées comprennent en outre une information représentative d'une autorisation ou d'une interdiction d'une remise en cause de ladite liste pour le bloc suivant, et, sur réception dudit signal, un décodeur est apte à valider une remise en cause de ladite liste en fonction 30 de la valeur de ladite information. L'invention concerne en outre un équipement terminal comprenant un dispositif de décodage selon l'invention et/ou un dispositif de codage selon l'invention. 3064870 7 L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en oeuvre des étapes d'un procédé de codage d'une séquence d'images numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur et un programme d'ordinateur 5 comportant des instructions pour la mise en oeuvre des étapes d'un procédé de décodage d'une séquence d'images 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 téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par 10 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 ou d'une séquence d'images et au dispositif de décodage selon l'invention, éventuellement amovible, mémorisant respectivement un programme d'ordinateur mettant en oeuvre un procédé de codage et un programme d'ordinateur mettant en 15 oeuvre un procédé de décodage, tel que décrits précédemment. 6. Liste des figures D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple 20 exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - la figure 1 présente de façon schématique des listes de transformées mises en oeuvre par l'invention ; - la figure 2 présente de façon schématique les étapes d'évaluation d'un ensemble de transformées et de décision de changement d'une liste de transformées en fonction des 25 résultats de l'évaluation, selon un mode de réalisation de l'invention ; - la figure 3 présente de façon schématique les étapes d'un procédé de codage selon un premier mode de réalisation de l'invention ; - la figure 4 détaille l'étape de compétition de transformées selon ce premier mode de réalisation de l'invention ; 30 - la figure 5 présente de façon schématique les étapes d'un procédé de décodage selon le premier mode de réalisation de l'invention ; 3064870 8 - la figure 6 présente de façon schématique les étapes d'un procédé de codage selon un deuxième mode de réalisation de l'invention ; - la figure 7 détaille les étapes d'évaluation et de décision selon ce deuxième mode de réalisation de l'invention ; 5 la figure 8 présente de façon schématique les étapes d'un procédé de décodage selon un deuxième mode de réalisation de l'invention ; - les figures 9 et 10 illustrent l'amélioration des performances de compression apportées par le procédé selon l'invention ; - la figure 11 présente de façon schématique un exemple de structure matérielle d'un dispositif 10 de codage selon l'invention ; et - la figure 12 présente de façon schématique un exemple de structure matérielle d'un dispositif de décodage selon l'invention. 7. Description d'un mode de réalisation particulier de l'invention 15 L'invention s'applique à la fois à un codeur et à un décodeur d'une séquence d'images. Le codeur applique un schéma de codage par blocs, selon lequel un bloc est transformé et les coefficients du bloc transformés sont encodés et transmis au décodeur sous la forme d'un train binaire. Préalablement à la transformation, le bloc courant peut être prédit par rapport à un ou plusieurs blocs déjà traités et c'est un bloc résidu obtenu par différence entre le bloc prédit et le bloc original, 20 qui est transformé. Le principe général de l'invention repose sur l'évaluation des transformées d'une banque de transformées, au moins sur la base du traitement du bloc courant et sur la remise en cause ou non de la liste de transformées prédéterminé pour le traitement du bloc suivant, en fonction des résultats de cette évaluation. 25 Le codeur et le décodeur réalisent ces opérations de façon identique de telle sorte qu'ils aboutissent à la même mise à jour de la liste de transformées applicable au bloc suivant. On présente tout d'abord des modes de mises en oeuvre de l'évaluation des transformées de la banque de transformées et de la décision de changement de la liste de transformées selon l'invention, puis un procédé de codage et un procédé de décodage mettant en oeuvre ces différents 30 modes de réalisation de l'invention. 3064870 9 Dans la suite de la description, on a recours à plusieurs ensembles et listes de transformées, qui sont illustrés par l'exemple de la Figure 1. On désigne par Bt une banque de transformées évaluées lors du codage et du décodage d'un bloc d'une séquence d'images, et dont les transformées sont susceptibles d'être utilisées pour le codage 5 ou le décodage d'un bloc suivant de la séquence d'images courantes. Elle comprend un nombre Nt de transformées, avec Nt entier non nul. On définit par Sf une liste de transformées, dites fixes, au sens où elles ne sont pas remplaçables par d'autres transformées de la banque Bt. Elle comprend un nombre Nf de transformées. Les transformées de la liste Sf ne font pas partie de la banque de transformées BT. 10 On désigne par Sr une sous-liste de transformées applicables au bloc courant en complément de la liste fixe Sf, dites remplaçables, au sens où elles peuvent être supprimées et être remplacées par d'autres contenues dans la banque. La composition de cette sous-liste peut donc évoluer au cours du traitement. Cette liste comprend un nombre variable Nr de transformées, qui peut être fixe ou variable selon le mode de réalisation. 15 On désigne par Sc une liste dite courante, qui comprend toutes les transformées qui sont applicables au bloc courant. Par construction, cette liste est la concaténation des listes Sf et Sr. Elle comprend un nombre Nc de transformées, avec Nc = Nf + Nr. 20 En relation avec la Figure 2, on décrit l'étape Ti d'évaluation de transformées et l'étape T2 de remise en cause de liste courante de transformées Sc applicables au bloc suivant selon un premier mode de réalisation de l'invention. Les transformées sont par exemple de type transformée en cosinus discrète ou DCT (pour « Discrete Cosine Transfornn », en anglais), transformée en sinus discrète ou DST (pour « Discrete 25 Sine Transfornn », en anglais) ou des transformées dérivées par apprentissage, de type KLT ( pour « Karhunen Loeve Transfornn », en anglais) ou des transformées optimisées selon un critère débit-distorsion, conformément au document de Arrufat, intitulé « Mode-dependent transfornn connpetition for HEVC » et publié par la conférence IEEE ICIP 2015. L'étape T1 d'évaluation s'applique à une version décodée du bloc courant dans le domaine 30 spatial ou au bloc résidu Res décodé. Autrement dit, l'étape de prédiction est optionnelle. Néanmoins, dans les modes de réalisation décrits ci-après, on considère des blocs résidus, sans limitation de portée de l'invention. 3064870 10 On notera ainsi que pour garantir un fonctionnement similaire du codeur et du décodeur, il convient d'évaluer au codeur comme au décodeur le bloc courant décodé ou le bloc résidu décodé, seules versions disponibles au niveau du décodeur. L'étape T1 évalue les Nt transformées Ti, avec i entier compris entre 1 et Nt, de la banque de 5 transformées Bt disponible au codeur comme au décodeur. On suppose par exemple qu'elle les évalue successivement en mettant en oeuvre les sous-étapes suivantes : Au cours d'une sous-étape T11, la transformée courante Ti est appliquée au bloc résidu Res décodé. On obtient un bloc transformé ResT. 10 Optionnellennent une quantification des coefficients du bloc transformé est réalisée en T12. Elle produit un bloc résidu transformé quantifié ResTQ. En T13, on calcule au moins un indicateur de performance IP de la transformée Ti. Cet indicateur peut être obtenu à partir d'un ou plusieurs critères d'évaluation CR. Un de ces critères peut être par exemple le nombre de coefficients non nuls, encore appelés significatifs, dans le bloc transformé 15 optionnellennent quantifié. On désigne aussi ce critère par « norme-zéro ». En effet, cette mesure donne une bonne indication de la concentration d'énergie réalisée par la transformation du bloc et renseigne donc sur les performances de compression de la transformée. Ce critère peut également s'appuyer sur un nombre de coefficients nuls, une mesure de puissance d'erreur de quantification si l'étape de quantification est mise en oeuvre. Avantageusement, il peut alors prendre en compte 20 plusieurs critères, comme par exemple à la fois la puissance d'erreur et le nombre de coefficients, en les pondérant. Avantageusement, lors d'une étape T14, l'indicateur IP obtenu est stocké en mémoire, par exemple une mémoire BUFO dite tampon (pour « buffer », en anglais). On teste en T15 s'il reste des transformées à traiter. Par exemple, si on a choisi de traiter les 25 transformées dans l'ordre de leur indice i, on vérifie que i est strictement inférieur au nombre total de transformées à traiter Nt. Si c'est bien le cas, on incrémente i et on répète les étapes T11 à T15 pour la transformée suivante. Avantageusement, on utilise les indicateurs de performance calculés pour le bloc courant pour mettre à jour en T16 des valeurs de scores déjà stockées en mémoire et calculées à partir d'au moins un 30 bloc précédemment traité. Idéalement, il est intéressant de considérer plusieurs blocs précédemment 3064870 11 traités, afin de lisser les résultats obtenus et les rendre moins sensibles aux variations locales des caractéristiques des blocs de l'image. Par exemple, on prend en compte un historique des IP sur les K derniers blocs traités avec K = 20 pour calculer le score attribué à une transformée, ce qui constitue un bon compromis. 5 Dans ce cas, on a stocké en mémoire BUFO les indicateurs de performances IP obtenus par les transformées de la banque de transformées sur les K derniers blocs et on exploite l'ensemble de ces indicateurs de performance IP pour calculer un score par transformée (par exemple un score nnoyenné ou une combinaison de scores nnoyennés, comprenant par exemple les moyennes des indicateurs de performances IP, les valeurs médianes des indicateurs de performance IP ou les 10 indicateurs de performance IP cumulés de chacune des transformées. De façon alternative, on peut calculer une valeur lissée Zcl du score courant comme une somme pondérée d'une valeur Zh stockée en mémoire et de la valeur courante Zc : Zcl = 0,1Zc + 0.9 Zh Lorsque le nombre de blocs traité est inférieur à K, les indicateurs de performance IP obtenus par 15 les transformées pour le bloc courant Bc peuvent être combinés à des indicateurs de performance IP initialisés au préalable pour chacune des transformées de la banque. Cette initialisation peut être prédéterminée, de façon identique au codeur et au décodeur, ou héritée de l'image précédente, ou déterminée par l'encodeur. Dans ce dernier cas, le codeur doit la transmettre au décodeur dans un en-tête afin d'assurer la synchronisation codeur/décodeur. Par exemple, il insère ces informations 20 dans un en-tête SPS (pour « Sequence Paranneter Set », en anglais) comprenant les paramètres de la séquence d'images ou bien dans un en-tête PPS (pour « Picture Paranneter Set », en anglais) comprenant les paramètres de l'image courante. Une fois les scores mis à jour, ils sont classés en T17 par exemple selon un ordre de performance décroissant, ou bien dans un ordre de transformées prédéfinie. Par exemple, si le score calculé 25 correspond à un nombre de coefficients significatifs (« norme-zéro »), le classement est réalisé selon des valeurs croissantes des scores, la transformée classée la première étant celle pour laquelle le bloc courant transformé comprend le moins de coefficients significatifs. On obtient ainsi une liste Si des Nt transformées classées, qu'on stocke en mémoire en T18. Si correspond donc la banque de transformées Bt réordonnée selon un critère défini, par exemple 30 suivant l'ordre de performance. 3064870 12 Lors d'une étape T2, on remet en cause la liste Sc de transformées applicables en appliquant des règles de décision prédéterminées, communes au codeur et au décodeur. - Dans un premier exemple de réalisation de l'invention, une règle prédéterminée est que le nombre de transformées contenues dans la liste Sc peut varier au cours de l'encodage, par 5 conséquent le nombre N, de transformées dans la liste Sr peut être changé. Dans ce cas, on détermine en T21 une sous-liste SO de transformées, issues de la liste Si dont le score est meilleur qu'un seuil prédéterminé T . Par exemple, si l'indicateur de performance dépend du nombre de coefficients significatifs, on choisit les transformées de la banque dont la valeur de score est inférieure à T. De façon alternative, ce seuil T peut être dynamiquement calculé 10 en le fixant à une fraction de la moyenne des valeurs des scores. En pratique une valeur seuil égale à 0.5 donne des bons résultats pour cette fraction. Le nombre de transformées NO qui constituent la sous-liste SO correspond à la nouvelle valeur de Nr, et les transformées de la sous-liste SO remplacent celles de la liste Sr en T22. On dispose d'une nouvelle liste Sc de transformées applicable au bloc suivant, qui comprend 15 les Nf transformées fixées et les Nr transformées de Sr. On remet donc à jour la valeur de Nc = Nf + Nr ainsi que Sc en T22. On stocke en mémoire la nouvelle liste Sc et la nouvelle valeur de Nc. De façon alternative, on compare les Nr transformées ordonnées de SO à celles de Sr et on réalise effectivement une mise à jour si une différence existe. 20 - Dans un deuxième exemple de réalisation, une règle prédéterminée est que le nombre d'éléments dans la liste Nc est fixe et commun au codeur et au décodeur. Il en résulte que le nombre d'éléments Nr de la liste de transformées remplaçables Sr est fixe lui aussi. On forme la liste SO en T21 à partir des Nr premières transformées de la liste Si selon le classement mis à jour. 25 En T22 on met à jour la liste Sr des Nr transformées remplaçables à partir de SO et la liste Sc des transformées applicables, qui est elle aussi réordonnée en fonction de la nouvelle liste Sr. Par exemple, on forme la nouvelle liste Sc en concaténant la liste Sf et la liste Sr, les transformées de la liste Sf étant placées en premier. Ensuite, on stocke en mémoire la nouvelle liste Sc et la nouvelle valeur de Nc. 30 - Dans un troisième exemple de réalisation de l'invention, toutes les transformées de la liste Sc sont remplaçables. Autrement dit, Nr = Nc et Nf = 0. A partir du classement des Ni 3064870 13 transformées produit par l'étape T1 sous la forme d'une liste Si, on forme une liste SO comprenant les Nr = Nc meilleures transformées de Si. Deux cas sont possibles : - Nc est fixe, ce qui impose de former la liste Si, en choisissant les Nc meilleures transformées plutôt qu'en appliquant un seuil lié à la valeur du score; 5 - Nc peut varier, ce qui permet de choisir les Ni meilleures transformées en fonction d'un seuil T lié à la valeur de score, quitte à en sélectionner un nombre NT inférieur à Nc. Dans ce cas, la valeur de Nc est mise à jour et stockée en mémoire. Avec l'invention, la liste Sc, mise à jour, est applicable au bloc suivant. Bien sûr l'invention n'est pas limitée aux exemples qui viennent d'être présentés. Les mises à jour 10 des listes Sr et Sc peuvent être réalisées de multiples façons, déterminées par des règles de décision communes au codeur et au décodeur. Plusieurs exemples concrets de mise à jour de la liste Sc sont donnés ci-dessous. Dans ces exemples, l'indicateur de performance IP utilisé est la norme-zéro, qui comptabilise, pour chaque transformée évaluée, le nombre de coefficients significatifs dans le bloc résidu transformé 15 Res ou ResT du bloc courant. Exemple 1 : Remise en cause de toutes les transformées de la liste Sc avec Nc constant A titre d'exemple, on choisit Nr = Nc = 2, Nt=5. Par conséquent toutes les transformées de Sc sont remplaçables, donc Sr = Sc et Sf est vide. Le nombre Nr de transformées dans Sr est choisi fixe. On considère la banque de transformées BT suivante : BT = {DCT2, DST7, DCT8, DST1, DCT5}. Par 20 exemple le terme DCT2 désigne la DCT de type II et le fait qu'elle soit appliquée à la fois sur les lignes et les colonnes du bloc. A un instant donné, on considère que pour le bloc résidu décodé courant Res la liste de transformées est Sr = Sc = {DCT2, DST7}. Dans cet exemple, l'indicateur de performance IP considéré est la norme zéro. Il est calculé en T13 25 pour chaque transformée. Le score évalué en T16 est la moyenne des valeurs des indicateurs IP sur les X derniers blocs (par exemple X=4). On classe en T17 les transformées selon des valeurs de scores croissants et on forme une liste ordonnée Si de Nt transformées. On observe par exemple les résultats suivants : DCT2 DST7 DCT8 DST1 DCT5 3064870 14 Scores 3,5 9,2 5,5 7,0 8,9 Norme-zéro Si est constituée de la liste ordonnée et vaut {DCT2, DCT8, DST1, DCT5, DST7}. On décide dans cet exemple de garder la taille Nr de la liste Sr constante et de choisir les 2 meilleures transformées au sens de l'indicateur de performance, dans l'ordre de classement. On remplace donc en T2 la liste Sr par les Nr=2 premières transformées de la liste Si. 5 La liste Sr mise à jour vaut : Sr = Sc = {DCT2, DCT8}. Exemple 2 : Modification par suppression/ajout d'une ou plusieurs transformées On considère la même banque de transformées BT que dans l'exemple précédent, de taille Nt=5. Toutes les transformées de Sc sont remplaçables donc Nr = Nc et Sr = Sc. BT = {DCT2, DST7, DCT8, DST1, DCT5} 10 On initialise la sous-liste Sr avec Nr = 3 comme suit : Sr = Sc = {DCT2, DST7, DST1}. A l'issue de l'étape d'évaluation des scores, on obtient les résultats suivants : DCT2 DST7 DCT8 DST1 DCT5 Scores 2.0 3.3 12.4 8.9 10.2 Norme-zéro Avantageusement, on forme une liste ordonnée Si de taille Nt comme suit : Si= {DCT2, DST7, DST1, DCT5, DCT8}. La règle de décision applicable dans cet exemple est de conserver dans la liste Sr uniquement les 15 transformées dont le score a une valeur inférieure ou égale à un seuil T prédéterminé, par exemple ici T =5. Après évaluation des transformées de la banque et application de la règle, le décodeur constate que deux transformées ont un score inférieur au seuil S=5. Par conséquent la liste Sr = Sc est mise à jour de la façon suivante : 20 Sr = Sc = {DCT2, DST7}. Nr prend donc la valeur 2 et Nc est mis à jour avec Nc=2. Le prochain bloc pourra être transformé par l'une des deux transformées de Sc. Il en résulte que la signalisation de la transformée véhiculée entre le codeur et le décodeur sera réduite puisque la liste Sc compte une transformée de moins que pour le bloc précédent. 25 On répète l'étape d'évaluation pour le bloc suivant et on obtient les résultats ci-dessous : 3064870 15 DCT2 DST7 DCT8 DST1 DCT5 Norme-0 2.4 3.1 3.2 4.9 10.1 SI = {DCT2, DST7, DCT8, DST1, DCT5}. On constate que 4 transformées de la banque ont un score inférieur au seuil S=5. Par conséquent, la liste Sr est mise à jour de la façon suivante : Sr = Sc = {DCT2, DST7, DCT8, DST1} et Nr=4. 5 En relation avec les figures 3 et 6, on décrit maintenant les étapes d'un procédé de codage mettant en oeuvre le mécanisme qui vient d'être détaillé en relation avec la Figure 1. On détaille deux modes de réalisation particuliers de l'invention. A. Mode de réalisation : sans contrôle de l'encodeur Par exemple, un tel procédé de codage est mis en oeuvre par un dispositif de codage tel que décrit 10 en relation avec la Figure 11. La séquence d'images Il, I2..., 13 à coder, avec] entier non nul, est fournie en entrée du procédé de codage. Le procédé de codage délivre en sortie un train binaire STR représentatif de la séquence d'images fournie en entrée. Ce train binaire peut être transmis sous la forme d'un flux ou d'un fichier au décodeur. De façon connue en soi, le codage de la séquence d'images Il, 12, ..., 13 est fait image par image 15 selon un ordre de codage préalablement établi et connu du décodeur. Par exemple, les images peuvent être codées dans l'ordre temporel Il, 12, ..., 13 ou selon un autre ordre, par exemple Il, 13, 12, ..., 13. Lors d'une étape EO (non représentée), une image Ic à coder de la séquence d'images Il, 12, ..., IK, dite image courante, est découpée en blocs de taille maximale, chaque bloc de taille maximale 20 pouvant être redécoupé en blocs plus petits. Par exemple, un bloc de taille maximal est de taille 32x32 pixels. Un tel bloc de taille maximal peut être subdivisé en sous-blocs carrés ou rectangulaires, par exemple de taille 16x16, 8x8, 4x4, 16x8, 8x16, .... Puis, lors de l'étape EO, un bloc courant Bc à coder d'une image Ic est sélectionné selon un sens de parcours de l'image Ic prédéterminé. Lors d'une étape El, le bloc courant Bc est prédit par rapport à un bloc déjà traité, dit bloc prédicteur 25 P, d'une image de référence IR, selon un mode de prédiction prédéterminé. En E2, on obtient un bloc résidu Res par différence entre le bloc courant Bc et le bloc prédicteur P. Lors d'une étape E3, le résidu de prédiction Res est ensuite transformé par une transformée d'une liste Sc prédéterminée et par exemple de type DCT ou DST ou autre. Cette liste prédéterminée comprend Nc transformées, dont Nf transformées sont fixées et IV, transformées sont remplaçables. 30 Une banque de Nt transformées, avec NrNt et par exemple Nr=4 et Nt = 8, est disponible au codeur 3064870 16 et au décodeur. On rappelle que les Nf transformées fixes ne font pas partie de la banque de transformées BT. L'état initial de la liste Sc est prédéterminé (connu du codeur et du décodeur), ou hérité de l'image précédente, ou encore déterminé par l'encodeur. Si l'encodeur détermine cette liste de départ, il doit 5 la transmettre au décodeur dans un en-tête (par exemple l'entête PPS comprenant les paramètres de l'image courant (pour « Picture Paranneter Set », en anglais), ou l'entête SPS comprenant les paramètres de la séquence d'images (pour « Sequence Paranneter Set », en anglais) afin d'assurer la synchronisation codeur/décodeur. 10 Dans ce mode de réalisation, le codeur met en oeuvre, de façon connue et par exemple décrite dans le document de Zhao et al. déjà cité, une compétition de transformées, qui consiste à appliquer successivement au bloc résidu Res les transformées de la liste Sc de transformées prédéterminée, à évaluer une performance de la compression réalisée par chacune d'elles selon un critère de type débit-distorsion, puis à sélectionner la meilleure pour le bloc résidu courant Res. 15 En relation avec la Figure 4, on détaille un mode de réalisation de l'étape E3 de compétition de transformées. Pour chaque transformée Tn de la liste Sc, avec n allant de 1 à Nc, les étapes suivantes sont réalisées : En E31, le bloc résidu courant Res est transformé par la transformée T. 20 En E32, le bloc résidu transformé ResT obtenu est quantifié. En E33, un coût R de codage binaire des coefficients du bloc résidu transformé est évalué par exemple à l'aide d'un codeur entropique. En E34, une quantification inverse est appliquée au bloc résidu transformé quantifié ResTQ, puis en E35 la transformée inverse de Tn. 25 En E36, on évalue une distorsion D entre le bloc Res' obtenu et le bloc Res d'entrée. En E37, on estime un coût débit-distorsion, par exemple à l'aide d'une mesure de coût Lagrangien J = D + À x R, où D est la distorsion mesurée sur le bloc reconstruit, R le débit généré lors du codage et À le multiplicateur de Lagrange. On répète donc cet enchaînement de sous-étapes pour les Nc transformées de la liste Sc. Enfin, on 30 sélectionne en E38 la transformée T qui minimise le coût débit-distorsion pour les résidus Res, Res' correspondants. 3064870 17 On désigne par Trio la transformée sélectionnée. Le bloc résidu quantifié obtenu Resdno] est ensuite codé en E9, par codage entropique, par exemple un codeur CABAC décrit dans D. Marpe, H. Schwarz, T. Wiegand, « Context-based adaptive binary arithnnetic coding in the H.264/AVC video compression standard » IEEE Transactions on Circuits and Systems for Video Technology (Volunne:13 , Issue: 7 5 ), pages 620 - 636, July 2003, sous la forme d'un flux de données codées STR. La transformée sélectionnée est identifiée par un code Tr-ID qui est soumis lui aussi au codage entropique. Avantageusement, le code choisi pour identifier la transformée Trio sélectionnée est de longueur variable et dépend du classement de la transformée dans la liste Sc. A titre d'exemple, on considère une liste Sc comprenant trois transformées. On leur associe les codes à longueur variable 10 indiqués dans la table 1 ci-dessous : Position dans Sc Code Tr-ID 1 o 2 10 3 11 Table 1 De cette manière, les codes les plus courts sont affectés aux meilleures transformées applicables selon l'indicateur de performance. Il en résulte que ces transformées seront moins coûteuses à 15 signaler et qu'elles seront favorisées lors de la compétition de transformées qui s'appuie sur un critère débit-distorsion. Le bloc résidu ResIno] obtenu au cours de l'étape E3 par quantification inverse et transformation inverse à l'aide de la transformée no sélectionnée, est présenté en entrée de l'étape T1 d'évaluation 20 des transformées de la banque BT, selon l'invention et déjà décrite ci-dessus en relation avec la Figure 2. Au cours de cette étape T1 sont évalués des indicateurs de performances IP de chaque transformée de la banque BT sur le bloc résidu spatial décodé Res', puis des scores à partir de ces indicateurs, d'une façon identique à celle du décodeur. Les Nt transformées de la banque sont classées dans une 25 liste ordonnée Si en fonction de l'indicateur de performance, par exemple du meilleur score au plus mauvais, ou selon un autre critère prédéterminé. La liste Si obtenue et les scores associés sont ensuite traités par l'étape T2 qui détermine une liste SO candidate pour remettre en cause la sous-liste Sr de transformées remplaçables de la liste Sc, 3064870 18 d'une façon identique à celle du décodeur et telle que décrite précédemment en relation avec la Figure 2. Si cette remise en cause aboutit à une mise à jour de la liste, alors la nouvelle liste Sc est stockée en mémoire BUF. Elle sera mise en oeuvre pour le traitement du bloc suivant. 5 En E4, la prédiction du bloc courant Bc est additionnée au résidu spatial Res' afin d'obtenir un bloc reconstruit REC, qui sera utilisé pour la prédiction des blocs suivants. En E5, on ajoute la contribution du bloc reconstruit BcR à l'image courante reconstruite ICR. On teste en E6 si le bloc courant Bc est le dernier de l'image. S'il reste des blocs à coder, on sélectionne le bloc suivant comme nouveau bloc courant en E7. Sinon l'image reconstruite est filtrée 10 en E8 afin d'obtenir une image de référence Icr exploitable pour le codage des images suivantes. A l'issue du codage de l'image courante Ic, on teste s'il reste des images à coder dans la séquence. Si c'est le cas, l'image suivante dans l'ordre de codage des images devient l'image courante. Sinon, le traitement est terminé. Le train binaire produit STR peut être directement présenté à un décodeur ou bien lui être transmis via un réseau de télécommunications sous forme de flux ou de fichier. 15 En relation avec la figure 5, on décrit maintenant les étapes d'un procédé de décodage d'un train binaire STR représentatif d'une séquence d'images 11,12, ..., 13à décoder, selon un mode particulier de réalisation de l'invention. Par exemple, le flux de données STR a été généré via le procédé de codage présenté en relation avec 20 la Figure 3. Le flux de données STR est fourni en entrée d'un dispositif de décodage DEC, par tel que décrit en relation avec la Figure 12. Le décodage du flux se fait image par image. Pour chaque image à décoder, le procédé de décodage réalise le décodage de l'image bloc par bloc. On considère une image courant Ic à décoder. Lors d'une étape DO d'initialisation, on détermine un premier bloc courant 13, de l'image Ic. 25 Les données du train binaire STR correspondant au bloc 13, sont décodées par un module de décodage entropique pour fournir en D1 des éléments de syntaxe relatifs au mode de codage du bloc courant 13, et en D2 un groupe de coefficients d'un bloc résidu Res'TQ d'une prédiction du bloc courant B. Les éléments de syntaxe décodés comprennent notamment une information de mode de prédiction identifiant pour le bloc courant 13, un mode de prédiction parmi une pluralité de modes de prédiction 30 prédéterminés. Lors d'une étape D3, les coefficients de résidus Res'TQ de prédiction du bloc 13, subissent une 3064870 19 quantification inverse et un bloc résidu déquantifié Res'T est obtenu. En D4, on décode à partir du train binaire un index Tr-ID de la transformée inverse à appliquer au résidu du bloc courant Bc, dans la liste Sc prédéterminée de transformées, identique à celle utilisée par le codeur. 5 En D5, on applique au résidu Res'TQ du bloc courant Bc la transformée inverse identifiée par l'index Tr-ID décodé. En D6, le bloc courant est prédit selon le mode de prédiction décodé en Dl. La prédiction peut se baser, dans un mode dit inter, sur des images de référence précédemment décodées et reconstruites (IRO, ...), ou, dans un mode dit intra, à partir de blocs déjà décodés par exemple dans la même 10 image. Un bloc prédit P' est obtenu. En D7, le bloc prédit P' est additionné au bloc résidu spatial RES' afin d'obtenir le reconstruit local Rec qui sera utilisé pour la prédiction des prochains blocs. En T1, on évalue les performances de chacune des Nt transformées de la banque pour le bloc résidu spatial Res', selon l'invention, comme décrit précédemment en relation avec la figure 2. 15 Pour chaque transformée Tm, avec m entier compris entre 1 et Nt, on met donc successivement en oeuvre les étapes suivantes : - Le résidu est transformé par la transformée Tm de la banque BT, puis quantifié ; - Un indicateur de performance IP est évalué selon un des modes de réalisation précédemment décrits ; 20 Une fois toutes les transformées traitées, un score leur est attribué à partir de valeurs de l'indicateur de performance IP et elles sont classées dans une liste Si en fonction de la valeur de ce score, par exemple du meilleur score au plus mauvais. Dans un mode de réalisation particulier, les scores contenus dans la liste Si sont formés à partir des valeurs d'indicateurs de performances lissés sur plusieurs blocs, comme précédemment décrit. 25 En T2, sur la base des scores déterminés en T1 on remet en cause la liste Sr, et donc la liste Sc, comme décrit précédemment en relation avec la Figure 2. Par exemple, dans un mode de réalisation particulier de l'invention, on met en oeuvre les étapes suivantes : - On forme une liste SO à partir des Nt scores déterminés en T1, par exemple, lorsque Nr peut varier, en appliquant un seuil prédéterminé ou, lorsque Nr est fixe, en sélectionnant les Nr 30 meilleures transformées ; 3064870 20 On met à jour Sr en la remplaçant par la liste SO formée. La liste des transformées applicables Sc est mise à jour à partir de la nouvelle liste Sr, par exemple en concaténant la liste Sr à celle des transformées fixes Sf. Elle sera utilisée pour le traitement du bloc suivant, en particulier pour l'étape D4 d'identification de la transformée par l'index Tr-ID pointant dans 5 Sc et pour l'étape D5 de transformation inverse du résidu courant à l'aide de la transformée inverse identifiée. En D8, le bloc Rec' reconstruit est ajouté à l'image courante ICR. Lors d'une étape D9, il est vérifié si tous les blocs de l'image à décoder ont été décodés et reconstruits. Dans le cas négatif, un nouveau bloc courant est identifié en D10 selon un parcours prédéterminé de l'image à décoder et le procédé 10 de décodage reprend à l'étape D1 pour ce bloc. Dans le cas où tous les blocs de l'image ont été traités, l'image IcR est filtrée en Dll et sauvegardée dans une liste d'images de référence '1R, I2R,... pour être utilisée ultérieurement comme référence lors du décodage des images suivantes de la séquence d'images. Un avantage du mode de réalisation qui vient d'être décrit en relation avec les Figures 3 et 5, est 15 que le codeur et le décodeur sont capables de modifier automatiquement la liste Sc de transformées applicable au bloc courant, de manière optimale et synchrone. Aucune signalisation additionnelle n'est donc requise. Selon les différentes options prévues par l'invention et décrites en relation avec la Figure 2, la liste Sc est donc mise à jour de différentes manières, qui peuvent être combinées entre elles : 20 - Ajout ou suppression de transformées ; - Changement d'ordre des transformées dans la liste. B. Mode de réalisation avec contrôle de l'encodeur En relation avec la Figure 6, on décrit les étapes d'un procédé de codage d'une séquence d'images 25 selon un deuxième mode de réalisation de l'invention. Les étapes EO à E2 et E4 à E8 sont inchangées par rapport au premier mode de réalisation décrit en relation avec la figure 3. Dans ce deuxième mode de réalisation, l'étape E3 de compétition de transformées est remplacée par une étape E3', qui va maintenant être décrite en relation avec la Figure 7. L'étape E3' met en compétition et évalue non seulement les Nc transformées de la liste courante Sc mais aussi le cas 30 échéant, les Nt-Nr transformées restantes dans la banque de transformées Bt, selon un critère débit- distorsion, analogue à celui décrit dans le premier mode. Un coût débit-distorsion est associé à 3064870 21 chaque transformée appliquée et il est stocké en mémoire BUF1. En revanche, la sélection de la meilleure transformée pour le bloc courant est inchangée au sens où elle s'effectue toujours parmi les Nc transformées de la liste Sc. L'étape Ti d'évaluation des transformées de la banque BT déjà décrite est elle aussi inchangée. Elle 5 produit une liste ordonnée Si des transformées, par exemple de la meilleure à la pire valeur d'un score fonction d'un ou plusieurs indicateurs de performance prédéterminés, de façon analogue à celle déjà décrite pour le premier mode. Les scores peuvent être ceux du bloc Bc courant ou bien obtenus par lissage des valeurs d'indicateurs de performance IP des K derniers blocs traités. Selon ce deuxième mode de réalisation de l'invention, l'étape T2 de décision est modifiée et 10 remplacée par une étape T2'. Au cours de cette étape, une sous-liste SO est formée en T21', pour remettre en cause la sous-liste Sr, de façon similaire à ce qui a été précédemment décrit, mais elle ne remplace pas automatiquement l'ancienne liste Sc. Elle constitue une proposition de mise à jour envoyée à l'unité de validation T4 en étape T22', qui nécessite une validation pour que la mise à jour effective soit exécutée. 15 Selon ce deuxième mode de réalisation, le procédé de codage comprend en outre une étape T3 d'évaluation des transformées de la banque BT à partir des coûts débit-distorsion produits par l'étape de compétition E3'. En relation avec la Figure 7, cette évaluation comprend en étape T31' où, pour chaque transformée, un score est calculé à partir du son coût débit-distorsion calculé en E3'. En T32', les transformées de la banque sont ordonnées et stockées dans une liste Si', en fonction de ces 20 scores, par exemple selon un ordre de coût décroissant. Comme précédemment décrit, ce classement peut s'appuyer sur les coûts obtenus pour le bloc courant Bc seul ou sur les K blocs précédemment traités incluant le bloc courant. On comprend que le classement contenu dans Si' représente en quelque sorte une « vérité terrain ». En effet, les transformées classées ont été obtenues à partir d'une mesure de la distorsion réelle 25 entre l'image décodée reconstruite et l'image originale et du coût réel de codage du bloc courant. De telles informations ne sont disponibles que côté codeur. Au contraire la liste Si est construite sur la base d'un indicateur de performance IP, par exemple la « norme-zéro » qui ne s'appuie pas sur la distorsion réellement introduite par les étapes de transformation et quantification. Elle n'utilise en revanche que des informations qui sont à la fois 30 disponibles au codeur et au décodeur. En relation avec la Figure 7, une étape T4 évalue la proposition de sous-liste SO faite en T2' concernant une mise à jour de la liste Sc. 3064870 22 En T41, la liste Si est comparée à la liste Si'. Si les deux listes ont un degré de similarité satisfaisant selon au moins un critère de similarité CS prédéterminé, alors la modification de la liste Sc est validée. Par exemple, on considère que les deux listes Si et Si' sont suffisamment similaires si elles produisent le même classement de transformées, ou bien si au moins les Nt/2 premières 5 transformées sont similaires, ou bien si la transformées la plus performante est identique dans les deux listes. Dans un autre exemple, on peut considérer que les sous-listes sont similaires si elles placent les mêmes transformées en tête de liste (sur les X=2 premières). On en déduit la valeur d'un indicateur de validité bv. Par exemple, il vaut 1 en cas de validation, zéro sinon. Sa valeur est transmise au codeur entropique pour encodage et insertion dans le train binaire en T43. 10 Si bv vaut 1, l'étape T44 réalise la mise-à-jour des listes Sc et, Sr et ainsi que du nombre Nc, Nr de transformées qu'elles comprennent, à partir de la sous-liste SO en provenance de l'étape de décision T2'.Si bv vaut zéro, les listes Sc et Sr sont inchangées. De cette manière, le codeur signale au décodeur s'il valide ou non la proposition de mise à jour produite par l'étape de décision. Pour ce faire, il s'appuie sur une évaluation de la distorsion 15 réellement introduite par chacune des transformées et sur le coût réel de codage du bloc courant. Ce mécanisme additionnel permet de garantir tout risque de dérive de la liste Sc. En relation avec la Figure 8, on décrit les étapes d'un procédé de décodage selon ce deuxième mode de réalisation de l'invention. Les étapes DO à Dll sont inchangées. L'étape T1 d'évaluation des scores de la banque de transformées pour le bloc courant Bc est inchangée. Elle produit une liste Si 20 contenant le classement des transformées de la banque. Une décision relative au changement de la liste Sc est prise en T2', mais à la différence de l'étape T2 précédemment décrite en relation avec la figure 1, selon ce deuxième mode de réalisation de l'invention, l'étape T2' produit une proposition SO de mise à jour de Sc, qui est ensuite traitée par une étape T4' de validation. Cette étape T4' de validation s'appuie sur la valeur d'un indicateur de validité bv, extraite du train binaire et décodée 25 au cours d'une étape D4'. Par exemple, comme précédemment décrit pour le procédé de codage en relation avec les figures 6 et 7, cet indicateur prend la valeur 1 pour indiquer que le codeur valide le changement et la valeur 0 s'il l'invalide. Dans le premier cas, l'étape T4' stocke la nouvelle liste Sc validée dans une mémoire BUF. Elle sera utilisée pour sélectionner la transformée inverse à appliquer au bloc suivant. Dans le second cas, la mise à jour de la liste Sc n'est pas stockée en mémoire et la 30 liste Sc reste inchangée. Dans ce deuxième mode de réalisation, la remise en cause de la liste Sc de transformées par le décodeur est soumise à validation de l'encodeur. Ce dernier ayant accès au signal source, 3064870 23 contrairement au décodeur, il est plus à même de déterminer la ou les transformées les plus adaptées aux images à traiter. En relation avec les Figures 9 et 10, on évalue les performances de l'invention lorsqu'elle est mise en oeuvre dans un codeur et un décodeur selon le premier mode de réalisation de l'invention, c'est- 5 à-dire sans contrôle de l'encodeur. Le codeur et le décodeur sont initialisés avec une liste fixe de transformées Sf, de taille Nf=4, comprenant les transformées suivantes : Sf = {DCT2xDCT2, DCT8xDST7, DST7xDCT8, DST7xDST7} Dans cet exemple, on désigne par transformée un couple de transformées, la première étant 10 applicable aux lignes du bloc courant, la deuxième aux colonnes du bloc résultant de la première ou inversement. La liste de transformées remplaçable Sr est de taille fixe Nr=1 et initialisée de la façon suivante : Sr = {DCT8xDCT8} La liste Sr peut être modifiée, comme précédemment décrit à l'aide de transformées comprises 15 dans une banque de transformées Bt, de taille Nt=2, comprenant les transformées suivantes : BT = {DCT8xDCT8, IDxDST7} On a donc par conséquence une liste courante Sc contenant initialement les transformées suivantes : Sc = Sf + Sr = {DCT2xDCT2, DCT8xDST7, DST7xDCT8, DST7xDST7, DCT8xDCT8} Le procédé selon l'invention consiste d'abord à évaluer les transformées de la banque. Les 20 indicateurs de performance IP des deux transformées de la banque Bt sont calculés, et sont stockés dans une mémoire BUFO. La valeur d'indicateur de performance IP attribuée à la transformée d'indice i pour un bloc n est noté nz. Dans cet exemple, l'indicateur est basé sur un nombre de coefficients nuls dans le bloc courant. Un score yn,i est calculé en lissant les valeurs d'IP de chaque transformée de la façon suivante : 25 nz',i si n = 0 YnI - 10.9 * Yn-ti + 0.1 * nzmi si n> 0 Dans cet exemple, les transformées de la banque BT DCT8xDCT8 et IDxDST7 sont classées par score croissant dans la liste Si. 3064870 24 En T2, on remet en cause la liste Sc. Un critère de décision est appliqué sur les scores des transformées contenues dans la liste Si. Dans la suite on suppose que DCT8xDCT8 correspond à l'indice 1 et IDxDST7 à l'indice 2. On évalue tout d'abord la différence de scores entre la DCT8xDCT8 et l'IDxDST7 : 5 àYn - Yn,i Yn,2 Une décision est prise en en fonction des valeurs de cette différence de score. Le signe de Ayn donne une indication claire sur la connpaction d'énergie apportée par les deux transformées. Si cette différence est négative, alors c'est la DCT8xDCT8 qui compacte mieux l'énergie sur un nombre plus réduits de coefficients significatifs. Si cette différence est positive, alors c'est l'inverse et c'est 10 l'IDxDST7 qui est la plus performante. Afin, d'éviter un phénomène d'oscillation, deux seuils a et b sont considérés lors du choix de SO : a. Si Ayn b, alors SO = Si[2] = {IDxDST7}. avec a, b réels distincts. 15 Il en résulte que la transformée de la liste Sr n'est remise en cause que si l'autre transformée apporte une amélioration suffisante, de façon à éviter un phénomène d'oscillation. On ne choisit donc pas toujours la transformée classée la première dans la listeSi. Côté décodeur, on considère le traitement d'un bloc résidu courant Res'-rdn] avec n numéro du bloc dans l'image. On met en oeuvre l'étape de compétition de transformées sur le résidu Res[n], à partir 20 de la liste Sc. On choisit la transformée de Sc qui minimise le coût débit-distorsion J = D + 2.*R et on met en oeuvre les étapes de sélection T1 et de décision T2 déjà décrites pour le décodage afin de mettre éventuellement à jour la liste courante Sc. L'objectif de l'expérimentation est de montrer qu'un changement de liste courante Sc de 25 transformées basé sur le nombre de coefficients significatifs améliore les performances de compression. Pour les blocs 4x4, le coût débit-distorsion et la norme-zéro du résidu transformé et quantifié sont extraits, ce pour toutes les transformées de la liste courante et de la banque. 3064870 25 Le calcul de l'indicateur de performance et la prise de décision se font tels que décrit aux étapes 5 et 6 du procédé de décodage. Les seuils pour la prise de décision sont les suivants : a = 0.5,b = -0.44. 5 En relation avec la Figure 9, on illustre l'évolution de l'indicateur de performance, ainsi que les changements de la liste de transformées Sc applicables au cours du codage de plusieurs images consécutives. La séquence utilisée illustre un cas d'usage réel, représentant du contenu naturel sur les 620 premiers blocs et du contenu généré par ordinateur sur les blocs restants. La différence de score Ay, renseigne sur la transformée qui compresse la mieux l'énergie. Sur les 620 premiers blocs, 10 l'indicateur de performance ne permet pas de distinguer globalement une transformée plus efficace qu'une autre. Par conséquent les changements de liste de transformées Sc sont localisés. Sur les blocs suivants, pour lesquels le contenu change radicalement, la différence de scores devient positive, la transformée IDxDST7 devient la meilleure option entre les blocs 620 et 1500. Dans une deuxième partie de l'expérimentation, les choix de l'encodeur ont été simulés. Pour chaque 15 bloc, la transformée minimisant le coût débit-distorsion dans la liste courante Sc est sélectionnée. La Erreur ! Source du renvoi introuvable, permet de comparer l'évolution de coûts débit-distorsion lissés, dans trois cas : - Si Sr est une liste fixe et vaut {DCT8xDCT8} ; - Si Sr est une liste fixe et vaut {IDxDST7} ; 20 - Si Sr est une liste modifiable et sa composition remise en cause comme décrit dans l'invention. Sur les 600 premiers blocs, l'invention améliore localement les performances. Bien que l'invention ne permette pas systématiquement de sélectionner la transformée optimale pour un bloc, elle apporte néanmoins une amélioration des performances par rapport au cas selon lequel la liste Sr est 25 fixée à {DCT8xDCT8} uniquement. A partir du bloc 620 jusqu'au bloc 1200, l'invention choisit d'utiliser Sr-{IDxDST7}. L'amélioration des performances est d'environ 15% par rapport à la liste Sr-{DCT8xDCT8}. 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 « entité », utilisés 30 dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant matériel, 3064870 26 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'entité concerné(e). 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 « entité », utilisés 5 dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant 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'entité concerné(e). En relation avec la Figure 11, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique selon l'invention. Le dispositif 100 met en 10 oeuvre le procédé de codage selon l'invention qui vient d'être décrit en relation avec la Figure 1. Par exemple, le dispositif 100 comprend une unité de traitement 110, équipée d'un processeur pl, et pilotée par un programme d'ordinateur Pgl 120, stocké dans une mémoire 130 et mettant en oeuvre le procédé de selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur Pgi 120 sont par 15 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 dispositif 100 comprend une machine de calcul reprogrannnnable ou une machine de calcul dédiée, apte à et configurée pour : 20 - Transformer TRANS un bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste Sc de Nc transformées d'un ensemble de Nt transformées, avec Nc REVENDICATIONS1. Procédé de décodage d'au moins une image numérique (Ij), à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc, dit bloc courant (C') : - Décodage des coefficients du bloc courant à partir de données codées; - Transformation (D5) du bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste (Sc) de Nc transformées, dites applicables; - Reconstruction (D8) de l'image à partir du bloc décodé transformé ; caractérisé en ce que le procédé comprend en outre les étapes suivantes : - Evaluation (Ti.) des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur; - Remise en cause (T2) des transformées de la liste de transformées (Sc) applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur. 2. Procédé de codage d'au moins une image numérique, ladite image (4) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc courant, de dimensions prédéterminées : - Transformation (E3, E3') du bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste de Nc transformées d'un ensemble de Nt transformées ; - Encodage (E9) du bloc transformé destiné à produire des données codées représentatives du bloc transformé ; - Insertion des données codées dans un train binaire représentatif de l'image codée ; caractérisé en ce que le procédé comprend en outre : - Décodage du bloc encodé ; - Transformation inverse du bloc décodé à l'aide de la transformée sélectionnée ; - Evaluation (Ti.) d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur; 3064870 31 - Remise en cause (T2) des transformées de la liste de transformées (Sc) applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues du décodeur. 3. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape d'évaluation comprend un calcul d'un score par transformée à partir du au moins un indicateur de performance, un classement des transformées au moins à l'aide des scores calculés et selon un ordre de performance décroissante et en ce que l'étape de remise en cause comprend une formation d'une sous-liste à partir des transformées les'mieux classées selon au moins une règle prédéterminée et un remplacement de transformées d'au moins une sous-liste de la liste transformées applicables (Sc) par la sous-liste (SO). 4. Procédé selon la revendication 3, caractérisé en ce que l'étape de classement prend en outre en compte les scores des transformées pour une pluralité de blocs précédemment traités. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que la liste de transformées applicables au bloc courant comprend une sous-liste (Sf) de Nf transformées fixes et une sous-liste (Sr) de (Nr) transformées remplaçables, avec Nc = Nf + Nr et en ce que la banque de transformées comprend au moins la sous-liste de transformées remplaçables. 6. Procédé selon l'une des revendications 3 à 5, caractérisé en ce que la liste de transformées applicables étant de longueur fixe égale à Nc, la sous-liste formée est de longueur fixe. 7. Procédé selon la revendication 3 ou 4, caractérisé en ce que l'étape de remise en cause compare les scores des transformées à au moins un seuil prédéterminé et en ce que la sous-liste est formée des transformées qui satisfont au moins un critère lié à ce au moins un seuil. 8. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comprend une étape de validation de la remise en cause de liste de transformées applicables mettant en oeuvre une information codée (bv) représentative d'une autorisation ou d'une interdiction de remise en cause de la liste de transformées applicables pour le bloc suivant. 9. Procédé de codage selon la revendication 8, caractérisé en ce que l'étape de validation comprend une étape d'évaluation des transformées de la banque de transformées selon un critère débit-distorsion, une étape de classement des transformées évaluées selon ce critère et en ce que l'étape de validation compare le classement (Si') obtenu selon le critère débit-distorsion et le classement (Si) obtenu selon les scores calculés et valide la remise en cause en fonction d'un critère de similarité (CS) entre les deux classements. 31 3064870 32 10. Procédé de décodage selon la revendication 8, caractérisé en ce que l'étape de validation comprend une lecture de ladite information codée et en ce que la validation de la remise en cause de la liste de transformées applicables dépend de la valeur de ladite information. 11. Dispositif de décodage (200) d'au moins une image numérique (Ij), à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs 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 : - Décoder (DEC) des coefficients d'un bloc courant à partir de données codées; - Transformer le bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste (Sc) de Nc transformées, dites applicables; - Reconstruire (REC) l'image à partir du bloc décodé transformé ; caractérisé en ce qu'elle est en outre apte à: Evaluer (EVAL) des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur; et Remettre en cause (CHANG) des transformées de la liste de transformées (Sc) applicables en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur. 12. Dispositif (100) de codage d'au moins une image numérique, ladite image (Ij) é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 : Transformer (TRANS) un bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste de Nc transformées dites applicables ; Encoder (COD) le bloc transformé destiné à produire des données codées représentatives du bloc transformé ; caractérisé en ce qu'elle est en outre apte à : Décoder (DEC) les données codées représentatives du bloc transformé ; Transformer (TRANS) le bloc décodé à l'aide de la transformée sélectionnée ; 32 3064870 33 Evaluer (EVAL) des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur; - Remettre en cause (CHANG) de transformées de la liste de transformées (Sc) applicables en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues du décodeur. 13. Signal portant un train binaire (STR) comprenant des données codées représentatives d'au moins une image (Ic), ladite image étant divisée en blocs de pixels traités dans un ordre défini, les données codées comprenant, pour un bloc courant, une information représentative d'un index d'une transformée appliquée à ce bloc dans une liste de transformées prédéterminé, caractérisé en ce que les données codées comprennent en outre une information (bv) représentative d'une autorisation ou d'une interdiction d'une remise en cause de ladite liste pour le bloc suivant, et en ce que, sur réception dudit signal, un décodeur est apte 'à valider une remise en cause de ladite liste en fonction de la valeur de ladite information. 14. Equipement terminal d'utilisateur (TU, TU') caractérisé en ce qu'il comprend un dispositif de décodage (200) d'au moins une image numérique selon la revendication 11 et/ou un dispositif de codage (100) d'au moins une image numérique selon la revendication 12. 15. Programme d'ordinateur (Pg1, Pg2) comprenant des instructions pour la mise en oeuvre du procédé de selon l'une des revendications 1 à 10, lorsqu'il est exécuté par un processeur. 33