Brevet FR3035761A1 — publié le 20161104

PROCÉDÉ DE CODAGE ET DE DÉCODAGE D'IMAGES, DISPOSITIF DE CODAGE ET DE DÉCODAGE D'IMAGES ET PROGRAMMES D'ORDINATEUR CORRESPONDANTS Domaine de l'invention La présente invention se rapporte de manière générale au domaine du traitement d'images, et plus précisément au codage et au décodage d'images numériques et de séquences d'images numériques. 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. Art antérieur Les codeurs vidéo actuels (MPEG, H.264, HEVC, ...) utilisent une représentation par blocs de la séquence vidéo. Les images sont découpées en blocs, lesquels sont susceptibles d'être redécoupés de façon récursive. Puis chaque bloc est codé par prédiction intra-images ou inter-images. Ainsi, certaines images sont codées par prédiction spatiale (prédiction Intra), d'autres images sont également codées par prédiction temporelle (prédiction Inter) par rapport à une ou plusieurs images de référence codées-décodées, à l'aide d'une compensation en mouvement connue par l'homme de l'art. Pour chaque bloc est codé un bloc résidu, encore appelé résidu de 3035761 2 prédiction, correspondant au bloc original diminué d'une prédiction. Les blocs résidus sont transformés à l'aide d'une opération mathématique de transformée, puis quantifiés à l'aide d'une opération mathématique de quantification par exemple de type scalaire. Dans un souci de simplification, 5 l'opération mathématique de transformée sera appelée par la suite `transformée' et l'opération mathématique de quantification sera appelée par la suite 'quantification'. Des coefficients sont obtenus à l'issue de l'étape de quantification. Ils sont ensuite parcourus dans un ordre de lecture qui dépend du mode de 10 codage qui a été choisi. Dans la norme HEVC, par exemple, l'ordre de lecture est dépendant de la prédiction réalisée et peut être effectué dans l'ordre « horizontal », « vertical » ou « diagonal ». A l'issue du parcours précité, une liste monodimensionnelle de coefficients est obtenue. Les coefficients de cette liste sont alors codés sous 15 forme de bits par un codage entropique dont le but est de coder les coefficients sans perte. Les bits obtenus après codage entropique sont inscrits dans un signal flux de données qui est destiné à être transmis au décodeur. De façon connue en soi, un tel signal comprend : 20 - les coefficients quantifiés contenus dans la liste précitée, - des informations représentatives du mode de codage utilisé, en particulier: - le mode de prédiction (prédiction Intra, prédiction Inter, prédiction par défaut réalisant une prédiction 25 pour laquelle aucune information n'est transmise au décodeur (« en anglais « skip »)) ; - des informations précisant le type de prédiction (orientation, image de référence, ...) ; - le type de découpage du bloc ; 30 - les informations de mouvement si nécessaire ; - etc. Une fois que le flux a été reçu par le décodeur, le décodage est fait image par image, et pour chaque image, bloc par bloc. Pour chaque bloc, les 3035761 3 éléments correspondants du flux sont lus. La quantification inverse et la transformée inverse des coefficients des blocs sont effectuées pour produire le résidu de prédiction décodé. Puis, la prédiction du bloc est calculée et le bloc est reconstruit en ajoutant la prédiction au résidu de prédiction décodé. 5 La technique de codage/décodage classique qui vient d'être décrite permet certes des améliorations des performances de codage. Selon le contexte vidéo, elle permet notamment : - une amélioration de la qualité des images pour un débit donné du réseau utilisé pour transmettre les images, 10 - un réduction du débit de transmission des images pour un critère de qualité d'images préalablement fixé. Toutefois, de telles performances de codage ne sont actuellement pas optimisées et ont vocation à encore être améliorées, en particulier du point de vue de la minimisation du coût débit/distorsion ou bien du choix du meilleur 15 compromis efficacité/complexité, qui sont des critères de performance de codage bien connus de l'homme du métier. En particulier, une telle optimisation pourrait concerner la transformée précitée. Il s'agit classiquement d'une transformée linéaire qui, lorsqu'elle s'applique à un bloc résidu contenant un nombre déterminé de K pixels (1.1), 20 permet d'obtenir un ensemble de K coefficients. Dans le domaine du codage vidéo, les transformées en cosinus discrète, DCT (abréviation anglaise de « Discrete Cosine Transform »), ou les transformées en sinus discrète, DST (abréviation anglaise de « Discrete Sine Transform »), sont généralement privilégiées, notamment pour les raisons 25 suivantes : - ce sont des transformées bloc et il est ainsi facile de manipuler les blocs indépendamment les uns des autres, - elles sont efficaces pour compacter l'information dans le domaine fréquentiel, là où l'opération de réduction de débit opère. 30 De façon classique, une telle transformée peut être de type séparable ou non séparable. S'agissant d'une transformée de type séparable, il est procédé, selon un premier cas, à l'application d'une première transformée Al à un bloc résidu x de 3035761 4 K pixels qui sont organisés sous forme d'une matrice MxN, où Al est une matrice de données de taille MxM et M, N sont des entiers naturels supérieurs ou égaux à 1. A l'issue de l'application de cette première transformée est obtenu un premier bloc transformé Al.x. 5 Une opération de transposition t est ensuite appliquée sur le bloc transformé Al.x. A l'issue de cette transposition est obtenu un bloc transposé (Al.x)t. Enfin, une deuxième transformée Ac est appliquée sur le bloc transposé (Al.x)t, où Ac est une matrice de données de taille NxN. A l'issue de l'application 10 de cette deuxième transformée est obtenu un deuxième bloc transformé X de K=NxM pixels, tel que : X = Ac - (Al - x)t Selon un deuxième cas, l'ordre d'application des transformées Al et Ac 15 est inversé. Le deuxième bloc transformé X de K=NxM pixels s'écrit alors de la façon suivante : X= Al - (Ac - xt)t Le bloc transformé X obtenu selon ce deuxième cas est similaire au bloc transformé X obtenu selon le premier cas, à une transposition près. Dans le cas particulier où le bloc résidu x est carré, c'est-à-dire M=N, les 20 matrices Al et Ac ont la même taille. Au décodage, de façon connue en soi, sont appliquées des transformées inverses de celles mentionnées ci-dessus. Ainsi, si la transformée a été appliquée selon le premier cas, la transformée inverse correspondante permet d'obtenir le bloc résidu x à l'aide du 25 calcul suivant : x = A1-1- . (Ac-1- . X)t Ainsi, si la transformée a été appliquée selon le deuxième cas, la transformée inverse correspondante permet d'obtenir le bloc résidu x à l'aide du calcul suivant : 30 x = (Ac-1- . (A1-1- . X)t )t 3 0 3 5 7 6 1 5 AI-1 et Ac-1 représentent les transformées inverses respectives des transformées Al et Ac. Elles permettent d'obtenir les valeurs du bloc résidu x à partir des valeurs du bloc transformé X. Les matrices Al-1 et Ac-1 sont appelées 5 communément matrices inverses de Al et Ac respectivement, dans le cas où les matrices sont choisies orthogonales elles correspondent aux matrices transposées de Al et Ac respectivement. S'agissant d'une transformée de type non séparable, elle s'écrit au codage comme la multiplication du bloc résidu x, mis sous la forme d'un vecteur 10 de dimension 1 xK, par une matrice A de taille KxK. Le bloc transformé X obtenu à l'issue de l'application de cette transformée s'écrit alors de la façon suivante : X = A - x Au décodage, la transformée inverse consiste à multiplier le bloc transformé X par la matrice inverse A-1 de A qui peut être la transposée de A, lorsque A est orthogonale. Une telle transformée inverse permet d'obtenir le 15 bloc résidu x suivant : x = A-1 - X Dans le domaine du codage vidéo, il a été récemment proposé, notamment dans la publication « Non-separable mode dependent transforms for Intra coding in HEVC, Adrià Arrufat et al. VCIP 2014 » d'adapter la 20 transformée au mode de prédiction choisi. Ainsi, dans le cadre d'une prédiction spatiale qui peut être mise en oeuvre selon trente-cinq modes de prédiction spatiale différents, une transformée est adaptée pour chaque mode de prédiction spatial, grâce à des mécanismes de classification et d'apprentissage d'une pluralité de transformées considérées. 25 Ainsi, pour chaque prédiction considérée, l'étape d'application de transformée est mieux adaptée à la nature des signaux résidu de prédiction et la performance de codage est améliorée selon les critères de distorsion pour un débit donné qui sont bien connus de l'homme de métier. Toutefois avec une telle approche, la quantité de transformées à ajouter 30 pour pouvoir mettre en oeuvre une telle adaptation a un impact sur les 3035761 6 ressources mémoire à utiliser à la fois au codeur qui doit stocker les transformées pour chacune des prédictions considérées, et au décodeur qui doit également connaître les transformées pour appliquer la transformée inverse de celle appliquée au codage. 5 Ainsi dans le cadre de blocs de dimension 8x8, en supposant qu'une transformée de type séparable est utilisée pour le codage Intra, la technique décrite dans la publication citée ci-dessus requiert le stockage de 8*8*2*35=4480 valeurs de coefficients transformés, où : - 8*8 est le nombre de valeurs requis pour chaque transformée, 10 - 2 représente les deux types de transformées, verticale (colonne) et horizontale (ligne) à appliquer, - 35 est le nombre de modes de prédiction spatiale (directions de prédiction) du standard HEVC. Toujours dans le cadre de blocs de dimension 8x8, en supposant qu'une 15 transformée de type non-séparable est utilisée pour le codage Intra, la technique décrite dans la publication citée ci-dessus requiert le stockage de 64*64*35=143360 valeurs de coefficients transformés, où : - 64*64 est le nombre de valeurs requis pour chaque transformée, - 35 est le nombre de modes de prédiction spatiale (directions de 20 prédiction) du standard HEVC. Il ressort ainsi clairement de l'art antérieur précité que les ressources mémoire nécessaires au codeur, comme au décodeur, pour stocker ces nombreuses transformées, sont trop importantes. 25 Objet et résumé de l'invention Un des buts de l'invention est de remédier à des inconvénients de l'état de la technique précité. A cet effet, un objet de la présente invention concerne un procédé de codage d'au moins une image découpée en blocs, mettant en oeuvre, pour un bloc 30 courant à coder de cette image : - une prédiction du bloc courant conformément à un mode de prédiction sélectionné parmi une pluralité de modes de prédiction prédéterminés, 3035761 7 - un calcul d'un bloc résidu de données représentatif d'une différence entre un bloc prédicteur obtenu à l'issue de la prédiction et le bloc courant, - une application d'une opération de transformée aux données du 5 bloc résidu, - un codage des données obtenues à la suite de l'opération de transformée. Un tel procédé de codage est remarquable en ce que la transformée associée au mode de prédiction sélectionné est stockée en association avec au 10 moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés. Une telle disposition permet d'associer une même transformée à au moins deux modes de prédiction différents parmi la pluralité de modes de prédiction prédéterminés, ce qui permet de réduire au moins par deux les 15 ressources mémoire du codeur en vue du stockage des matrices de transformée. Selon un premier exemple, un mode de prédiction prédéterminé est de type Intra. Dans le standard HEVC par exemple, il existe trente-cinq modes de prédiction prédéterminés qui représentent respectivement trente-trois directions 20 de prédiction différentes complétées par deux modes visant à prédire les surfaces continues (mode DC) ou les gradients de luminosité (mode Planar). Selon un deuxième exemple, un mode de prédiction prédéterminé est de type Inter. Un mode de prédiction Inter prédéterminé est associé aux deux paramètres de prédiction suivants : 25 - l'index du vecteur de mouvement qui décrit le mouvement entre les pixels du bloc courant et les pixels d'un bloc qui a déjà été codé ou bien qui a déjà été codé puis décodé et qui appartient à une autre image que l'image courante, - l'index de cette autre image. 30 Selon un mode de réalisation particulier, préalablement à l'application de l'opération de transformée, est mis en oeuvre au moins un déplacement des données du bloc résidu, chaque donnée considérée étant déplacée à l'intérieur du bloc résidu tout en conservant ses plus proches voisines. 3035761 8 Compte tenu du fait qu'une transformée est associée au mode de prédiction sélectionné et à au moins un autre mode de prédiction appartenant à la pluralité de modes de prédiction prédéterminés, une telle disposition permet d'adapter les coefficients du bloc résidu courant avant d'appliquer la 5 transformée, de façon à obtenir un bloc de données transformé qui, pour le mode de prédiction sélectionné, soit similaire au bloc de données transformé qui aurait été obtenu en ayant sélectionné l'autre mode de prédiction et en ayant appliqué directement la transformée sur le bloc résidu obtenu selon cet autre mode de prédiction. 10 Ainsi, un tel déplacement de données du bloc résidu avant l'application de la transformée permet, pour un débit donné, de ne pas entraîner de dégradations des données codées du bloc courant selon le mode de prédiction sélectionné. En outre, un tel déplacement de données a pour avantage de ne pas 15 introduire une trop grande complexité calculatoire au codeur. Selon un autre mode de réalisation particulier, le type de déplacement de données dans le bloc résidu est fonction du mode de prédiction sélectionné. Une telle disposition permet d'appliquer un déplacement optimal des pixels qui tienne compte du mode de prédiction sélectionné. 20 Selon un premier mode de réalisation, un type de déplacement de données est une transposition, à savoir un échange des coordonnées lignes et colonnes d'une donnée du bloc résidu courant. Selon un deuxième mode de réalisation, un type de déplacement de données est un miroir, à savoir un échange des colonnes ou lignes du bloc 25 résidu courant. Selon un troisième mode de réalisation, un type de déplacement de données est une combinaison de la transposition et du miroir, c'est-à-dire : - soit l'application d'un déplacement de type transposition suivie de l'application d'un déplacement de type miroir aux données du bloc résidu 30 courant, - soit l'application d'un déplacement de type miroir suivie de l'application d'un déplacement de type transposition aux données du bloc résidu courant. 3035761 9 Selon encore un autre mode de réalisation particulier, une pluralité d'opérations de transformée différentes étant associée au mode de prédiction sélectionné, il est procédé, suite au déplacement des données dont le type est fonction du mode de prédiction sélectionné, à: 5 - une application de chacune desdites opérations de transformée aux données déplacées, - un codage des données obtenues à l'issue de chacune desdites opérations de transformée, - une sélection des données codées qui optimisent un critère de 10 performance de codage prédéterminé. Une telle disposition permet de tirer profit de la réduction des ressources mémoire obtenues au codeur en proposant de stocker un choix plus important de transformées que dans l'art antérieur. Il en résulte un codage de l'image plus précis et donc plus performant. 15 Les différents modes ou caractéristiques de réalisation précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de codage tel que défini ci-dessus. L'invention concerne également un dispositif de codage d'au moins une image découpée en blocs, comprenant un circuit de traitement qui, pour un bloc 20 courant à coder de cette image, est agencé pour : - prédire le bloc courant conformément à un mode de prédiction sélectionné parmi une pluralité de modes de prédiction prédéterminés, - calculer un bloc résidu de données représentatif d'une différence entre un bloc prédicteur obtenu à l'issue de la prédiction et le bloc courant, 25 - appliquer une opération de transformée aux données du bloc résidu, - coder les données obtenues à la suite de l'opération de transformée. Le dispositif de codage selon l'invention est remarquable en ce que le 30 circuit de traitement est agencé pour stocker l'opération de transformée associée audit mode de prédiction sélectionné, en association avec au moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés. 3035761 10 Un tel dispositif de codage est notamment apte à mettre en oeuvre le procédé de codage précité. L'invention concerne aussi un procédé de décodage d'un signal de 5 données représentatif d'au moins une image découpée en blocs, mettant en oeuvre, pour un bloc courant à décoder : - une détermination, dans le signal de données : - de données représentatives d'un bloc résidu courant associé au bloc courant à décoder, 10 - d'un mode de prédiction du bloc courant à décoder, un tel mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés, - une prédiction du bloc courant conformément au mode de prédiction déterminé, 15 - une application d'une opération de transformée aux données représentatives dudit bloc résidu, - une reconstruction du bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de l'opération de transformée. 20 Un tel procédé de décodage est remarquable en ce que l'opération de transformée associée au mode de prédiction déterminé est stockée en association avec au moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés. Selon un mode de réalisation particulier, à la suite de l'application de 25 ladite opération de transformée, est mis en oeuvre au moins un déplacement des données du bloc résidu transformé, chaque donnée considérée étant déplacée à l'intérieur du bloc résidu transformé tout en conservant ses plus proches voisines. Selon un autre mode de réalisation particulier, le type de déplacement de 30 données est fonction du mode de prédiction déterminé dans le signal de données. Selon encore un autre mode de réalisation particulier, une pluralité d'opérations de transformée différentes étant associée au mode de prédiction 303 5 761 11 déterminé dans le signal de donnés, il est procédé, préalablement au déplacement des données dont le type est fonction du mode de prédiction déterminé dans le signal de données, à : - une détermination d'un indicateur représentatif de l'opération de 5 transformée à appliquer, - une application aux données représentatives du bloc résidu de l'opération de transformée dont l'indicateur a été déterminé. L'invention concerne également un dispositif de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, comprenant 10 un circuit de traitement qui, pour un bloc courant à décoder, est agencé pour : - déterminer, dans ledit signal de données : - des données représentatives d'un bloc résidu courant associé au bloc courant à décoder, - un mode de prédiction du bloc courant à décoder, le mode 15 de prédiction appartenant à une pluralité de modes de prédiction prédéterminés, - prédire le bloc courant conformément au mode de prédiction déterminé, - appliquer une opération de transformée aux données 20 représentatives du bloc résidu, - reconstruire le bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de l'opération de transformée. Le dispositif de décodage selon l'invention est remarquable en ce que le 25 circuit de traitement est agencé pour stocker l'opération de transformée associée au mode de prédiction déterminé, en association avec au moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés. Un tel dispositif de décodage est notamment apte à mettre en oeuvre le procédé de décodage précité. 30 L'invention concerne encore un programme d'ordinateur comportant des instructions pour mettre en oeuvre l'un des procédés de codage et de décodage selon l'invention, lorsqu'il est exécuté sur un ordinateur. 3035761 12 Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. 5 L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre de l'un des procédés de codage ou de décodage selon l'invention, tels que décrits ci-dessus. L'invention vise également un support d'enregistrement lisible par un 10 ordinateur sur lequel est enregistré un programme d'ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre du procédé de codage ou de décodage selon l'invention, tels que décrits ci-dessus. Le support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un 15 moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une clé USB ou un disque dur. D'autre part, le support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via 20 un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter 25 ou pour être utilisé dans l'exécution du procédé de codage ou de décodage précité. Brève description des dessins D'autres caractéristiques et avantages apparaîtront à la lecture d'un 30 mode de réalisation préféré décrit en référence aux figures dans lesquelles: - la figure 1 représente les étapes du procédé de codage selon l'invention, 3035761 13 - la figure 2 représente un mode de réalisation d'un dispositif de codage selon l'invention, - la figure 3A représente un exemple de bloc résidu courant à coder, 5 - la figure 3B représente différents types de déplacement de pixels d'un bloc résidu courant, - la figure 4 représente un graphique qui illustre la relation entre trente-trois modes de prédiction Intra HEVC et leurs directions angulaires correspondantes, 10 - la figure 5A représente un premier exemple de regroupement de différents modes de prédiction Intra en fonction de la symétrie de leurs angles correspondants, - la figure 5B représente un deuxième exemple de regroupement de différents modes de prédiction Intra en fonction de la symétrie de leurs 15 angles correspondants, - la figure 6 représente un exemple de regroupement de différents modes de prédiction Inter en fonction de la symétrie de leurs angles correspondants, - la figure 7 représente un mode de réalisation d'un dispositif de 20 décodage selon l'invention, - la figure 8 représente les principales étapes du procédé de décodage selon l'invention. Description détaillée de la partie codage 25 Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de codage selon l'invention est utilisé pour coder une image ou une séquence d'images selon un flux binaire proche de celui qu'on obtient par un codage conforme par exemple à la norme HEVC. Dans ce mode de réalisation, le procédé de codage selon l'invention est 30 par exemple implémenté de manière logicielle ou matérielle par modifications d'un codeur initialement conforme à la norme HEVC. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes Cl à C9 telles que représentées à la figure 1. 3035761 14 Selon le mode de réalisation de l'invention, le procédé de codage selon l'invention est implémenté dans un dispositif de codage CO représenté à la figure 2. Comme illustré en figure 2, un tel dispositif codeur comprend : 5 - une entrée ENT_C pour recevoir une image courante à coder, - un circuit de traitement CT_C pour mettre en oeuvre le procédé de codage selon l'invention, le circuit de traitement CT_C contenant : - une mémoire MEM_C comprenant une mémoire tampon MT_C, 10 - un processeur PROC_C piloté par un programme d'ordinateur PG_C, - une sortie SOR C pour délivrer un flux codé contenant les données obtenues à l'issue du codage de l'image courante. A l'initialisation, les instructions de code du programme d'ordinateur 15 PG_C sont par exemple chargées dans une mémoire RAM, MR_C, avant d'être exécutées par le circuit de traitement CT_C. Le procédé de codage représenté sur la figure 1 s'applique à toute image courante ICI fixe ou bien faisant partie d'une séquence de L images IC1, ICI,..., ICI (11_) à coder. 20 Au cours d'une étape Cl représentée à la figure 1, il est procédé, de façon connue en soi, au partitionnement d'une image courante ICI en une pluralité de blocs B1, B2, Bi,..., Bs (1 par exemple de taille 4x4 pixels. Une telle étape de partitionnement est mise en oeuvre par un module logiciel de partitionnement MP_C représenté sur la figure 2, lequel module est piloté par le 25 processeur PROC_C. Il convient de noter qu'au sens de l'invention, le terme « bloc » signifie unité de codage (de l'anglais « coding unit »). Cette dernière terminologie est notamment utilisée dans la norme HEVC « ISO/IEC/23008-2 Recommandation ITU-T H.265 High Efficiency Video Coding (HEVC) ». 30 En particulier, une telle unité de codage regroupe des ensembles de pixels de forme rectangulaire ou carrée, encore appelés blocs, macroblocs, ou bien des ensembles de pixels présentant d'autres formes géométriques. 3035761 15 Lesdits blocs B1, B2, Bi,..., Bs sont destinés à être codés selon un ordre de parcours prédéterminé, qui est par exemple du type lexicographique. Cela signifie que les blocs sont codés les uns après les autres, de la gauche vers la droite. 5 D'autres types de parcours sont bien sûr possibles. Ainsi, il est possible de découper l'image ICI en plusieurs sous-images appelées slices et d'appliquer indépendamment un découpage de ce type sur chaque sous-image. Il est également possible de coder non pas une succession de lignes, comme expliqué ci-dessus, mais une succession de colonnes. Il est également possible 10 de parcourir les lignes ou colonnes dans un sens ou dans l'autre. Chaque bloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles. Au cours d'une étape C2 représentée à la figure 1, le codeur CO sélectionne comme bloc courant un premier bloc à coder Bi de l'image ICI, tel 15 que par exemple le premier bloc B1. Au cours d'une étape C3 représentée à la figure 1, il est procédé à la prédiction du bloc courant Bi par des techniques connues de prédiction Intra et/ou Inter. A cet effet, le bloc Bi est prédit par rapport à au moins un bloc prédicteur conformément à un mode de prédiction MPs sélectionné parmi une 20 pluralité de modes de prédiction prédéterminés MP0, MP1,..., MPs,..., MPR où De façon connue en soi, le bloc Bi est prédit par rapport à une pluralité de blocs prédicteurs candidats. Chacun des blocs prédicteurs candidats est un bloc de pixels qui a été déjà codé ou bien codé puis décodé. De tels blocs 25 prédicteurs sont préalablement stockés dans la mémoire tampon MT_C du codeur CO telle que représentée à la figure 2. A l'issue de l'étape C3 de prédiction, un bloc prédicteur optimal BPopt est obtenu suite à une mise en compétition desdits modes de prédiction prédéterminés, par exemple par minimisation d'un critère débit distorsion bien 30 connu de l'homme du métier. Le bloc BPopt est considéré comme une approximation du bloc courant B. Les informations relatives à cette prédiction sont destinées à être inscrites dans un signal ou flux de données à transmettre à un décodeur. De telles informations comprennent notamment le type de 3035761 16 prédiction (Inter ou Intra), et le cas échéant, le mode de prédiction sélectionné MPs, le type de partitionnement du bloc courant si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur de déplacement utilisés dans le cas où un mode de prédiction Inter a été sélectionné. Ces informations sont 5 compressées par le codeur CO. Au cours d'une étape C4 représentée à la figure 1, il est procédé à la comparaison des données relatives au bloc courant Bi aux données du bloc prédicteur BPopt. Plus précisément, au cours de cette étape, il est procédé classiquement au calcul de la différence entre le bloc prédicteur obtenu BPopt et 10 le bloc courant B. Un ensemble de données, appelé bloc résidu Br;, est alors obtenu à l'issue de l'étape C4. Les étapes C3 et C4 sont mises en oeuvre par un module logiciel de codage prédictif PRED_C représenté sur la figure 2, lequel module est piloté 15 par le processeur PROC_C. Au cours d'une étape C5 représentée à la figure 1, le codeur CO de la figure 2 procède à la détermination d'une transformée du bloc résidu Br;. De façon connue en soi, une telle transformée est une transformée directe telle que par exemple une transformée en cosinus discrète de type DCT, une 20 transformée bloc optimisée en débit distorsion comme présenté dans la publication « Rate-distortion optimised transform competition for intra coding in HEVC », Adrià Arrufat, Pierrick Philippe, Olivier Déforges, IEEE VCIP, Dec 2014, ou encore une transformée en ondelettes du type DWT, pour produire un bloc transformé Bti. 25 Conformément à l'invention, chacun des modes de prédiction prédéterminés MPo, MP1,..., MPR est stocké dans la mémoire tampon MT _C de la figure 2, en association avec au moins une transformée prédéterminée. Selon un premier exemple, chaque mode de prédiction prédéterminé 30 MPo, MP1,..., MPs,..., MPR est stocké en association avec une seule transformée correspondante prédéterminée Tic, TR,c. Dans l'exemple représenté à la figure 2, pour un mode de prédiction considéré, par 3035761 17 exemple MPs, ce dernier est stocké en association avec une unique transformée, notée Ts,k, tel que 1:1icc. Ainsi, l'étape de détermination précitée C5 consiste à lire la transformée Ts,k qui est associée au mode de prédiction sélectionné MPs. 5 Selon un deuxième exemple, pour au moins un mode de prédiction prédéterminé qui est considéré dans la pluralité de modes de prédiction prédéterminés MPo, MP1,..., MPs,..., MPR, le mode de prédiction considéré est stocké en association avec plusieurs transformées prédéterminées. Dans l'exemple représenté à la figure 2, pour un mode de prédiction considéré, par 10 exemple MPs, ce dernier est stocké en association avec une pluralité de N transformées Ts,o, Ts,1,..., Ts,k,..., Ts,N-1, où N est un entier naturel et Ainsi, conformément à ce deuxième exemple, l'étape de détermination précitée C5 consiste à sélectionner une transformée parmi les N transformées Ts,o, Ts,1,..., Ts,wi, selon un critère de performance de codage 15 prédéterminé, par exemple : - par minimisation du critère débit/distorsion bien connu de l'homme du métier, - ou par minimisation uniquement du débit, - ou par minimisation uniquement de la distorsion, 20 - ou par minimisation du compromis efficacité/complexité bien connu de l'homme du métier, - ou par minimisation uniquement de l'efficacité, - ou par minimisation uniquement de la complexité. La transformée sélectionnée à l'issue de l'étape C5 est notée par 25 exemple Ts,k*, avec 0ic*N-1. En outre, conformément à l'invention, comme représenté sur la figure 2, ladite transformée Ts,k ou Ts,k* est stockée dans la mémoire tampon MT_C en association avec au moins un autre mode de prédiction prédéterminé MPu appartenant à la pluralité de modes de prédiction prédéterminés MPo, MP1,..., 30 MPu,..., MPR, avec 0t_JR-E1. Au cours d'une étape C6 représentée à la figure 1, il est procédé à la transformée du bloc résidu Br; à l'aide de la transformée Ts,c ou Ts,k*. Une telle 3035761 18 opération est effectuée par un module logiciel MTR_C de transformée, tel que représenté figure 2, lequel module est piloté par le processeur PROC_C. Au cours d'une étape C7 représentée à la figure 1, il est procédé à la quantification des données du bloc transformé Bti selon une opération classique 5 de quantification, telle que par exemple une quantification scalaire ou vectorielle. Un bloc Bq; de coefficients quantifiés est alors obtenu. L'étape C7 est effectuée au moyen d'un module logiciel de quantification MQ_C tel que représenté à la figure 2, lequel module est piloté par le processeur PROC_C. Sur la figure 1, l'étape de quantification C7 est représentée à la suite de 10 l'étape C6 d'application de transformée. Toutefois, l'étape C7 peut être intégrée à l'étape C6 qui est alors mise en oeuvre avec des nombres entiers incluant le facteur de quantification. De façon connue en soi, au cours d'une étape C8 représentée sur la figure 1, il est procédé au codage des données du bloc Bq. Un tel codage est 15 par exemple un codage entropique de type CABAC ("Context Adaptive Binary Arithmetic Coder" en anglais) ou bien encore un codage entropique de type arithmétique ou de Huffman. A l'issue de l'étape C8 sont obtenues des données codées d1, d2,...,dw,..., dv (1 ).A/V avec V entier naturel) associées au bloc courant B. 20 L'étape C8 est mise en oeuvre par module logiciel de codage MC_C représenté sur la figure 2, lequel module est piloté par le processeur PROC_C. Au cours d'une étape C9 représentée à la figure 1, il est procédé à la construction du signal ou flux de données F qui contient : - les données codées d1, dv obtenues à l'issue de 25 l'étape C8 précitée, - l'index IDX de la transformée Ts,k* qui a été sélectionnée à l'étape C5 dans le cas où le mode de prédiction MPs sélectionné est associé à une pluralité de N transformées Ts,o, Ts,1,..., Ts,k,..., Ts,N-1. L'index IDX peut être inscrit dans le flux, par exemple sous la forme d'un 30 code binaire. L'index IDX peut également être codé en relation avec des index préalablement émis lors du codage de l'image en cours, par exemple par un code différentiel, ou encore par combinaison de ces deux méthodes. 3035761 19 L'étape C9 est mise en oeuvre par module logiciel MCF de construction de signal de données, tel que représenté sur la figure 2, lequel module est piloté par le processeur PROC_C. Le signal de données F est ensuite délivré via la sortie SOR_C du 5 codeur CO de la figure 2, puis transmis par un réseau de communication (non représenté) à un terminal distant. Celui-ci comporte le décodeur DO représenté à la figure 4. De façon connue en soi, le signal de données F comprend en outre certaines informations encodées par le codeur CO, telles que le type de 10 prédiction (Inter ou Intra) appliqué à l'étape C3, et le cas échéant, le mode de prédiction sélectionné, l'index du bloc prédicteur obtenu BPopt obtenu à l'issue de l'étape C3, noté IBPopt, le type de partitionnement du bloc courant B; si ce dernier a été partitionné, l'indice d'image de référence et le vecteur de mouvement utilisés dans le mode de prédiction Inter. 15 Il est ensuite procédé au décodage du bloc résidu Br;. Un bloc résidu décodé BDr; est alors obtenu. Il est alors procédé à la construction du bloc décodé BD; en ajoutant au bloc prédicteur optimal BPopt le bloc résidu décodé BDr;. Il est à noter que le bloc décodé BD; est le même que le bloc décodé 20 obtenu à l'issue du procédé de décodage de l'image ICI qui sera décrit plus loin dans la description. Le bloc décodé BD; est ainsi rendu disponible pour être utilisé par le codeur CO de la figure 2. Les étapes de codage Cl à C9 qui viennent d'être décrites ci-dessus sont ensuite mises en oeuvre pour chacun des blocs B1, B2, ..., 13;,..., Bs à 25 coder de l'image courante ICI considérée, dans un ordre prédéterminé qui est par exemple l'ordre lexicographique. Conformément à un mode de réalisation de l'invention, en référence à la figure 1, il est procédé, préalablement à l'étape C5 de détermination d'une transformée, à une étape C40 d'au moins un déplacement des données du bloc 30 résidu 13n, chaque donnée considérée étant déplacée à l'intérieur du bloc résidu tout en conservant ses plus proches voisines. 3035761 20 L'étape C40 est mise en oeuvre par module logiciel de calcul CAL_C tel que représenté sur la figure 2, lequel module est piloté par le processeur P ROC_C. Selon un premier mode de réalisation, un type de déplacement de 5 données est une transposition, à savoir un échange des coordonnées lignes et colonnes d'une donnée du bloc résidu courant. Selon un deuxième mode de réalisation, un type de déplacement de données est un miroir, à savoir un échange des colonnes ou lignes du bloc résidu courant. Chaque donnée considérée dans le bloc résidu courant Br; est 10 ainsi déplacée à l'intérieur du bloc résidu tout en conservant ses plus proches voisines. Selon un troisième mode de réalisation, un type de déplacement de données est une combinaison de la transposition et du miroir, c'est-à-dire : - soit l'application d'un déplacement de type transposition suivie 15 de l'application d'un déplacement de type miroir aux données du bloc résidu courant, - soit l'application d'un déplacement de type miroir suivie de l'application d'un déplacement de type transposition aux données du bloc résidu courant. 20 En outre, selon un autre mode de réalisation de l'invention, le type de déplacement de données dans le bloc résidu Br; est fonction du mode de prédiction MPs sélectionné. On va maintenant décrire, en référence aux figures 1 à 3, un exemple de réalisation de l'invention dans le cas d'un codage HEVC de type Intra. 25 Dans cet exemple, le bloc courant 13; à coder, obtenu à l'issue de l'étape de partitionnement Cl de la figure 1 et sélectionné par le codeur à l'étape C2, est un bloc 4x4. Au cours de l'étape de prédiction C3 de la figure 1, il est procédé à la sélection d'un mode de prédiction Intra parmi plusieurs modes de prédiction 30 Intra disponibles qui, de façon connue en soi, sont définis chacun par une direction de prédiction prédéterminée. Dans le cas de la prédiction Intra proposée dans le standard HEVC, il existe trente-cinq modes de prédiction possibles DPI0, DPI1,..., DPI34, ce qui revient à déterminer trente-cinq blocs 3035761 21 prédicteurs candidats disponibles pour la prédiction du bloc courant B. Selon l'invention, l'étape C3 consiste à sélectionner, parmi les blocs prédicteurs candidats disponibles, le bloc prédicteur candidat qui minimise un critère de performance de codage réalisé conformément au procédé de la figure 1. Un tel 5 critère est par exemple: - le compromis débit-distorsion calculé entre le bloc courant Bi et chacun desdits blocs prédicteurs candidats disponibles, - ou la somme des valeurs absolues des différences entre le bloc courant Bi et chacun desdits blocs prédicteurs candidats disponibles. 10 Ce bloc candidat particulier est appelé bloc prédicteur optimal BPopt, lequel est donc associé à une direction de prédiction Intra optimale, par exemple la direction DPI22. Au cours de l'étape C4 de la figure 1, il est procédé au calcul de la différence entre le bloc courant Bi et le bloc prédicteur BPopt obtenu de manière 15 à obtenir le bloc résidu Br;. En référence à la figure 3A, le bloc résidu courant Br; comprend seize pixels pl à p16. Dans ce mode de réalisation, l'étape C40 de déplacement des données du bloc résidu est mise en oeuvre. Il s'agit par exemple dans cet exemple d'une rotation miroir. 20 Une telle rotation miroir présente l'avantage d'autoriser l'utilisation d'une même transformée pour au moins une autre des trente-cinq directions de prédiction, différente de la direction DPI22, ce qui permet de réduire la quantité de mémoire nécessaire au stockage des transformées. A quantité de mémoire équivalente, ceci permet réciproquement d'augmenter le nombre de 25 transformées proposées pour le codage d'un bloc donné. Un autre avantage de la rotation miroir est de ne pas induire de complexité car seul un changement des positions de pixels du bloc résidu est envisagé. En référence à la figure 3B, il existe huit types de déplacement possibles différents numérotés de 0 à 7 qui permettent à un pixel donné du bloc résidu Br; 30 de conserver ses pixels voisins. Par exemple, pour le pixel p7, ce dernier est toujours entouré des pixels p2, p3, p4, p6, p8, p10, p11 et p12. En outre, conformément à l'invention, chacun des huit types de déplacement est associé à une direction de prédiction Intra. Par exemple, la 3035761 22 rotation miroir de type 0 est associée à la direction de prédiction Intra DPI22 et la rotation miroir de type 5 est associée à la direction de prédiction Intra DPI6. Au cours de l'étape C40 de la figure 1, la rotation miroir de type 0 est appliquée au bloc résidu Br;, ce qui permet d'obtenir un bloc résidu modifié Brin 5 tel que celui représenté à la figure 3B et, qui, dans le cas présent, est le même que le bloc résidu Br;. Au cours de l'étape C5 de la figure 1, il est procédé à la détermination d'une transformée du bloc résidu Br;. Comme cela a été décrit plus haut dans la description, un mode de prédiction sélectionné, ici une direction de prédiction, 10 est associée préalablement à une transformée. Par exemple, en ce qui concerne les directions de prédiction DPI10 et DPI26 qui sont respectivement horizontale et verticale, ces dernières sont associées à une transformée issue d'un même ensemble de transformées modulo une transformée de type 4 intercalaire. 15 Plus particulièrement dans le mode de réalisation décrit ici, la détermination de transformée consiste à sélectionner une transformée T22,k* parmi une pluralité de N transformées T22,0,T22,1,.1-22,k,- - -, T22,N-1 préalablement stockées dans la mémoire MT_C du codeur CO de la figure 2, en association avec la direction de prédiction Intra DPI22. En outre, 20 conformément à l'invention, ladite pluralité de N transformées T22,0, T22,1,..., T22,k,..., T22,N-1 est également stockée en association avec la direction de prédiction Intra DPI6. Dans l'exemple décrit ici, cette sélection procède par estimation des coûts débit-distorsion obtenus par codage du bloc résidu courant modifié Brin 25 par chacune N transformées T22,0,T22,1,1-22,k,- - -, 1-22,N-1. Une telle estimation peut être obtenue par calcul exact du débit et de la distorsion. A cet effet, les opérations suivantes sont réalisées pour une transformée T22,k considérée : - calcul des coefficients transformés Xj,k associés à la transformée 30 T22,k à partir du produit matriciel des coefficients de la transformée T22,k ou par un algorithme de transformée rapide et des données du bloc résidu modifié Brin, 3035761 23 - quantification des coefficients obtenus par un opérateur de quantification, suivant un paramètre de quantification donné, pour obtenir les coefficients quantifiés X,,k, - codage des valeurs quantifiées obtenues, par exemple par 5 codage entropique, et comptage du nombre de bits utilisés pour le calcul du coût en débit, - calcul du signal résiduel quantifié par la transformée inverse r 122,k des coefficients quantifiés, - calcul de la distorsion entre le bloc résiduel modifié et le bloc 10 résiduel modifié quantifié par une mesure de distorsion, par exemple au sens quadratique, pour obtenir Dii REVENDICATIONS1. Procédé de codage d'au moins une image (ICj) découpée en blocs, mettant en oeuvre, pour un bloc courant (Bi) à coder de ladite image : - une prédiction (C3) du bloc courant conformément à un mode de prédiction (MPs) sélectionné parmi une pluralité de modes de prédiction prédéterminés, - un calcul (C4) d'un bloc résidu de données représentatif d'une différence entre un bloc prédicteur (BPopt) obtenu à l'issue de la prédiction et le bloc courant, - une application (C6) d'une opération de transformée aux données dudit bloc résidu, - un codage (C8) des données obtenues à la suite de ladite opération de transformée, ledit procédé de codage étant caractérisé en ce que ladite opération de transformée associée audit mode de prédiction sélectionné est stockée en association avec au moins un autre mode de prédiction de ladite pluralité. 2. Procédé de codage selon la revendication 1, mettant en oeuvre préalablement à l'application de ladite opération de transformée, au moins un déplacement (C40) des données du bloc résidu, chaque donnée considérée étant déplacée à l'intérieur du bloc résidu tout en conservant ses plus proches voisines. 3. Procédé de codage selon la revendication 2, dans lequel le type de déplacement de données dans le bloc résidu est fonction du mode de prédiction sélectionné. 4. Procédé de codage selon la revendication 3, dans lequel une pluralité d'opérations de transformée différentes étant associée au mode de prédiction sélectionné, il est procédé, suite au déplacement des données dont le type est fonction du mode de prédiction sélectionné, à: - une application de chacune desdites opérations de transformée aux données déplacées, 3035761 47 - un codage des données obtenues à l'issue de chacune desdites opérations de transformée, - une sélection des données codées qui optimisent un critère de performance de codage prédéterminé. 5 5. Dispositif (CO) de codage d'au moins une image (ICI) découpée en blocs, comprenant un circuit de traitement (CT_C) qui, pour un bloc courant (Bi) à coder de ladite image, est agencé pour : - prédire le bloc courant conformément à un mode de prédiction 10 sélectionné parmi une pluralité de modes de prédiction prédéterminés, - calculer un bloc résidu de données représentatif d'une différence entre un bloc prédicteur obtenu à l'issue de la prédiction et le bloc courant, - appliquer une opération de transformée aux données dudit bloc résidu, 15 - coder les données obtenues à la suite de ladite opération de transformée, ledit dispositif de codage étant caractérisé en ce que le circuit de traitement est agencé pour stocker ladite opération de transformée associée audit mode de prédiction sélectionné, en association avec au moins un autre mode de 20 prédiction de ladite pluralité. 6. Programme d'ordinateur comportant des instructions de code de programme pour l'exécution des étapes du procédé de codage selon l'une quelconque des revendications 1 à 4, lorsque ledit programme est exécuté sur 25 un ordinateur. 7. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé de codage selon l'une 30 quelconque des revendications 1 à 4, lorsque ledit programme est exécuté par un ordinateur. 3035761 48 8. Procédé de décodage d'un signal de données (F) représentatif d'au moins une image (1C1) découpée en blocs, mettant en oeuvre, pour un bloc courant (13;) à décoder : - une détermination (D3), dans ledit signal de données : 5 - de données représentatives d'un bloc résidu courant associé au bloc courant à décoder, - d'un mode de prédiction (MPs) du bloc courant à décoder, ledit mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés, 10 - une prédiction (D4) du bloc courant conformément au mode de prédiction déterminé (MPs), - une application (D7) d'une opération de transformée aux données représentatives dudit bloc résidu, - une reconstruction (D8) du bloc courant à l'aide d'un bloc 15 prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de ladite opération de transformée, ledit procédé de décodage étant caractérisé en ce que ladite opération de transformée associée audit mode de prédiction déterminé est stockée en association avec au moins un autre mode de prédiction de ladite pluralité. 20 9. Procédé de décodage selon la revendication 8, mettant en oeuvre à la suite de l'application de ladite opération de transformée, au moins un déplacement (D70) des données du bloc résidu transformé, chaque donnée considérée étant déplacée à l'intérieur du bloc résidu transformé tout en 25 conservant ses plus proches voisines. 10. Procédé de décodage selon la revendication 9, dans lequel le type de déplacement de données est fonction du mode de prédiction déterminé dans le signal de données. 30 11. Procédé de décodage selon la revendication 10, dans lequel une pluralité d'opérations de transformée différentes étant associée au mode de prédiction déterminé dans le signal de donnés, il est procédé, préalablement au 3035761 49 déplacement des données dont le type est fonction du mode de prédiction déterminé dans le signal de données, à : - une détermination d'un indicateur (IDX) représentatif de l'opération de transformée à appliquer, 5 - une application aux données représentatives dudit bloc résidu de l'opération de transformée dont l'indicateur a été déterminé. 12. Dispositif de décodage d'un signal de données (F) représentatif d'au moins une image (1C1) découpée en blocs, comprenant un circuit de traitement 10 (CT_D) qui, pour un bloc courant (13;) à décoder, est agencé pour : - déterminer, dans ledit signal de données : - des données représentatives d'un bloc résidu courant associé au bloc courant à décoder, - un mode de prédiction du bloc courant à décoder, ledit 15 mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés, - prédire le bloc courant conformément au mode de prédiction déterminé, - appliquer une opération de transformée aux données 20 représentatives dudit bloc résidu, - reconstruire le bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de ladite opération de transformée, ledit dispositif de décodage étant caractérisé en ce que le circuit de traitement 25 est agencé pour stocker ladite opération de transformée associée audit mode de prédiction déterminé, en association avec au moins un autre mode de prédiction de ladite pluralité. 13. Programme d'ordinateur comportant des instructions de code de 30 programme pour l'exécution des étapes du procédé de décodage selon l'une quelconque des revendications 8 à 11, lorsque ledit programme est exécuté sur un ordinateur. 3035761 50 14. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé de décodage selon l'une quelconque des revendications 8 à 11, lorsque ledit programme est exécuté par 5 un ordinateur. 10 15 20 25 30