Brevet FR3050858A1 — publié le 20171103

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 3050858 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. A l'issue d'une telle transformation, sont obtenus des blocs de coefficients, les coefficients de chaque bloc étant parcourus dans un ordre de 5 parcours déterminé, puis quantifiés à l'aide d'une opération mathématique de quantification par exemple de type scalaire. Des listes monodimensionnelles de coefficients sont obtenues à l'issue de la quantification. Dans un souci de simplification, l'opération mathématique de transformée sera appelée par la suite 'transformée' et l'opération mathématique 10 de quantification sera appelée par la suite 'quantification'. Les coefficients de cette liste sont alors codés sous 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. 15 De façon connue en soi, un tel signal comprend : - 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 20 Inter, prédiction par défaut réalisant une prédiction 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, ...) ; 25 - le type de découpage du bloc ; - 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 30 éléments correspondants du flux sont lus. La quantification inverse, l'opération de parcours 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 3050858 3 bloc est calculée et le bloc est reconstruit en ajoutant la prédiction au résidu de prédiction décodé. La technique de codage/décodage classique qui vient d'être décrite permet certes des améliorations des performances de codage. Selon le 5 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, - un réduction du débit de transmission des images pour un critère de qualité d'images préalablement fixé. 10 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 suivantes : 15 - 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. - elles disposent de méthodes d'implémentation rapides qui 20 requièrent de l'ordre M*log2(M) opérations, M étant le nombre de coefficients transformés. Les transformées DCT ou DST précitées sont implémentées de façon séparable. Une transformée séparable peut s'appliquer selon deux cas différents. 25 Selon un premier cas, il est procédé à l'application d'une première transformée Ac à un bloc résidu x composé de K pixels qui sont organisés sous forme d'une matrice MxN, où Ac 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 30 transformé Ac.x. Une opération de transposition t est ensuite appliquée sur le bloc transformé Ac.x. A l'issue de cette transposition est obtenu un bloc transposé 3050858 4 (Ac. x) t. Enfin, une deuxième transformée Al est appliquée sur le bloc transposé (Ac.x)t, où Al est une matrice de données de taille NxN. A l'issue de l'application de cette deuxième transformée est obtenu un deuxième bloc transformé X de 5 K=NxM pixels, tel que : X = Al - (Ac - x)t Selon un deuxième cas, l'ordre d'application des transformées Al et Ac est inversé. Le deuxième bloc transformé X de K=NxM pixels s'écrit alors de la 10 façon suivante : X= Ac - (Al - 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 matrices Al et Ac ont la même taille. 15 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 calcul suivant : 20 x = Ac-1- - (Al'- - Xt)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 : x = (A1-1- . (Ac-1- . X)t)t 25 Al-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 communément matrices inverses de Al et Ac respectivement, dans le cas où les 30 matrices sont choisies orthogonales elles correspondent aux matrices 3050858 5 transposées de Al et Ac respectivement. Outre les transformées de type séparable, il existe également des transformées de type non séparable, telles que par exemple la transformée de Karhunen-Loeve (KLT) qui est considérée comme fournissant une décorrélation 5 optimale des données d'un bloc considéré. Les transformées non séparables ont pour avantage de pouvoir exploiter des corrélations entre n'importe quelle paire (ou plus) de données à l'intérieur d'un bloc considéré, à la différence des transformées de type séparable qui peuvent seulement exploiter les corrélations entre données partageant soit la même ligne, soit la même colonne 10 d'un bloc considéré au travers des transformées qui Al et Ac qui agissent de façon indépendante. Une telle différence rend les transformées de type non séparable plus performantes que les transformées séparables, en particulier du point de vue de la concentration de l'énergie sur peu de coefficients et des performances de codage. En revanche, les transformées non séparables sont 15 très complexes en, ce qui les rend difficiles à implémenter dans les codeurs vidéo actuels. C'est la raison pour laquelle les transformées de type DCT ou DST restent actuellement privilégiées, d'autant plus qu'elles peuvent dans certains cas particuliers constituer une bonne approximation de la transformée KLT. 20 Une transformée de type non séparable s'écrit mathématiquement au codage comme la multiplication du bloc résidu x, mis sous la forme d'un vecteur 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 25 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 bloc résidu x suivant : x = A-1 - X Dans le domaine du codage vidéo, il a été proposé, notamment dans la 30 publication « Rate-distortion optimised transform competition for intra coding in 3050858 6 HEVC, Adrià Arrufat et al. VCIP 2014 » d'augmenter le nombre de transformées à sélectionner au codage. A cet effet : - pour les blocs de taille 4x4, seize transformées, optimisées préalablement selon un critère débit-distorsion bien connu de l'homme du 5 métier, sont provisionnées, - pour les blocs de taille 8x8, trente-deux transformées, optimisées préalablement selon le critère débit-distorsion sont provisionnées. Pour un bloc courant ayant une taille donnée, le codeur vidéo sélectionne la transformée qui minimise le critère débit-distorsion, en mettant en 10 compétition les transformées typiques, qu'elles soient de type DCT ou DST, et les transformées optimisées. Le codeur signale alors au décodeur la transformée qui a été sélectionnée. Le décodeur utilise la transformée inverse de celle appliquée au codeur. Dans ce document, il est proposé de sélectionner une transformée 15 optimale parmi deux types de transformées : les transformées de type séparable et les transformées de type non-séparable, telles que décrites plus haut. Une telle solution permet certes d'améliorer les performances de codage. Toutefois, la quantité de transformées à ajouter a un impact sur les ressources 20 mémoire à utiliser à la fois au codeur, mais également au décodeur qui doit connaître les transformées pour appliquer la transformée inverse de celle appliquée au codage. En outre, la mise en compétition des transformées proposées oblige à mettre en oeuvre un grand nombre d'opérations, telles que multiplications et 25 additions inhérentes aux produits matriciels. La complexité des calculs est par ailleurs augmentée en raison de la présence de transformées non séparables qui ne disposent pas, à priori, de méthodes d'implémentation rapides. Objet et résumé de l'invention 30 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 de données, mettant en 3050858 7 oeuvre, pour un bloc courant à coder de l'image, le bloc courant contenant M vecteurs lignes et N vecteurs colonnes de données, tel que IV12 et I\12, un traitement des données du bloc courant par application d'une transformée qui est sélectionnée selon un critère de performance de codage prédéterminé, 5 dans un ensemble comprenant au moins deux transformées, une transformée de l'ensemble mettant en oeuvre les opérations suivantes : - premier traitement de données appliqué sur les M ou N vecteurs du bloc courant, à l'issue duquel est obtenu un bloc de données traité, - deuxième traitement de données appliqué sur les N ou M 10 vecteurs du bloc de données traité, à l'issue duquel est obtenu un bloc de données transformé. Un tel procédé de codage est remarquable en ce qu'au moins une autre transformée de l'ensemble met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de données 15 du bloc courant, - soit uniquement un traitement des N vecteurs colonnes de données du bloc courant. Grâce à la prise en compte, en vue de la sélection d'une transformée, d'au moins une transformée qui s'applique soit uniquement sur les M vecteurs 20 lignes de données du bloc courant, soit uniquement sur les N vecteurs colonnes du bloc courant, les ressources mémoire au codeur sont avantageusement réduites. Une telle disposition permet également de réduire de façon non négligeable les calculs liés à la mise en compétition entre les différentes 25 transformées candidates de l'ensemble, selon le critère de performance de codage prédéterminé, de chacune des transformées proposées. La sélection de la transformée à appliquer est ainsi plus rapide. En outre, dans le cas où est sélectionnée une transformée s'appliquant soit uniquement sur les M vecteurs lignes de données du bloc courant, soit 30 uniquement sur les N vecteurs colonnes de données du bloc courant, plutôt qu'une transformée qui met en oeuvre deux traitements de données pour un bloc courant considéré, le traitement des données du bloc courant à l'aide de la transformée ainsi sélectionnée s'en trouve nettement accéléré. 3050858 8 Selon un autre mode de réalisation particulier, une transformée de l'ensemble, mettant en oeuvre soit uniquement un traitement des M vecteurs lignes du bloc courant, soit uniquement un traitement des N vecteurs colonnes du bloc courant, est une transformée trigonométrique. 5 Par rapport aux transformées mettant en oeuvre un premier et un deuxième traitement de données, telles qu'utilisées classiquement dans les normes de codage/décodage actuelles, une telle disposition permet d'obtenir le meilleur compromis entre, d'une part, une amélioration significative du gain en codage et, d'autre part, une faible complexité de calculs sur les données du 10 bloc qui lui-même résulte de la mise en oeuvre de la sélection de la transformée selon la mise en compétition de transformées particulières selon l'invention. Selon un autre mode de réalisation, si est sélectionnée une transformée mettant en oeuvre soit uniquement un traitement des M vecteurs lignes de données du bloc courant, soit uniquement un traitement des N vecteurs 15 colonnes de données du bloc courant, le choix du traitement est fonction de la direction de prédiction des données du bloc courant. Une telle disposition permet avantageusement de conditionner le choix de l'unique traitement de type ligne ou de type colonne à appliquer aux données du bloc courant, à la direction de prédiction choisie pour prédire les 20 données du bloc courant. Ainsi, ladite transformée sélectionnée est adaptée de façon optimale au mode de prédiction choisi pour le bloc courant, tel que notamment le mode Intra. C'est-à-dire que pour un débit donné, une telle adaptation présente l'avantage de ne pas entraîner de dégradations des données codées du bloc 25 courant selon le mode de prédiction choisi. 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 30 image découpée en blocs, comprenant un circuit de traitement qui, pour un bloc courant à coder de l'image, le bloc courant contenant M vecteurs lignes et N vecteurs colonnes de données, tel que I\/12 et I\12, est agencé pour traiter des données du bloc courant par application d'une transformée qui est sélectionnée 3050858 9 selon un critère de performance de codage prédéterminé, dans un ensemble comprenant au moins deux transformées, une transformée de l'ensemble mettant en oeuvre les opérations suivantes : - premier traitement de données appliqué sur les M ou N vecteurs 5 du bloc courant, à l'issue duquel est obtenu un bloc de données traité, - deuxième traitement de données appliqué sur les N ou M vecteurs du bloc de données traité, à l'issue duquel est obtenu un bloc de données transformé. Le dispositif de codage selon l'invention est remarquable en ce qu'au 10 moins une autre transformée de l'ensemble met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de données du bloc courant, - soit uniquement un traitement des N vecteurs colonnes de données du bloc courant. 15 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 données représentatif d'au moins une image découpée en blocs, mettant en oeuvre, pour un bloc courant à décoder de l'image, le bloc courant contenant M 20 vecteurs lignes et N vecteurs colonnes de données, tel que I\/12 et I\12, ce qui suit : - détermination, dans le signal de données : - d'un bloc courant de données codées associé au bloc courant à décoder, 25 - d'un indicateur d'une transformée à appliquer aux données du bloc courant de données codées, - traitement des données codées du bloc courant par application aux données codées de la transformée associée à l'indicateur déterminé, une telle transformée étant sélectionnée dans un ensemble de transformées 30 comprenant au moins deux transformées, une transformée de l'ensemble mettant en oeuvre les opérations suivantes : 3050858 10 - premier traitement de données appliqué sur les M ou N vecteurs du bloc courant, à l'issue duquel est obtenu un bloc de données traité, - deuxième traitement de données appliqué sur les N 5 ou M vecteurs du bloc de données traité, à l'issue duquel est obtenu un bloc de données transformé. Un tel procédé de décodage est remarquable en ce qu'au moins une autre transformée de l'ensemble met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de données 10 codées du bloc courant, - soit uniquement un traitement des N vecteurs colonnes de données codées du bloc courant. Selon un mode de réalisation particulier, une transformée de l'ensemble, mettant en oeuvre soit uniquement un traitement des M vecteurs lignes du bloc 15 courant de données codées, soit uniquement un traitement des N vecteurs colonnes du bloc courant de données codées, est une transformée trigonométrique. Selon un autre mode de réalisation particulier, si à la suite de la détermination de l'indicateur de la transformée à appliquer aux données codées 20 du bloc courant, est sélectionnée une transformée mettant en oeuvre soit uniquement un traitement des M vecteurs lignes de données codées du bloc courant, soit uniquement un traitement des N vecteurs colonnes de données codées du bloc courant, le choix du traitement est fonction de la direction de prédiction des données codées du bloc courant. 25 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 décodage tel que défini ci-dessus. 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 30 un circuit de traitement qui, pour un bloc courant à décoder de l'image, le bloc courant contenant M vecteurs lignes et N vecteurs colonnes de données, tel que I\/12 et I\12, est agencé pour : - déterminer, dans le signal de données : 3050858 11 - un bloc courant de données codées associé au bloc courant à décoder, - un indicateur d'une transformée à appliquer aux données du bloc courant de données codées, 5 - traiter des données codées du bloc courant par application aux données codées de la transformée associée à l'indicateur déterminé, la transformée étant sélectionnée dans un ensemble de transformées comprenant au moins deux transformées, une transformée de l'ensemble mettant en oeuvre les opérations suivantes : 10 - premier traitement de données appliqué sur les M ou N vecteurs du bloc courant, à l'issue duquel est obtenu un bloc de données traité, - deuxième traitement de données appliqué sur les N ou M vecteurs du bloc de données traité, à l'issue 15 duquel est obtenu un bloc de données transformé. Le dispositif de décodage selon l'invention est remarquable en ce qu'au moins une autre transformée de l'ensemble met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de données codées du bloc courant, 20 - soit uniquement un traitement des N vecteurs colonnes de données codées du bloc courant. Un tel dispositif de décodage est notamment apte à mettre en oeuvre le procédé de décodage précité. L'invention concerne encore un programme d'ordinateur comportant des 25 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. 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 30 dans n'importe quelle autre forme souhaitable. L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur, ce programme 3050858 12 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 ordinateur sur lequel est enregistré un programme d'ordinateur, ce programme 5 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 moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de 10 circuit microélectronique, une clé USB, ou un moyen d'enregistrement magnétique, par exemple 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 un câble électrique ou optique, par radio ou par d'autres moyens. Le 15 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 ou pour être utilisé dans l'exécution du procédé de codage ou de décodage 20 précité. Brève description des dessins D'autres caractéristiques et avantages apparaîtront à la lecture d'un mode de réalisation préféré décrit en référence aux figures dans lesquelles: 25 - la figure 1 représente les étapes du procédé de codage selon l'invention, - la figure 2 représente un mode de réalisation d'un dispositif de codage selon l'invention, - la figure 3 représente un exemple de bloc courant à 30 coder/décoder, - la figure 4 représente un mode de réalisation d'un dispositif de décodage selon l'invention, 3050858 13 - la figure 5 représente les étapes du procédé de décodage selon l'invention. Description détaillée de la partie codage 5 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 10 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 à C7 telles que représentées à la figure 1. Selon le mode de réalisation de l'invention, le procédé de codage selon 15 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 : - une entrée ENT_C pour recevoir une image courante à coder, - un circuit de traitement CT_C pour mettre en oeuvre le procédé 20 de codage selon l'invention, le circuit de traitement CT_C contenant : - une mémoire MEM_C comprenant une mémoire tampon MT_C, - un processeur PROC_C piloté par un programme d'ordinateur PG_C, 25 - une sortie SOR C pour délivrer un signal ou 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 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. 30 Le procédé de codage représenté sur la figure 1 s'applique à toute image courante ICS fixe ou bien faisant partie d'une séquence de L images IC1, ICS,..., ICS (11_) à coder. 3050858 14 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 ICS en une pluralité de blocs B1, B2, Bi, BF (1F), un bloc courant choisi dans cette pluralité contenant M vecteurs lignes et N vecteurs colonnes de données, tel 5 que IV12 et I\12. Une telle étape de partitionnement est mise en oeuvre par un dispositif de partitionnement MP_C représenté sur la figure 2, lequel dispositif est piloté par le 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 10 notamment utilisée dans la norme HEVC « ISO/IEC/23008-2 Recommandation ITU-T H.265 High Efficiency Video Coding (HEVC) ». En particulier, une telle unité de codage regroupe des ensembles de pixels de forme rectangulaire ou carrée, encore appelés blocs ou macroblocs. Une telle unité de codage pourrait, dans une norme future, regrouper 15 également des ensembles de pixels présentant d'autres formes géométriques. Lesdits blocs B1, B2, BF 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, puis du haut vers le bas. 20 D'autres types de parcours sont bien sûr possibles. Ainsi, il est possible de découper l'image ICS 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 25 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 13; de l'image ICS, tel 30 que par exemple le premier bloc B1. Un exemple d'un tel bloc est représenté sur la figure 3. Il contient par exemple : 3050858 15 - M=8 vecteurs lignes de données, tels que un premier vecteur ligne M1 de quatre données d1, d2, d3, d4, un deuxième vecteur ligne M2 de quatre données d5, d6, d7, ds, un troisième vecteur ligne M3 de quatre données d9, d10, d11, d12, un quatrième vecteur ligne M4 de quatre données d13, d14, d15, 5 di6, un cinquième vecteur ligne M5 de quatre données d17, d18, d19, d20, un sixième vecteur ligne M6 de quatre données d21, d22, d23, d24, un septième vecteur ligne M7 de quatre données d25, d26, d27, d28, un huitième vecteur ligne M8 de quatre données d2o, d30, d31, d32, - et N=4 vecteurs colonnes, tels que un premier vecteur colonne 10 N1 de huit données d1, d5, dg, d13, d17, d21, d25, d29, un deuxième vecteur colonne N2 de huit données d2, d6, d1o, d14, d18, d22, d26, d30, un troisième vecteur colonne N3 de huit données d3, d7, d11, d15, d19, d23, d27, d31, un quatrième vecteur colonne N4 de huit données d4, ds, d12, d16, deo, d24, d28, d32. Au cours d'une étape C3 représentée à la figure 1, le codeur CO procède 15 à la sélection d'une transformée parmi un ensemble E de transformées stocké au préalable dans la mémoire tampon MT_C du codeur CO de la figure 2. Selon l'invention, l'ensemble E comprend au moins deux transformées To et T1, telles que: - l'une des au moins deux transformées, par exemple To, met en 20 oeuvre les opérations suivantes : - premier traitement de données appliqué sur les M ou N vecteurs du bloc courant Bi, à l'issue duquel est obtenu un bloc de données traité le, - deuxième traitement de données appliqué sur les N ou 25 M vecteurs du bloc de données traité le, à l'issue duquel est obtenu un bloc de données transformé Bti, - au moins une autre parmi les au moins deux transformées de l'ensemble E, ici T1, met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de 30 données du bloc courant, - soit uniquement un traitement des N vecteurs colonnes de données du bloc courant. 3050858 16 La sélection de la transformée To ou T1 est mise en oeuvre selon un critère de performance de codage prédéterminé, par exemple : - par minimisation du critère débit/distorsion bien connu de l'homme du métier, 5 - ou par minimisation uniquement du débit, - ou par minimisation uniquement de la distorsion, - ou par prise en compte de la complexité engendrée par la complexité de calcul de la transformée lorsqu'elle est sélectionnée, ladite complexité étant pondérée avec le 10 critère débit/distorsion précité. On rappelle que dans un contexte de codage vidéo, la complexité est définie par exemple par le comptage du nombre d'opérations mathématiques (notamment addition, multiplication, décalage binaire) impliquées pour le calcul de la transformée des données du bloc courant B. 15 Dans l'exemple décrit ici, on entend par données, les pixels du bloc courant B. Il convient toutefois de noter qu'on entend également par données, les pixels d'un bloc prédit obtenu à l'aide d'une prédiction du bloc courant Bi par rapport à un bloc prédicteur qui est sélectionné suite à une mise en compétition 20 de différents modes de prédiction inter, intra ou autres prédéterminés, par exemple par minimisation d'un critère débit distorsion. La transformée To est composée d'un couple de transformées constitué d'une transformée primaire Do et d'une transformée secondaire Co. Selon un premier mode de réalisation : 25 - la transformée primaire Do est une matrice 4x4 qui s'applique sur les M=8 vecteurs lignes du bloc courant Bi, de façon à obtenir un bloc courant traité 13°;=Do.Bit, où t représente la transposée du bloc Bi, - la transformée secondaire Co est une matrice 8x8 qui s'applique sur les N=4 vecteurs colonnes du bloc courant traité le, de façon à obtenir un 30 bloc courant transformé BTi=Co.(e)t. Selon une variante de ce premier mode de réalisation : 3050858 17 - la transformée primaire Do est une matrice 8x8 qui s'applique sur les N=4 vecteurs colonnes du bloc courant I3i, de façon à obtenir un bloc courant traité B°;=D0.13; , - la transformée secondaire Co est une matrice 4x4 qui s'applique 5 sur les M=8 vecteurs lignes du bloc courant traité le, de façon à obtenir un bloc courant transformé BTi=Co.(e)t. Selon un deuxième mode de réalisation, les transformées Co et Do sont appliquées au travers d'une implémentation rapide par un algorithme rapide qui peut prendre la forme de papillons (butterfly diagram en anglais). Cela vaut 10 notamment pour les transformées trigonométriques, comme décrit dans la publication Algebraic Signal Processing Theory: Cooley-Tukey Type Algorithms for DCTs and DSTs, IEEE transactions on Signal Processing, Avril 2008. Conformément à ce deuxième mode de réalisation, le bloc transformé courant BT; est obtenu en moins d'opérations arithmétiques qu'en appliquant 15 successivement les transformées primaire et secondaire Do et Co sous forme de produit matriciel. En outre, selon l'invention, la transformée primaire Do est par exemple de type optimisée en débit distorsion conformément au critère RDOT (abréviation anglaise de « Rate-Distorsion Optimized Transform »), 20 conformément à la publication O. G. Sezer et al., "Sparse Orthonormal Transforms for Image Compression", IEEE ICIP, pp. 149-152, 2008. Selon un mode de réalisation de l'invention, la transformée T1 de l'ensemble E est une transformée trigonométrique. Selon un autre mode de réalisation de l'invention, dans le cas où le bloc 25 courant 13; est prédit conformément à un mode de prédiction donné, Intra par exemple, qui correspond donc à une direction de prédiction donnée : - si la transformée To est sélectionnée en tant que transformée optimale T* à l'issue de l'étape C3, l'ordre dans lequel sont traités soit d'abord les M vecteurs lignes puis les N vecteurs colonnes du bloc courant I3i, soit 30 d'abord les N vecteurs colonnes puis les M vecteurs lignes du bloc courant 13; est fonction de la direction de prédiction des données du bloc courant qui est associée au mode de prédiction donné, 3050858 18 - si la transformée T1 est sélectionnée en tant que transformée optimale T* à l'issue de l'étape C3, le choix de traiter soit les M vecteurs lignes, soit les N vecteurs colonnes du bloc courant Bi est fonction de la direction de prédiction des données du bloc courant qui est associée au mode de prédiction 5 donné. Au cours d'une étape C4 représentée sur la figure 1, il est procédé à l'application de la transformée sélectionnée T* au bloc courant B. A l'issue de l'étape C4 est obtenu un bloc de données transformé BTi. Une telle opération est effectuée par un dispositif MTR_C de calcul de 10 transformée, tel que représenté sur la figure 2, lequel dispositif est piloté par le processeur PROC_C. Au cours d'une étape C5 représentée à la figure 1, il est procédé à la quantification des données du bloc transformé BT; selon une opération classique de quantification, telle que par exemple une quantification scalaire ou 15 vectorielle. Un bloc Bq; de coefficients quantifiés est alors obtenu. L'étape C5 est mise en oeuvre par un dispositif de quantification MQ_C tel que représenté à la figure 2, lequel dispositif est piloté par le processeur P ROC_C. De façon connue en soi, au cours d'une étape C6 représentée sur la 20 figure 1, il est procédé au codage des données du bloc Bq. Un tel codage est 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 C6 sont obtenues des données codées associées au bloc courant B. 25 L'étape C6 est mise en oeuvre par un dispositif de codage MC_C représenté sur la figure 2, lequel dispositif est piloté par le processeur P ROC_C. Au cours d'une étape C7 représentée à la figure 1, il est procédé à la construction d'un signal ou flux de données 4) qui contient les données codées 30 du bloc courant Bi obtenues à l'issue de l'étape C6 précitée. L'étape C7 est mise en oeuvre par un dispositif MCF de construction de signal de données, tel que représenté sur la figure 2, lequel dispositif est piloté par le processeur PROC_C. 3050858 19 Le signal de données 4) est ensuite délivré via la sortie SOR_C du codeur CO de la figure 2. Un tel signal est soit stocké dans la mémoire tampon MT_C du codeur CO de la figure 2, soit transmis par un réseau de communication (non représenté) à un terminal distant. Celui-ci comporte le décodeur DO 5 représenté à la figure 4. De façon connue en soi, le signal de données 4) comprend en outre certaines informations encodées par le codeur CO, telles que le type de prédiction (Inter ou Intra) qui a été éventuellement appliqué, et le cas échéant, le mode de prédiction sélectionné, l'index du bloc prédicteur sélectionné, 10 l'indice d'image de référence et le vecteur de mouvement utilisés dans le mode de prédiction Inter, un index IT* associé à la transformée T* appliquée au cours de l'étape C4 précitée. Il est ensuite procédé classiquement au décodage du bloc B. Un bloc décodé BD; est alors obtenu. Il est à noter que le bloc décodé BD; est le même 15 que le bloc décodé obtenu à l'issue du procédé de décodage de l'image ICS 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 à C7 qui viennent d'être décrites ci-dessus sont ensuite mises en oeuvre pour chacun des blocs B1, B2, ..., 13;,..., BF à 20 coder de l'image courante ICS considérée, dans un ordre prédéterminé qui est par exemple l'ordre lexicographique. On va maintenant décrire différentes configurations possibles d'ensembles de transformées. Il est par exemple considéré que le codeur CO de la figure 2 dispose 25 d'un ensemble de deux transformées pour chaque mode de prédiction proposé et pour chaque taille de bloc. Dans ce contexte, et conformément à la publication « Mode-dependent transform competition in HEVC », Adrià Arrufat et al., Image Processing (ICIP), IEEE ICIP 2015, pp.1598-1602, le codeur CO peut ainsi, au cours de l'étape C3 précitée, mettre en compétition une pluralité 30 de transformées par mode de prédiction. Ainsi par exemple, pour un bloc courant B; de taille 4x4 et pour une prédiction donnée, par exemple le mode de prédiction Intra n°6 du standard 3050858 20 HEVC, l'ensemble E comprend deux transformées To et T1 qui sont mises en compétition au cours de l'étape C3 de la figure 1. Selon un premier mode de réalisation de cette configuration, et comme déjà décrit plus haut, la transformée To est composé d'une paire de 5 transformées primaire Do et secondaire Co, qui sont par exemple de même type, à savoir chacune une DST de type VII. Les coefficients de chacune des transformées Co et Do s'expriment ainsi sous la forme de l'équation ci-dessous, à un facteur multiplicatif près : 2 n- ( si,'k = 7 sin -9 - (n + 1)(2k + 1)) 10 où n est un indice spatial (abscisse), tel que 1:1113, et k est un indice de fréquence (ordonnée), tel que 1:1ic3. Les coefficients de chacune des transformées Co et Do obtenues peuvent approximés et exprimés sous la forme, par exemple, des nombre entiers ci-dessous, après avoir été chacun multipliés par un facteur multiplicatif égal à 27 : 29 55 74 84 74 74 0 -74 84 -29 -74 55 55 -84 74 -29 15 Une matrice de ce type est considérée quasi orthogonale, ce qui implique avantageusement que son inverse est sa transposée. A ce titre, le produit d'une telle matrice par sa transposée donne une matrice ne comportant sur chacune de ses lignes que des termes négligeables sauf un, 20 significativement plus important que les autres (par exemple un facteur 100). Selon ce premier mode de réalisation, la transformée T1 est quant à elle une transformée de type optimisée en débit distorsion conformément au critère RDOT précité. La transformée T1 est représentée par exemple sous la forme de 25 nombres entiers suivants, représentés sur 8 bits : 33 55 74 81 61 73 9 -84 99 -31 -63 38 3050858 21 39 -83 82 -34 La transformée T1 est composée : - d'une transformée D1 de type optimisée en débit distorsion conformément au critère RDOT, laquelle s'applique de préférence sur les M=4 vecteurs lignes du bloc résidu courant Br; issu de la prédiction du bloc courant 5 13; selon le mode de prédiction Intra n°6 du standard HEVC, de façon à obtenir un bloc courant traité Bli=Ti.Brit, où t représente la transposée du bloc résidu courant Br;, - d'une matrice identité ID de taille 4x4 qui s'applique de préférence sur les N=4 vecteurs colonnes du bloc courant traité 131i, de façon à 10 obtenir un bloc courant transformé BTi=1D.(B1i)t. La composition de la transformée T1 tient aussi compte du fait que la direction de prédiction du mode de prédiction n°6 est essentiellement horizontale. De façon connue en soi, la matrice identité ID se présente sous la forme 15 suivante, à un facteur de normalisation près : : : : - : : : : ..... - .. De ce fait, le bloc courant transformé BT; peut s'écrire sous la forme : BTi = (T1. Brit)t Ce qui revient à : BTi = Bri - Ti: De façon particulièrement avantageuse, le nombre d'opérations 20 arithmétiques n'est donc ici lié qu'à l'application d'une transformée de taille conforme au nombre de colonnes du bloc courant B. Comme indiqué dans le tableau comparatif ci-dessous, il ressort donc que la complexité calculatoire engendrée suite à l'application de la transformée ID = 3050858 22 T1 se limite à sept opérations arithmétiques par pixels, une telle complexité étant : - beaucoup moins élevée que celle engendrée suite à l'application d'une transformée de type produit de deux matrices, notée TPM, qui nécessite 5 quatorze opérations arithmétiques, - un peu moins élevée que celle engendrée suite à l'application de la transformée To composée de deux mêmes transformées trigonométriques DST-VII, qui nécessite huit opérations arithmétiques. Bloc courant Transformée Nombre NB1 Nombre NB2 NB1+NB2 Nombre Nombre d'opérations par pixels de d'additions de pixels multiplications du bloc courant 4x4 T1 64 48 112 16 7 4x4 To (DST-VII) 40 88 128 16 8 4x4 TPM 128 96 224 16 14 10 Les performances de codage qui utilisent l'ensemble de transformées E composé, selon l'invention, des transformées To et T1, sont comparées avec celles utilisant un ensemble de transformées composé conformément à l'état de l'art, noté EEA, qui est par exemple composé de la transformée To et d'une 15 transformée T10 qui est elle-même composée d'une paire de transformées primaire D10 et secondaire C10, par exemple conjointement optimisées selon un critère RDOT. Les transformées C10 et D10 se présentent respectivement sous la forme des matrices suivantes : 38 57 72 79 90 56 -20 -67 66 -50 -69 67 47 -85 76 -30 20 0 -1 7 127 127 6 2 0 -6 89 91 -4 -3 91 -89 6 3050858 23 La comparaison des performances de codage est mise en oeuvre en relation avec le bloc courant Bi de taille 4x4 et pour le mode de prédiction Intra n°6 du standard HEVC. La comparaison est évaluée par exemple à l'aide d'une mesure la 5 compacité dans le plan distorsion/parcimonie, conformément à la publication de Sezer citée plus haut. A cet effet, sur un ensemble TestSet de signaux résiduels d'images, est mesurée la quantité J suivante qui doit être la plus faible possible : J(À) = 11Br, - T,f14,112 + Â11/3q,110 = D + Â1'? u vETestSet u vETestSet telle que : 10 - Br, est un bloc résiduel courant qui est collecté sur un grand ensemble d'images variées, - Bq, est le bloc résiduel courant quantifié par seuillage obtenu après application de la transformée considérée Tu sur le bloc résiduel courant Bru, tel que u={0,1,10}, 15 - II.110 représente la norme zéro, c'est-à-dire le nombre de coefficients non-nuls du bloc Bq, résiduel courant quantifié par seuillage, - À. est un opérateur lagrangien de pondération qui règle la contrainte de débit de transmission, - R est le débit de transmission du bloc Bq, résiduel courant 20 quantifié par seuillage, - D est la distorsion du bloc Bq, résiduel courant quantifié par seuillage, - G est le nombre de blocs résiduels considérés, - K est le nombre de pixels de chaque bloc résiduel. 25 Le tableau ci-dessous résume les valeurs de R, D et J qui sont obtenues pour chacun des ensembles E et EEA proposés dans l'exemple ci-dessus. Ensemble de transformées R D J E=T0, T1 0.4037 2.1448 8.6034 EEA=To, Tlo 0.4043 2.1419 8.6103 3050858 24 Il est constaté qu'il existe un faible écart de performance entre l'ensemble E et l'ensemble EEA au bénéfice, pour l'ensemble E, d'une complexité calculatoire moindre, puisque la transformée T1 nécessite sept opérations par pixel, alors que la transformée T10 nécessite quatorze opérations 5 par pixel. Selon un deuxième mode de réalisation de la configuration précitée, l'ensemble E comprend la transformée T0 précitée et un autre type de transformée T1 que celle mentionnée plus haut, la transformée T1 étant encore une transformée optimisée en débit distorsion conformément au critère RDOT. 10 Dans ce deuxième mode de réalisation, la transformée T1 est une transformée trigonométrique discrète DTT (abréviation anglaise de « Discrete Trigonometric Transforms »). La transformée T1 est composée : - d'une transformée D1 de type optimisée en débit distorsion 15 conformément au critère RDOT, laquelle s'applique sur par exemple les M=4 vecteurs lignes du bloc résidu courant Sri, de façon à obtenir un bloc courant traité Bli=Ti.Brit, où t représente la transposée du bloc résiduel courant Sri, - d'une matrice identité ID de taille 4x4 qui s'applique sur les N=4 vecteurs colonnes du bloc courant traité Wh de façon à obtenir un bloc courant 20 transformé BTFID.(Bli)t. Selon ce deuxième mode de réalisation, la transformée D1 optimisée selon le critère RDOT est une transformée DCT-V qui s'exprime sous la forme suivante : 48 68 68 68 68 60 -22 -87 68 -22 -87 60 68 -87 60 -22 25 De façon particulièrement avantageuse, le nombre d'opérations arithmétiques associé à la transformée T1 n'est donc ici lié qu'à l'application d'une transformée de taille conforme au nombre de colonnes du bloc courant B. Les performances de codage qui utilisent l'ensemble de transformées E 30 composé, selon le deuxième mode de réalisation de l'invention, des 3050858 25 transformées To et T1, sont comparées avec celles utilisant un ensemble EEA de transformées composé conformément à l'état de l'art, qui est par exemple composé de la transformée To et d'une transformée T20 qui est elle-même composée d'une paire de transformées primaire D20 et secondaire C20, qui sont 5 par exemple chacune trigonométrique et conjointement optimisées selon un critère RDOT. La transformée primaire D20 optimisée est une transformée DST-VII déjà représentée plus haut dans la description. La transformée secondaire C20 optimisée est par exemple une 10 transformée DCT-IV qui peut s'exprimer à l'aide d'une formule ou bien être exprimée en valeurs entières sur huit bits comme ci-dessous : DCT-IV 89 75 50 18 75 -18 -89 -50 50 -89 18 75 18 -50 75 -89 15 La comparaison des performances de codage est mise en oeuvre de la même manière que dans le premier mode de réalisation. Le tableau ci-dessous résume les valeurs de R, D et J qui sont obtenues pour chacun des ensembles E et EEA proposés selon ce deuxième mode de réalisation. 20 Ensemble de transformées R D J E=T0, T1 0.4045 2.1464 8.6187 EEA=T0, T20 0.4186 2.1028 8.8012 Il est constaté que les performances de codage sont bien meilleures en utilisant l'ensemble E au bénéfice d'une complexité calculatoire moindre puisque le nombre d'opérations arithmétiques nécessité par la transformée T1 25 représente environ la moitié du nombre d'opérations arithmétiques nécessité par la transformée T20. La configuration de l'ensemble E de transformées qui a été décrite ci- dessus est bien entendu modulable, en particulier en fonction du mode de prédiction choisi pour prédire le bloc courant. Ainsi, pour des modes de 3050858 26 prédiction verticaux, la transformée T1 est plutôt composée de la façon suivante : - une matrice identité ID de taille 4x4 qui s'applique de préférence sur les M=4 vecteurs lignes du bloc résidu courant Br;, de façon à obtenir un 5 bloc courant traité Bli=ID.(Bri)t, - une transformée D1 de type optimisée en débit distorsion conformément au critère RDOT, laquelle s'applique de préférence sur les M=4 vecteurs colonnes du bloc courant traité Wh de façon à obtenir un bloc courant transformé BTi=Ti.(Brit)t. 10 De façon particulièrement avantageuse, le nombre d'opérations arithmétiques n'est donc ici lié qu'à l'application d'une transformée de taille conforme au nombre de lignes du bloc courant B. Il va également de soi que l'ensemble E de transformées peut comprendre plus de deux transformées. Différents exemples d'ensembles E de 15 transformées qui permettent d'obtenir de bons compromis en termes de complexité calculatoire/ performances de codage, sont listés ci-dessous : - E= (To, T1, T2), tel que To= (DST-VII, DST-VII), T1= (ID, DCT-V) et T2= (ID, DST-VI) ; - E= (To, T1, T2, T3, T5), tel que To= (DST-VII, DST-VII), T1= (DCT- 20 IV, DST-VII), T2= (ID, DCT-II), T3= (DCT-VI, DCT-VI), T4= (ID, DST-1V) ; - E= (To, T1, T2), tel que To= (DST-VII, DST-VII), T1= (DCT-V, ID) et T2= (DCT-V, DCT-VII) ; - E= (To, T1, T2, T3, T5), tel que To= (DST-VII, DST-VII), T1= (DST-IV, DCT-III), T2= (DCT-V, ID), T3= (DCT-V, DCT-IV), T4=(DCT-VI, DCT-V). 25 Description détaillée de la partie décodage Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de décodage selon l'invention est utilisé pour décoder un signal ou flux de données représentatif d'une image ou d'une séquence 30 d'images qui est apte à être décodé par un décodeur conforme à l'une quelconque des normes de décodage vidéo actuelles ou à venir. 3050858 27 Dans ce mode de réalisation, le procédé de décodage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un tel décodeur. Le procédé de décodage selon l'invention est représenté sous la forme 5 d'un algorithme comportant des étapes D1 à D7 telles que représentées à la figure 5. Selon ce mode de réalisation, le procédé de décodage selon l'invention est implémenté dans un dispositif de décodage ou décodeur DO représenté à la figure 4. 10 Comme illustré en figure 4, un tel dispositif décodeur comprend : - une entrée ENT_D pour recevoir le signal de données ou flux courant 4) à décoder, - un circuit de traitement CT_D pour mettre en oeuvre le procédé de décodage selon l'invention, le circuit de traitement CT_D contenant : 15 - une mémoire MEM_D comprenant une mémoire tampon MT_D, - un processeur PROC D piloté par un programme d'ordinateur PG_D, - une sortie SOR D pour délivrer une image courante reconstruite 20 contenant les données obtenues à l'issue du décodage selon le procédé de l'invention. A l'initialisation, les instructions de code du programme d'ordinateur PG_D sont par exemple chargées dans une mémoire RAM, MR_D, avant d'être exécutées par le circuit de traitement CT_D. 25 Le procédé de décodage représenté sur la figure 5 s'applique à un signal ou flux de données 4) représentatif d'une image courante ICS à décoder qui est fixe ou qui appartient à une séquence d'images à décoder. A cet effet, des informations représentatives de l'image courante ICS à décoder sont identifiées dans le signal de données 4) reçu à l'entrée ENT_D du 30 décodeur DO et tel que délivré à l'issue du procédé de codage de la figure 1. En référence à la figure 5, au cours d'une étape D1, il est procédé, de façon connue en soi, à la détermination dans le signal 4) des blocs codés 3050858 28 associés à chacun des blocs B1, B2, Bi,..., BF codés précédemment conformément à l'ordre lexicographique précité. Une telle étape de détermination D1 est mise en oeuvre par un dispositif d'identification MI_D d'analyse de flux, tel que représenté à la figure 4, lequel 5 est piloté par le processeur PROC_D. D'autres types de parcours que celui mentionné ci-dessus sont bien sûr possibles et dépendent de l'ordre de parcours choisi au codage. Au cours d'une étape D2 représentée à la figure 5, le décodeur DO de la figure 4 sélectionne, comme bloc courant 13; à décoder, le premier bloc qui a été 10 codé à l'issue du procédé de codage de la figure 1. Un exemple d'un tel bloc est représenté sur la figure 3. Il contient par exemple : - M=8 vecteurs lignes de données, tels que un premier vecteur ligne M1 de quatre données d1, d2, d3, d4, un deuxième vecteur ligne M2 de 15 quatre données d5, d6, d7, d8, un troisième vecteur ligne M3 de quatre données d9, d10, d11, d12, un quatrième vecteur ligne M4 de quatre données d13, d14, d15, d16, un cinquième vecteur ligne M5 de quatre données d17, d18, d19, d20, un sixième vecteur ligne M6 de quatre données d21, d22, d23, d24, un septième vecteur ligne M7 de quatre données d25, d26, d27, d28, un huitième vecteur ligne 20 M8 de quatre données d29, d30, d31, d32, - et N=4 vecteurs colonnes, tels que un premier vecteur colonne N1 de huit données d1, d5, dg, d13, d17, d21, d25, d29, un deuxième vecteur colonne N2 de huit données d2, d6, d10, d14, d18, d22, d26, d30, un troisième vecteur colonne N3 de huit données d3, d7, d11, d15, d19, d23, d27, d31, un 25 quatrième vecteur colonne N4 de huit données d4, d8, d12, d16, d20, d24, d28, d32. Au cours d'une étape D3 représentée à la figure 5, il est procédé, de façon connue en soi, à une détermination, par exemple par décodage, des données associées au bloc courant 13; à décoder qui ont été codées au cours de l'étape C6 de la figure 1. A l'issue d'une telle détermination, est obtenu un 30 ensemble d'informations numériques associées au bloc de coefficients quantifiés Bq; qui a été obtenu à l'issue de l'étape de quantification C5 de la figure 1. 3050858 29 Egalement au cours de l'étape D3, peuvent être déterminées des informations qui sont relatives au type de prédiction du bloc courant Bi, si ce dernier a été prédit au codage, et qui ont été inscrites dans le signal de données 4). De telles informations de prédiction sont notamment le mode de 5 prédiction sélectionné au codage et l'index du bloc prédicteur sélectionné. Au cours de l'étape D3, est également déterminé, de façon connue en soi, l'index IT* de la transformée sélectionnée au codage à l'étape C3 de la figure 1, puis appliquée à l'étape C4 de la figure 1. Une telle étape D3 de décodage est mise en oeuvre par un dispositif de 10 décodage MD_D représenté sur la figure 4, lequel dispositif est piloté par le processeur PROC_D. Au cours d'une étape D4 représentée à la figure 5, il est procédé à une déquantification du bloc de coefficients quantifiés Bq, selon une opération classique de déquantification qui est l'opération inverse de la quantification 15 mise en oeuvre lors de l'étape de quantification C5 de la figure 1. Un ensemble de coefficients déquantifiés courant BDqi est alors obtenu à l'issue de l'étape D4. Une telle étape de déquantification est par exemple de type scalaire ou vectoriel. L'étape D4 est mise en oeuvre au moyen d'un dispositif Mal_D de 20 quantification inverse, tel que représenté à la figure 4, lequel dispositif est piloté par le processeur PROC_D. Au cours d'une étape D5 représentée à la figure 5, le décodeur DO procède à la sélection d'une transformée T-1* associée à l'index IT* déterminé à l'étape D3 précitée, parmi un ensemble E1 de transformées stocké au préalable 25 dans la mémoire tampon MT_D du décodeur DO de la figure 4. Selon l'invention, l'ensemble E1 comprend au moins deux transformées T-10 et T-11, respectivement inverses des transformées To et T1 utilisées au codeur, telles que: - l'une des au moins deux transformées, par exemple T-10, met en 30 oeuvre les opérations suivantes : - premier traitement de données appliqué sur les M ou N vecteurs du bloc de coefficients déquantifiés courant 3050858 30 BDqi, à l'issue duquel est obtenu un bloc de données traité B°i, - deuxième traitement de données appliqué sur les N ou M vecteurs du bloc de données traité le, à l'issue 5 duquel est obtenu un bloc de données décodé transformé BDti, - au moins une autre des au moins deux transformées de l'ensemble E1, ici T-11, met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de 10 données du bloc de coefficients déquantifiés courant BDqi, - soit uniquement un traitement des N vecteurs colonnes de données du bloc de coefficients déquantifiés courant BDqi. 15 Dans l'exemple décrit ici, on entend par données, les pixels du bloc de données décodé transformé BDti. Il convient toutefois de noter qu'on entend également par données, les pixels d'un bloc modifié résidu décodé transformé, dans le cas où une prédiction du bloc courant Bi a été mise en oeuvre au codage. 20 La transformée T-10 est composée d'un couple de transformées constitué d'une transformée primaire D-10 et d'une transformée secondaire C-10 respectivement inverses des transformées primaire Do et secondaire Co mentionnées plus haut. Selon un premier mode de réalisation : 25 - la transformée primaire D-10 est une matrice 4x4 qui s'applique sur les M=8 vecteurs lignes du bloc de coefficients déquantifiés courant BDqi, de façon à obtenir un bloc courant traité ei=D-10.(BDqi)t, où t représente la transposée du bloc BDqi, - la transformée secondaire C-10 est une matrice 8x8 qui 30 s'applique sur les N=4 vecteurs colonnes du bloc courant traité le, de façon à obtenir un bloc courant décodé transformé BDTi=C 10.(B0 jyt. Selon une variante de ce premier mode de réalisation : 3050858 31 - la transformée primaire D-10 est une matrice 8x8 qui s'applique sur les N=4 vecteurs colonnes du bloc de coefficients déquantifiés courant BDqi, de façon à obtenir un bloc courant traité le=D-10.(BD4), - la transformée secondaire C-10 est une matrice 4x4 qui 5 s'applique sur les M=8 vecteurs lignes du bloc courant traité B°i, de façon à obtenir un bloc courant décodé transformé BDTi=C 10.(Boi)t. Selon un deuxième mode de réalisation, de façon correspondante au codage précité, les transformées C-10 et D-10 sont appliquées au travers d'une implémentation rapide par un algorithme en forme de papillons. 10 Conformément à ce deuxième mode de réalisation, le bloc courant décodé transformé BDT; est obtenu en moins d'opérations arithmétiques qu'en appliquant successivement les matrices de transformées primaire et secondaire D-10 et C-10. Selon un mode de réalisation de l'invention, la transformée T-11 de 15 l'ensemble E' est une transformée trigonométrique. Selon un autre mode de réalisation de l'invention, dans le cas où une prédiction du bloc courant Bi a été mise en oeuvre au codage conformément à un mode de prédiction donné, Intra par exemple, qui correspond donc à une direction de prédiction donnée : 20 - si la transformée T-10 est sélectionnée à l'issue de l'étape D5, l'ordre dans lequel sont traités soit d'abord les M vecteurs lignes puis les N vecteurs colonnes du bloc de coefficients déquantifiés courant BDqi, soit d'abord les N vecteurs colonnes puis les M vecteurs lignes du bloc de coefficients déquantifiés courant BDqi, est fonction de la direction de prédiction 25 des données du bloc courant qui est associée au mode de prédiction donné, - si la transformée T-11 est sélectionnée à l'issue de l'étape D5, le choix de traiter soit les M vecteurs lignes, soit les N vecteurs colonnes du bloc de coefficients déquantifiés courant BDqi est fonction de la direction de prédiction des données du bloc courant qui est associée au mode de prédiction 30 donné. Au cours d'une étape D6 représentée sur la figure 5, il est procédé à l'application de la transformée sélectionnée T-1* au bloc de coefficients déquantifiés courant BDqi. 3050858 32 A l'issue de l'étape D6 est obtenu un bloc de données décodé transformé BDT; qui constitue le boc courant reconstruit BD;. Une telle opération est effectuée par un dispositif MTR-1_D de calcul de transformée, tel que représenté sur la figure 4, lequel dispositif est piloté par le 5 processeur PROC_D. Au cours d'une étape D7 représentée à la figure 5, ledit bloc reconstruit courant BD; est écrit dans une image décodée IDA. Une telle étape est mise en oeuvre par un dispositif URI de reconstruction d'image tel que représenté sur la figure 4, ledit dispositif étant 10 piloté par le processeur PROC_D. Les étapes de décodage D1 à D7 qui viennent d'être décrites ci-dessus sont mises en oeuvre pour tous les blocs B1, B2, ..., Bi,..., BF à décoder de l'image courante ICS considérée, dans un ordre prédéterminé qui est par exemple l'ordre lexicographique. 15 Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention. 20 25 30 35 40 REVENDICATIONS1. Procédé de codage d'au moins une image (1C1) découpée en blocs de données, mettant en oeuvre, pour un bloc courant (13;) à coder de ladite image, ledit bloc courant contenant M vecteurs lignes et N vecteurs colonnes de données, tel que IV12 et I\12, un traitement des données du bloc courant par application (C4) d'une transformée qui est sélectionnée selon un critère de performance de codage prédéterminé, dans un ensemble (E) comprenant au moins deux transformées, une transformée dudit ensemble mettant en oeuvre les opérations suivantes : - premier traitement de données appliqué sur les M ou N vecteurs du bloc courant, à l'issue duquel est obtenu un bloc de données traité, - deuxième traitement de données appliqué sur les N ou M vecteurs du bloc de données traité, à l'issue duquel est obtenu un bloc de données transformé, le procédé de codage étant caractérisé en ce que au moins une autre transformée dudit ensemble met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de données du bloc courant, - soit uniquement un traitement des N vecteurs colonnes de données du bloc courant. 2. Procédé de codage selon la revendication 1, dans lequel une transformée dudit ensemble, mettant en oeuvre soit uniquement un traitement des M vecteurs lignes du bloc courant, soit uniquement un traitement des N vecteurs colonnes du bloc courant, est une transformée trigonométrique. 3. Procédé de codage selon la revendication 1 ou la revendication 2, dans lequel si est sélectionnée une transformée mettant en oeuvre soit uniquement un traitement des M vecteurs lignes de données du bloc courant, soit uniquement un traitement des N vecteurs colonnes de données du bloc courant, le choix du traitement est fonction de la direction de prédiction des données du bloc courant. 3050858 34 4. Dispositif (CO) de codage d'au moins une image (ICS) découpée en blocs, comprenant un circuit de traitement (CT_C) qui, pour un bloc courant (Bi) à coder de ladite image, ledit bloc courant contenant M vecteurs lignes et N 5 vecteurs colonnes de données, tel que IV12 et I\12, est agencé pour traiter des données du bloc courant par application d'une transformée qui est sélectionnée selon un critère de performance de codage prédéterminé, dans un ensemble (E) comprenant au moins deux transformées, une transformée dudit ensemble mettant en oeuvre les opérations suivantes : 10 - premier traitement de données appliqué sur les M ou N vecteurs du bloc courant, à l'issue duquel est obtenu un bloc de données traité, - deuxième traitement de données appliqué sur les N ou M vecteurs du bloc de données traité, à l'issue duquel est obtenu un bloc de données transformé, 15 caractérisé en ce que au moins une autre transformée dudit ensemble met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de données du bloc courant, - soit uniquement un traitement des N vecteurs colonnes de 20 données du bloc courant. 5. 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 à 3, lorsque ledit programme est exécuté sur 25 un ordinateur. 6. 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 à 3, lorsque ledit programme est exécuté sur un ordinateur. 3050858 7. Procédé de décodage d'un signal de données (4)) représentatif d'au moins une image (ICS) découpée en blocs, mettant en oeuvre, pour un bloc courant (13;) à décoder de ladite image, ledit bloc courant contenant M vecteurs lignes et N vecteurs colonnes de données, tel que IV12 et I\12, ce qui suit : 5 - détermination, dans ledit signal de données : - d'un bloc courant de données codées associé au bloc courant à décoder, - d'un indicateur (IT*) d'une transformée à appliquer aux données du bloc courant de données codées, 10 - traitement des données codées du bloc courant par application (D5) auxdites données codées de la transformée associée à l'indicateur déterminé, ladite transformée étant sélectionnée dans un ensemble (E1) de transformées comprenant au moins deux transformées, une transformée dudit ensemble mettant en oeuvre les opérations suivantes : 15 - premier traitement de données appliqué sur les M ou N vecteurs du bloc courant, à l'issue duquel est obtenu un bloc de données traité, - deuxième traitement de données appliqué sur les N ou M vecteurs du bloc de données traité, à l'issue 20 duquel est obtenu un bloc de données transformé, le procédé de décodage étant caractérisé en ce que au moins une autre transformée dudit ensemble met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de données codées du bloc courant, 25 - soit uniquement un traitement des N vecteurs colonnes de données codées du bloc courant. 8. Procédé de décodage selon la revendication 7, dans lequel une transformée dudit ensemble, mettant en oeuvre soit uniquement un traitement 30 des M vecteurs lignes du bloc courant de données codées, soit uniquement un traitement des N vecteurs colonnes du bloc courant de données codées, est une transformée trigonométrique. 3050858 36 9. Procédé de décodage selon la revendication 7 ou la revendication 8, dans lequel si à la suite de la détermination de l'indicateur de la transformée à appliquer aux données codées du bloc courant, est sélectionnée une transformée mettant en oeuvre soit uniquement un traitement des M vecteurs 5 lignes de données codées du bloc courant, soit uniquement un traitement des N vecteurs colonnes de données codées du bloc courant, le choix du traitement est fonction de la direction de prédiction des données codées du bloc courant. 10. Dispositif (DO) de décodage d'un signal de données (4)) représentatif 10 d'au moins une image (ICS) découpée en blocs, comprenant un circuit de traitement (CT_D) qui, pour un bloc courant (13;) à décoder de ladite image, ledit bloc courant contenant M vecteurs lignes et N vecteurs colonnes de données, tel que IV12 et I\12, est agencé pour : - déterminer, dans ledit signal de données : 15 - un bloc courant de données codées associé au bloc courant à décoder, - un indicateur (IT*) d'une transformée à appliquer aux données du bloc courant de données codées, - traiter des données codées du bloc courant par application 20 auxdites données codées de la transformée associée à l'indicateur déterminé, ladite transformée étant sélectionnée dans un ensemble (E1) de transformées comprenant au moins deux transformées, une transformée dudit ensemble mettant en oeuvre les opérations suivantes : - premier traitement de données appliqué sur les M 25 ou N vecteurs du bloc courant, à l'issue duquel est obtenu un bloc de données traité, - deuxième traitement de données appliqué sur les N ou M vecteurs du bloc de données traité, à l'issue duquel est obtenu un bloc de données transformé, 30 caractérisé en ce que au moins une autre transformée dudit ensemble met en oeuvre : - soit uniquement un traitement des M vecteurs lignes de données codées du bloc courant, 3050858 37 - soit uniquement un traitement des N vecteurs colonnes de données codées du bloc courant. 11. Programme d'ordinateur comportant des instructions de code de 5 programme pour l'exécution des étapes du procédé de décodage selon l'une quelconque des revendications 7 à 9, lorsque ledit programme est exécuté sur un ordinateur. 12. Support d'enregistrement lisible par un ordinateur sur lequel est 10 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 7 à 9, lorsque ledit programme est exécuté sur un ordinateur. 15 20 25 30