FR 3014278 A1 20150605 FR 1361822 A 20131129 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 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 transformation, puis quantifiés à l'aide d'une opération mathématique de quantification par exemple de type scalaire. 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 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 forme de bits par un codage entropique dont le but est de coder les coefficients sans perte. En ce qui concerne l'opération de transformation mathématique précitée, les transformations de type bloc sont les plus utilisées car elles réunissent trois critères importants : - ce sont des transformées bloc, 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 sont implémentées à l'aide d'algorithmes rapides assurant une complexité algorithmique limitée. 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 privilégiées pour leur rapidité d'exécution. En particulier, elles sont implémentées de façon séparable en peu d'opérations et disposent d'implémentation bien adaptées au traitement sur processeur à virgule fixe. 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 : - 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 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 ; - le type de transformée, par exemple DCT 4x4, DCT 8x8, etc... - 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 éléments correspondants du flux sont lus. La quantification inverse et la transformation 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é. 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, - 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 compromis efficacité/complexité, qui sont des critères bien connus de l'homme du métier. 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. Le procédé de codage selon l'invention est remarquable en ce pour un bloc courant à coder, il met en oeuvre les étapes de : - prédiction du bloc courant à l'aide d'au moins un bloc prédicteur, - détermination d'un bloc résidu de données représentatif de la différence entre le bloc prédicteur et le bloc courant, - sélection, selon un critère prédéterminé, d'un couple d'opérations mathématiques comprenant une opération de permutation et une opération de transformation parmi respectivement une pluralité d'opérations de permutation et une pluralité d'opérations de transformation, - application de l'opération de permutation du couple sélectionné aux données du bloc résidu déterminé, - application de l'opération de transformation du couple sélectionné aux données permutées, - codage des données issues de l'opération de transformation appliquée. Une telle disposition a pour avantage d'améliorer significativement les performances de compression du signal de données à transmettre au décodeur, par un meilleur choix du compromis efficacité/complexité. En d'autres termes, les performances de codage sont meilleures que celles obtenues dans l'art antérieur moyennant à la fois une simplicité de mise oeuvre des étapes de codage et une complexité limitée au décodage. Selon un mode de réalisation particulier, la pluralité d'opérations de transformation contient une transformée en sinus discrète. Le choix d'une transformée DST permet avantageusement d'optimiser les performances de codage, mais également de réduire les ressources en calculs. Selon une première variante, le choix d'une transformée DST parmi la pluralité d'opérations de transformation disponibles est imposé au codage, ce qui simplifie l'étape de sélection d'une transformée. Selon une deuxième variante, la pluralité d'opérations de transformation contient une seule opération de transformation qui est une transformée DST. Cette deuxième variante a pour avantage que le codeur n'est pas nécessairement obligé de transmettre au décodeur l'indice associé à la transformée DST, dans le cas bien sûr où cet indice est déjà disponible au décodeur. De ce fait, le coût de signalisation des informations de codage s'en trouve réduit efficacement. Selon un autre mode de réalisation particulier, le critère prédéterminé est la minimisation du coût débit-distorsion du bloc courant à coder. Le choix d'un tel critère optimise la sélection du couple permutation-transformée. Selon un autre mode de réalisation particulier, l'opération de permutation sélectionnée consiste à déplacer de proche en proche les données du bloc résidu déterminé, conformément à une opération de transposition des données dudit bloc résidu. Ce type de permutation a pour avantage d'être particulièrement simple d'un point de vue calculatoire. 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. Un tel dispositif de codage est remarquable en ce qu'il comprend, pour un bloc courant à coder : - un module pour prédire le bloc courant à l'aide d'au moins un bloc prédicteur, - un module pour déterminer un bloc résidu de données représentatif de la différence entre le bloc prédicteur et le bloc courant, - un module pour sélectionner, selon un critère prédéterminé, un couple d'opérations mathématiques comprenant une opération de permutation et une opération de transformation parmi respectivement une pluralité d'opérations de permutation et une pluralité d'opérations de transformation, - un module de permutation pour appliquer l'opération de permutation du couple sélectionné aux données du bloc résidu déterminé, - un module de transformation pour appliquer l'opération de transformation du couple sélectionné aux données permutées, - un module de codage pour coder les données délivrées par le module de transformation. 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. Un tel procédé de décodage est remarquable en ce qu'il comprend, pour un bloc courant à décoder, les étapes de : - 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, - détermination d'au moins un bloc prédicteur du bloc courant à décoder, - détermination d'un couple d'opérations mathématiques comprenant une opération de transformation et une opération de permutation, - application de l'opération de transformation du couple d'opérations déterminé aux données représentatives d'un bloc résidu courant, - application de l'opération de permutation du couple déterminé aux données obtenues à la suite de l'application de l'opération de transformation, - reconstruction du bloc courant à l'aide du bloc prédicteur déterminé et des données issues de l'opération de permutation appliquée. Selon un mode de réalisation particulier, l'étape de détermination du couple d'opérations mathématiques met en oeuvre les étapes suivantes : - lecture, dans le signal de données, d'une information représentative du couple d'opérations de permutation et de transformation sélectionné au codage du bloc courant à décoder, - détermination des opérations de permutation et de transformation respectivement inverses des opérations de permutation et de transformation du couple associé à l'information lue. Un tel mode de réalisation est mis en oeuvre lorsque la quantité des données signalant le couple d'opérations de permutation et de transformation transmis est amenuisée, ce qui a pour conséquence de ne pas permettre au décodeur de retrouver lui-même le couple d'opérations de permutation et de transformation qui a été sélectionné au codage. Selon un autre mode de réalisation particulier, l'étape de détermination du couple d'opérations mathématiques consiste à : - appliquer aux données représentatives du bloc résidu courant une pluralité de couples d'opérations mathématiques comprenant une opération de transformation suivie d'une opération de permutation, les opérations de transformation et de permutation étant choisies parmi respectivement une pluralité prédéterminée d'opérations de transformation et une pluralité prédéterminée d'opérations de permutation, - reconstruire une pluralité de blocs respectivement à partir de la pluralité de couples appliquée, - sélectionner un bloc reconstruit parmi la pluralité de blocs reconstruits, par maximisation d'un critère de cohérence appliqué à la pluralité de blocs reconstruits. Un tel autre mode de réalisation est mis en oeuvre lorsque le décodeur est capable de retrouver lui-même le couple d'opérations de permutation et de transformation qui a été sélectionné au codage. Cet autre mode de réalisation permet une réduction du coût de signalisation plus importante que celle obtenue dans le mode de réalisation précédent, car l'indice de l'opération de permutation et/ou l'indice de l'opération de transformation qui ont été sélectionnées au codage ne sont pas obligatoirement transmis dans le signal de données reçu au décodeur. Selon un autre mode de réalisation particulier, l'opération de transformation déterminée ou sélectionnée est une transformée en sinus discrète. Selon un autre mode de réalisation particulier, l'opération de permutation du couple d'opérations déterminé consiste à déplacer de proche en proche les données obtenues suite à l'application de l'opération de transformation du couple déterminé, conformément à une opération de transposition de ces données. 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. Corrélativement, l'invention concerne encore un dispositif de décodage d'un signal d'un signal de données représentatif d'au moins une image découpée en blocs. Un tel dispositif de décodage est remarquable en ce qu'il comprend, pour un bloc courant à décoder : - un module pour déterminer, dans le signal de données, des données représentatives d'un bloc résidu courant associé au bloc courant à décoder, - un module pour déterminer au moins un bloc prédicteur du bloc courant à décoder, - un module pour déterminer un couple d'opérations mathématiques comprenant une opération de transformation et une opération de permutation, - un module de transformation pour appliquer l'opération de transformation du couple déterminé aux données représentatives du bloc résidu courant, - un module de permutation pour appliquer l'opération de permutation du couple déterminé aux données transformées, - un module de prédiction pour reconstruire le bloc courant à l'aide du bloc prédicteur déterminé et des données délivrées par le module de permutation. 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 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 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 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 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 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 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 ou pour être utilisé dans l'exécution du procédé de codage ou de décodage précité. Le procédé de décodage, le dispositif de codage, le dispositif de décodage, les programmes d'ordinateur et les supports d'enregistrement correspondants précités présentent au moins les mêmes avantages que ceux conférés par le procédé de codage selon la présente invention. 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: - 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 3A représente un tableau contenant différents couples permutation-transformation qui sont utilisés dans le cas d'un bloc 4x4, - les figures 3B et 3C représentent un tableau contenant différents couples permutation-transformation qui sont utilisés dans le cas d'un bloc 8x8, - la figure 4 représente un mode de réalisation d'un dispositif de décodage selon l'invention, - la figure 5 représente les principales étapes du procédé de décodage selon l'invention, - la figure 6A représente un premier mode de réalisation de l'étape de détermination du couple d'opérations de permutation et de transformation mise en oeuvre dans le procédé de décodage de la figure 5, - la figure 6B représente un deuxième mode de réalisation de l'étape de détermination du couple d'opérations de permutation et de transformation mise en oeuvre dans le procédé de décodage de la figure 5. Description détaillée de la partie codage 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 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 à C15 telles que représentées à la figure 1. 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 de codage comprend une mémoire MEM CO comprenant une mémoire tampon MT_CO, une unité de traitement UT CO équipée par exemple d'un microprocesseur pP et pilotée par un programme d'ordinateur PG_CO qui met en oeuvre le procédé de codage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur PG_CO sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur de l'unité de traitement UT CO. Le procédé de codage représenté sur la figure 1 s'applique à toute image courante d'une séquence SQ d'images à coder. 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 IC; appartenant à la séquence SQ d'images IC1, IC;,..., ICN (1N), en une pluralité de blocs B1, B2, , Bu,..., Bs (1nKS) de taille donnée, des valeurs de taille typiques étant 64x64, 32x32 ou 16x16 pixels. Une telle étape de partitionnement est mise en oeuvre par un module logiciel de partitionnement MP_CO représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT CO. 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, par exemple dans le document « Recommendation ITU-T H.265 / Norme ISO/IEC 23008-2». 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. De manière préférentielle dans l'invention, les blocs à coder sont particulièrement de taille multiple de puissance de 2, par exemple de type 4x4 et 8x8. Toutefois, l'invention s'applique également plus généralement à des blocs de taille MxM (M=16,32 ou 64). Des blocs PxM et MxP sont également utilisables avec P et M prenant leur valeur dans l'ensemble 2, 4 8, 16, 32 et 64. Lesdits blocs B1, B2, ..., Bu,..., Bs sont destinés à être codés selon un ordre de parcours prédéterminé, qui est par exemple du type raster scan. Cela signifie que les blocs sont codés les uns après les autres, de la gauche vers la droite, puis vers le bas. D'autres types de parcours sont bien sûr possibles. Ainsi, il est possible de découper l'image IC; 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 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 Bu de l'image ICi, tel 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 Bu par des techniques connues de prédiction intra et/ou inter. A cet effet, le bloc Bu est prédit par rapport à au moins un bloc prédicteur conformément à un mode de prédiction sélectionné parmi une pluralité de modes de prédiction prédéterminés. Un tel bloc prédicteur est par exemple un bloc de pixels qui a été déjà codé ou bien codé puis décodé ou non. Un tel bloc prédicteur est préalablement stocké dans la mémoire tampon MT_CO 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 BP0 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 connu de l'homme du métier. Le bloc BP0 est considéré comme une approximation du bloc courant Bu. 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 prédiction (inter ou intra), et le cas échéant, le mode de prédiction sélectionné, le type de partitionnement du bloc courant si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur mouvement utilisés dans le cas où un mode de prédiction inter a été sélectionné. Ces informations sont 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 Bu 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 BP0 et le bloc courant Bu. Un ensemble de données résiduelles, 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_CO représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO. Au cours d'une étape C5 représentée à la figure 1, il est procédé à la 15 sélection, selon un critère prédéterminé, d'un couple d'opérations mathématiques comprenant une opération de permutation OP,- et une opération de transformation OTre parmi respectivement une pluralité d'opérations de permutation OPo, OPm,..., OPK-1, avec 0rriK-1 et 0rri*K-1, et une pluralité d'opérations de transformation OTo, , °Tri, - - - , 20 OTui, avec 01.-L-1 et 0n*L-1. La pluralité d'opérations de permutation et de transformation est stockée dans une mémoire dédiée MD CO du codeur CO de la figure 2. Une telle étape C5 est mise en oeuvre par un module logiciel de calcul CAL_CO représenté sur la figure 2, lequel module est piloté par le 25 microprocesseur pP de l'unité de traitement UT_CO. La pluralité d'opérations de transformation OTo, OTn,..., OTL-i comprend une ou plusieurs transformées de type 1D. Par transformée 1D, on entend une transformée discrète de taille MxM opérant sur des vecteurs de taille M. A cet effet : 30 - une première opération de transformation est appliquée vecteur par vecteur sur un bloc de taille MxM, - une opération de transposition est appliquée sur le bloc transformé, - une seconde opération de transformation est appliquée sur le bloc obtenu après transposition, également vecteur après vecteur. Cette transformée 1D repose sur des bases exprimées sous forme trigonométrique telles que le sont les transformées en sinus discrètes (DST) ou cosinus discrètes (DCT). De manière préférentielle, les transformées appartenant à la pluralité de transformées OTo, OTn,..., OTL4 sont des transformées DCT du type II, III et IV et des transformées DST du type IV, VI et VII qui sont décrites dans le document « Relationship between DCT-II, DCT-VI, AND DST-VII TRANSFORMS », Reznik ICASSP 2013. Parmi ces transformées, la DCT de type II, de type III, et la DST de type VII et de type IV sont particulièrement intéressantes pour leur capacité à rendre le signal résiduel compact dans le domaine fréquentiel. De telles transformées sont par exemple de taille 4x4, 8x8 etc. En variante, les transformées utilisées peuvent être de type alterné, c'est-à-dire qu'une transformée d'un premier type et qu'une transformée d'un second type sont appliquées respectivement sur les lignes et sur les colonnes du bloc résidu courant Br, dont les données ont été préalablement permutées comme cela sera décrit ci-dessous dans la description. Selon cette variante, les transformées précitées peuvent être aussi rectangulaires. Pour un bloc résidu courant Br, de forme rectangulaire, la transformée ligne aura une taille différente de la transformée colonne. Il convient de noter que la combinaison de la transformée ligne et de la transformée colonne peut être appliquée directement au bloc résidu courant Br,. Dans le domaine du codage/décodage vidéo, en vue de permettre une implémentation sur processeurs à virgule fixe, de telles transformées sont approximées, c'est-à-dire que les valeurs réelles sont approximées par des nombres rationnels. On ne retrouve donc pas exactement les transformées stricto sensu mais sous une forme approximée. Ainsi, par exemple, dans le cas d'une transformée DST VII de taille 4, cette dernière peut s'exprimer selon l'équation : S2 [ff (2k+1)(i+1)1 9 = -3 sin avec 0 Selon un mode de réalisation, le critère de choix prédéterminé utilisé à l'étape C5 est le critère débit-distorsion bien connu de l'homme du métier qui consiste à mesurer une pondération de la distorsion après quantification avec le coût de transmission des échantillons quantifiés. Typiquement, pour un couple permutation OP, - transformation OT, considéré, le critère 4, s'exprime de la façon suivante : Im,n(lamb da) = Ilx - 0 Pm' 0 T72-1 V_1 m, n112 + lambda - RaXm, , où : - Lambda est un opérateur lagrangien de pondération qui règle la contrainte de débit de transmission, - ()t est l'opérateur matriciel de transposition, 1 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 ï"' 0 0 0 () 0 0 0 0 1 0 0 0 1 1 0 0 1 tw1 0 1 1 1 u 13 12 Io 17 16 15 I9 18 115 114 113 112 Io 11 12 13 14 15 16 17 18 I9 110 111 112 113 114 115 - OT-1, représente la transformation inverse, - LXm,nj représente l'approximation de Xm,n réalisée suivant l'opérateur de quantification, Xm,n étant le résultat de la transformation du bloc courant Bu à coder par le couple d'opérations OT' OP, considéré. - R() est une fonction calculant le débit nécessaire pour transmettre les valeurs quantifiées. La fonction R peut être obtenue par codage complet des informations, c'est-à-dire en passant par le comptage des informations nécessaires à la transmission des valeurs quantifiées et codées, ou par une estimation du débit, par exemple qui peut s'appuyer sur un calcul de la somme des valeurs absolues des valeurs quantifiées ou sur un comptage des valeurs quantifiées à zéro. A la suite d'une comparaison entre les différentes valeurs obtenues pour la plus faible valeur calculée par le module de calcul CAL_CO de la figure 2 est retenue. Une telle valeur est notée et est associée à un couple d'opérations permutation OPm- - transformation OTn- considéré . Dans un mode de réalisation simplifié de l'invention, la pluralité d'opérations de permutation comprend par exemple deux permutations OP0 et Cet tandis que la pluralité d'opérations de transformation comprend une seule transformation OT0, par exemple la DST de type VII. A cet effet, au cours de l'étape C5 précitée, seulement deux critères débit-distorsion sont calculés, à savoir : - le critère J0,0 qui dépend de la permutation OP0 et de la transformation OT0, - et le critère J1,0 qui dépend de la permutation OPE et de la permutation OT0. Le module de calcul CAL_CO de la figure 2 compare les deux critères J0,0 et J1,0, retient celui qui a la plus faible valeur et associe un indice m*,n* à cette valeur. Ainsi, si J0,0 Selon une variante du mode de réalisation de l'étape de sélection C5 précitée, cette dernière peut être effectuée conjointement avec la recherche du bloc prédicteur optimal B0pt lors de l'étape de prédiction C3 précitée. Plus précisément, pour chaque mode de prédiction considéré, un couple permutation-transformation est déterminé comme minimisant le critère débit-distorsion 4, précité. De cette façon, les informations de débit lors de l'estimation du critère 4, tiennent compte de la transmission du mode de prédiction. Ainsi, toutes les combinaisons prédiction / permutation- transformation sont évaluées pour retenir celle qui minimise le critère débit- distorsion. Une telle variante peut encore être étendue en prenant en compte différentes tailles possibles du bloc courant. L'intérêt d'un partitionnement en sous-blocs du bloc courant peut être décidé en tenant compte du critère débit- distorsion, par prise en compte des couples permutation-transformation disponibles. Des exemples de couples de transformation-permutation sont représentés en référence aux figures 3A, 3B et 3C. Dans l'exemple de la figure 3A, un tableau T1 contient les couples de transformation-permutation qui sont destinés à s'appliquer à un bloc résidu courant Br, de taille 4x4 et d'indices de pixel successifs Io à 115. Dans l'exemple des figures 3B et 3C, un tableau T2 contient les couples de transformation-permutation qui sont destinés à s'appliquer à un bloc résidu courant Br, de taille 8x8 et d'indices de pixel successifs Io à 163. En référence à la figure 3A, le tableau T1 comprend par exemple 28 permutations Po à P27. La première colonne du tableau T1 intitulée « Indice de pixel » indique le numéro de l'indice de pixel considéré (entre 0 et 15) dans le bloc résidu courant Br,. Les colonnes suivantes sont associées chacune à une permutation particulière (Po à P27), la permutation Po étant appelée permutation « identité » car n'ayant aucun effet sur l'ordre des indices de pixels. Pour une permutation donnée, chaque indice de pixel indiqué par la colonne « Indice pixel » est remplacé par le numéro de l'indice de pixel indiqué par la valeur correspondante dans la colonne sélectionnée. Chaque colonne Po à P27 est associée à une transformée particulière de type DST ou DCT selon la permutation considérée, ladite transformée particulière étant indiquée dans la dernière ligne du tableau T1. En référence aux figures 3B et 3C, le tableau T2 comprend par exemple 29 permutations Po à P28. La première colonne du tableau T2 intitulée « Indice de pixel » indique le numéro de l'indice de pixel considéré (entre 0 et 63) dans le bloc résidu courant Br,. Les colonnes suivantes sont associées chacune à une permutation particulière (Po à P28), la permutation Po étant appelée permutation « identité » car n'ayant aucun effet sur l'ordre des indices de pixels. Pour une permutation donnée, chaque indice de pixel indiqué par la colonne « Indice pixel » est remplacé par le numéro de l'indice de pixel indiqué par la valeur correspondante dans la colonne sélectionnée. Dans l'exemple des figures 3B et 3C, chaque permutation est associée à une même transformée de type DCT. Les permutations indiquées dans les tableaux T1 et T2 sont établies par apprentissage. A cet effet, les permutations sont issues de transformations géométriques simples : inversion d'ordre de colonnes/lignes, déplacement de blocs, déplacement de lignes ou de colonnes. Certaines permutations sont déterminées pour leur simplicité de mise en oeuvre, dans le sens où les transformations considérées sont légèrement affectées lorsque la relation inter pixel n'est pas modifiée, c'est-à-dire qu'après permutation, chaque pixel reste proche de ses voisins avant permutation. Une permutation privilégiée est par exemple un opérateur de transposition qui déplace de proche en proche les données du bloc de pixels, selon un sens prédéterminé. D'autres permutations sont envisagées. Par exemple, dans le tableau T1 représenté à la figure 3A : - la permutation P1 est un opérateur miroir du bloc de pixels, les indices de pixels étant inversés les uns par rapport aux autres au moyen d'une symétrie verticale, - la permutation P4 permet d'inverser les indices de pixels par transposition, c'est-à-dire symétrie diagonale, par rapport à un angle à 45° partageant le bloc résidu Br,. Les différentes permutations ont été apprises par une étude des propriétés intrinsèques des blocs résidus. Suivant la puissance lumineuse du résidu moyen par pixel, les pixels sont réordonnés pour qu'ils soient compatibles avec une transformation particulière. Il est connu dans l'état de l'art que la DCT est appropriée pour coder des résidus ayant un profil de luminosité constant, c'est-à-dire que le bloc résidu a une luminosité relativement uniforme par pixel. La DST a un profil approprié pour des blocs résidus ayant moins de luminosité dans les pixels situés en haut du bloc (par exemple indices Io à 13 sur la figure 3A) et à gauche (par exemple indices Io à 112 sur la figure 3A). Ainsi, en particulier dans le tableau T1 de la figure 3A, les permutations sont établies suivant la transformation indiquée dans la dernière ligne. La permutation « identité » Po fait partie des permutations retenues, lorsque le bloc résidu Br, aura une forme compatible avec la transformation associée. En revanche lorsque le bloc résidu est incompatible avec la transformation associée, alors le critère débit-distorsion 4, précité aura une bien plus faible valeur avec une autre permutation que la permutation Po. D'autres configurations de couples permutation-transformation sont bien entendu possibles et certaines seront mentionnées plus loin dans la description. Au cours d'une étape C6 représentée à la figure 1, il est procédé à l'application de l'opération de permutation OP,- dudit couple d'opérations sélectionné aux données du bloc résidu courant Bru, pour produire un bloc permuté Bpu. L'étape C6 est mise en oeuvre par un module logiciel MPER_CO de permutation, tel que représenté figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO. Au cours d'une étape C7 représentée à la figure 1, il est procédé à l'application de l'opération de transformation OTn- dudit couple d'opérations sélectionné aux données du bloc permuté Bpu, pour produire un bloc transformé Btu. L'étape C7 est mise en oeuvre par un module logiciel MT_CO de transformation, tel que représenté figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO. L'opération de transformation OTn- consiste à transformer le bloc permuté Bp, du domaine spatial vers le domaine fréquentiel sous la forme suivante : \t XBtu B - (AxBpu) où : - xBpureprésente sous forme matricielle le bloc permuté courant Bp, dans le domaine spatial, - XBtu représente sous forme matricielle le bloc obtenu dans le domaine transformé, - B et A représentent des transformées 1D issues des familles présentées ci-dessus. Notons que le résultat de la transformée peut également s'écrire sous la forme mathématiquement équivalente : X = Sx où : - X et x se présentent alors sous forme de vecteurs, - S représente une matrice transformée qui contient le carré du nombre d'éléments contenus dans x. La matrice S s'écrit comme un produit généralisé des matrices 1D B et A. En d'autres termes la matrice S est formée par construction d'une matrice MxM (M est la taille des transformées 1D), construite par répétition de la matrice A par blocs et multiplication de chacune des matrices A par un terme de la matrice B. Comme illustré ci-dessous, pour le cas M=4, la matrice S de type 16x16 est alors obtenue : B0,0*A B0,1*A B0,2*A B0,3*A B1,0*A B1,1*A B1,2*A B1,3*A B2,0*A B2,1*A B2,2*A B2,3*A B3,0*A B3,1*A B3,2*A B3,3*A Dans un mode de réalisation préféré, ladite matrice S est une matrice représentative d'une DST. L'opération de permutation OPm- consiste à appliquer une permutation sur les entrées de la matrice XBrureprésentative du bloc résidu courant Br, appliquée aux pixels de la façon représentée ci-dessous : BpU matrice de permutation Pn, Bru 1 0 1 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 C) 0 1 1 10 11 12 13 14 15 16 17 18 19 110 111 112 113 114 115 La relation XBtu = SOPm*Xgruest alors obtenue, où Pm représente une matrice de permutation des indices de x, ce qui a pour effet une inversion des positions de pixel. Au cours d'une étape C8 représentée à la figure 1, il est procédé à la quantification du bloc Bt, transformé, selon une opération classique de quantification, telle que par exemple une quantification scalaire ou vectorielle. Un bloc Bq, de coefficients quantifiés est alors obtenu. Une telle étape est effectuée au moyen d'un module logiciel de quantification MQ_CO tel que représenté à la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT CO. Au cours d'une étape C9 représentée à la figure 1, il est procédé au codage des données du bloc Bq, de coefficients quantifiés. Dans le mode préféré de réalisation, le codage effectué est un codage entropique de type arithmétique ou de Huffman qui est connu en tant que tel. L'étape C9 consiste alors à: - lire le ou les symboles qui sont associés audit bloc courant, 13 12 11 10 17 16 15 14 111 110 I9 18 115 114 113 112 - associer des informations numériques, telles que des bits, au(x) symbole(s) lu(s). Une telle étape de codage entropique est mise en oeuvre par un module logiciel de codage entropique MCE représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO. Le module de codage entropique MCE est par exemple de type CABAC ("Context Adaptive Binary Arithmetic Coder" en anglais). Il peut également s'agir d'un codeur de Huffman connu en tant que tel. Au cours de ladite étape C9, il est procédé éventuellement au codage de l'indice m*,n* du critère retenu à l'étape C5 précitée. Une telle étape est nécessaire, lorsque le décodeur n'est pas capable de retrouver cette information. Si m*, n* doit être transmis au décodeur, il est alors par exemple exprimé sur un code binaire à longueur fixe. Si par exemple, quatre valeurs de couples permutation-transformation : 0, 1, 2, 3 doivent être signalés, - la valeur 0 est associée par exemple au code 00, - la valeur 1 est associée par exemple au code 01, - la valeur 2 est associée par exemple au code 10, - la valeur 3 est associée par exemple au code 11. En variante, l'indice m*,n* peut être exprimé à l'aide d'un code à longueur variable. Dans le cas, par exemple, des quatre valeurs de couples permutation-transformation : 0, 1, 2, 3 à signaler: - la valeur 0 est associée par exemple au code 0, - la valeur 1 est associée par exemple au code 10, - la valeur 2 est associée par exemple au code 110, - la valeur 3 est associée par exemple au code 111. Selon un mode privilégié de réalisation, la transmission de l'indice m*, n* est séparée en deux indicateurs : - un drapeau signalant le premier bit des codes ci-dessus, - et un élément de syntaxe complémentaire qui indique sous forme binaire les couples permutation-transformation moins probables. Le drapeau est avantageusement codé à l'aide d'un codeur arithmétique séparé du codage du numéro de couple retenu. Un codeur de type CABAC est utilisé préférentiellement, avec un contexte particulier suivant la taille de la subdivision du bloc courant. Il est ainsi possible d'obtenir une réduction significative du coût de ce drapeau lorsque ce dernier est très fréquemment employé dans un état donné, c'est-à-dire que sa probabilité d'être à '0' ou à '1' est très élevée. Ainsi, selon ce mode privilégié : - la valeur 0 est associée par exemple au drapeau positionné à 0, - la valeur 1 est associée par exemple au drapeau positionné à 1 avec complément 0, - la valeur 2 est associée par exemple au drapeau positionné à 1 et complément 10, - la valeur 3 est associée par exemple au drapeau positionné à 1 et complément 11. Selon un autre mode de réalisation privilégié, l'indice m*,n* est transmis uniquement au moyen d'un drapeau. Ce mode privilégié est applicable dans le cas où une seule transformée, par exemple DST, est appliquée et où deux opérations de permutation OPo et OPE peuvent être appliquées en combinaison avec la DST. Le couple permutation-transformation SOP0 ou SOP1 sélectionné à l'étape C5 précitée sera alors signalé par un bit. Selon une convention donnée à titre d'exemple : - la sélection du couple SOP0 est représentée par un bit à '1', - la sélection du couple SOP1 est représentée par un bit à '0'. Dans ce mode de réalisation privilégié, un codeur de type CABAC est utilisé préférentiellement, avec un contexte particulier suivant la taille de la subdivision du bloc courant. Il est ainsi possible d'obtenir une réduction significative du coût de ce drapeau lorsque ce dernier est très fréquemment employé dans un état donné, c'est-à-dire que sa probabilité d'être à '0' ou à '1' est très élevée. Dans le cas où plus de deux couples permutation-transformation peuvent être sélectionnés, un code à longueur fixe ou variable sera utilisé. Selon un autre mode de réalisation possible, il est procédé, au cours de l'étape C9, à un codage partiel de la valeur de l'indice m*, n*. Comme cela sera décrit plus loin dans la description, un tel mode de réalisation est possible, lorsque le décodeur est capable de retrouver lui-même tout ou partie de l'indice m*, n*. En variante, cet autre mode de réalisation peut être également combiné avec la signalisation mise en oeuvre dans le mode de réalisation privilégié décrit plus haut. Selon une configuration particulière donnée à titre d'exemple : - dans le cas où une seule transformée S, par exemple DST, est appliquée et où une opération de permutation OPo est appliquée en combinaison avec la DST, le couple permutation-transformation SOP0 sélectionné à l'étape C5 précitée sera alors signalé par un bit à '0', - dans le cas où une seule transformée S, par exemple DST, est appliquée et où de multiples opérations de permutation peuvent être appliquées en combinaison avec la DST, le couple permutation-transformation sélectionné à l'étape C5 précitée sera alors signalé par un bit à '1'. A l'issue de l'étape de codage C9, un signal ou flux de données F qui contient l'ensemble des données encodées du bloc de coefficients quantifiés Bq, et éventuellement la totalité ou une partie de l'indice m*,n* encodé est alors délivré. Un tel flux est ensuite 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 flux F comprend en outre certaines informations encodées par le codeur CO, telles que le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction sélectionné, le type de partitionnement du bloc 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. Au cours d'une étape C10 représentée à la figure 1, il est procédé à la déquantification du bloc Bq, selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C8. Un bloc de coefficients déquantifié BDtU est alors obtenu. Une telle étape de déquantification est effectuée par un module logiciel de quantification inverse MQ-'_CO, tel que représenté à la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO. Au cours d'une étape C11 représentée à la figure 1, il est procédé à l'application de l'opération de transformation OT-'n-, inverse de l'opération de transformation OTn., aux données du bloc de coefficients déquantifié BDtU, pour produire un bloc permuté décodé BDpu. L'étape C11 est mise en oeuvre par un module logiciel MT-'_CO de transformation, tel que représenté figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO. Au cours d'une étape C12 représentée à la figure 1, il est procédé à l'application de l'opération de permutation 013-1,., inverse de l'opération de permutation OPm., aux données du bloc permuté décodé BDpu, pour produire un bloc résidu décodé BDru. L'étape C12 est mise en oeuvre par un module logiciel MPERICO de permutation, tel que représenté figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO. Au cours d'une étape C13 représentée à la figure 1, il est procédé à la construction du bloc décodé BD, en ajoutant au bloc prédicteur BP0 obtenu à l'étape C3 précitée le bloc résidu décodé BDru. Il est à noter que ce dernier bloc est le même que le bloc décodé obtenu à l'issue du procédé de décodage de l'image IC; qui sera décrit plus loin dans la description. Le bloc décodé BD, est alors stocké dans la mémoire tampon MT_CO de la figure 2, afin d'être utilisé par le codeur CO comme bloc prédicteur d'un bloc suivant à coder. Une telle étape est mise en oeuvre par un module logiciel de codage prédictif inverse PRED-1 CO représenté sur la figure 2, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_CO. Au cours d'une étape C14 représentée à la figure 1, le codeur CO teste si le bloc courant B, qui vient d'être codé est le dernier bloc de l'image ICi. Si le bloc courant est le dernier bloc de l'image ICi, au cours d'une étape suivante C15 représentée à la figure 1, il est mis fin au procédé de codage. Si tel n'est pas le cas, il est procédé à nouveau à l'étape de sélection C2 du bloc suivant à coder conformément à l'ordre de parcours raster scan précité, puis les étapes C3 à C14 sont réitérées pour ce bloc suivant sélectionné. Les étapes de codage qui viennent d'être décrites ci-dessus sont mises en oeuvre pour tous les blocs B1, B2, , Bu,... , Bs à coder de l'image courante IC; considérée. Configurations particulières de couples permutation-transformation D'autres configurations possibles de couples permutation-transformation vont maintenant être mentionnés ci-dessous à titre d'exemples supplémentaires. Selon un mode de réalisation, plutôt que d'utiliser l'ensemble des permutations et des transformations présentées ci-dessus, notamment en liaison avec les figures 3A à 3C, il est proposé de restreindre cet ensemble. Ainsi, pour des blocs de taille 4x4, par exemple, différents compromis, suivant le nombre de couples permutation-transformation, sont proposés ci-dessous. A cet effet, est déterminé un mode 1+Y qui définit un nombre de couples permutation-transformation différents à utiliser. Pour Y=0, le mode 1+0 définit un couple comprenant une transformation et une permutation « identité » Po. Pour Y>0, le mode 1+Y définit plusieurs couples formés à partir d'une combinaison d'une pluralité de transformations et d'une pluralité de permutations. A titre d'exemples : - pour Y=1, le mode 1+1 est un mode qui définit deux couples possibles de transformation et de permutation, où deux transformations différentes sont proposées : un couple formé d'une permutation « identité » Po et d'une transformation DST et un autre couple formé d'une permutation « identité » Po et d'une transformation DCT, - pour Y=2, le mode 1+2 est un mode qui définit trois couples possibles de transformation et de permutation, où deux transformations différentes et trois permutations Po, P1, P2 différentes sont proposées de façon à constituer les trois couples permutation-transformation suivants : Po-DST, Pi DST, P2-DCT. Les modes 1+0, 1+1 et 1+2 précités offrent différents compromis de complexité qui permettent de réduire le nombre de transformations à utiliser, réduisant de ce fait le nombre de couples à tester lors du codage pour sélectionner le meilleur couple permutation-transformation. Ainsi dans le mode 1+1, au cours de l'étape de sélection C5 représentée sur la figure 1, seules les transformations DCT et DST ont besoin d'être comparées conformément au critère débit distorsion 4,, puisqu'une seule permutation possible est proposée. Dans le mode 1+2, au cours de l'étape de sélection C5 précitée, seulement trois critères débit-distorsion ont besoin d'être comparés puisqu'il existe trois couples permutation-transformation selon un tel mode. Le stockage des permutations peut aussi être réduit dans le cas où le nombre de couples permutation-transformation est limité. Un ensemble de compromis suivant le nombre de couples permutation- transformation mis à disposition dans le codeur CO et suivant la taille des blocs est représenté ci-dessous. Le mode Po+dst, c'est-à-dire une approche purement dst, est mis en compétition avec un ensemble de couples permutation-transformation basés sur d'autres transformations, telles que la DCT par exemple.25 Mode 1+1 1+2 1+3 1+4 1+8 1+16 couple Perm Transf. Perm Transf. Perm Transf. Perm Transf. Perm Transf. Perm Transf. 0 Po dst Po dst P1 dst Po dst Po dst Po dst 1 Po dct Pi dst P27 dst P2 dst P5 dst Pu dst 2 P2 dct P6 dst Pi dst P6 dst Pie dst 3 P3 dct P7 dst P13 dst 4 P4 dct Pi dst Pm dst P8 dct P15 dst 6 P9 dct Pi6 dst 7 P3 dct P17 dst 8 P10 dct P18 dst 9 P19 dct P20 dct 11 P21 dct 12 P22 dct 13 P23 dct 14 P24 dct P25 dct 16 P26 dct Nombre de couples permutation-transformation pour les blocs de taille 4x4 Mode 1+2 1+3 1+4 1+8 1+16 Couple Perm Transf. Perm Transf. Perm Transf. Perm Transf. Perm Transf. 0 Po dct Po dct Po dct Po dct Po dct 1 P1 dct P3 dct P5 dct P5 dct P9 dct 2 P2 dct P4 dct P6 dct Pg dct Pio dct 3 P5 dct P7 dct P9 dct Pli dct 4 Pg dct P16 dct P12 dct 5 P17 dct P13 dct 6 P18 dct P14 dct 7 P22 dct P15 dct 8 P23 dct P19 dct 9 P20 dct 10 P21 dct 11 P22 dct 12 P24 dct 13 P25 dct 14 P26 dct 15 P27 dct 16 P28 dct Nombre de couples permutation-transformation pour les blocs de taille 8x8 5 Ainsi, le codage du bloc courant est amélioré efficacement en proposant au codeur CO une pluralité de couples permutation-transformation différents. Il est également possible de combiner les tailles des couples permutation-transformation. Par exemple un très bon compromis en complexité et qualité peut être réalisé en retenant le mode 1+2 pour les blocs 4x4 et le mode 1+8 pour le mode 8x8. Le codeur CO choisit alors la meilleure transformée 4x4 parmi celles proposées, de même pour la taille 8x8, par minimisation du critère débit-distorsion. Le choix combiné peut être réalisé lors du choix de la partition du bloc courant. A titre d'exemple, sont présentées ci- dessous les combinaisons suivantes avec leurs performances associées en termes de réduction du débit de transmission pour une qualité d'image donnée : Combinaison Mode 4x4 Mode 8x8 Performance 0 1+2 Po + dct -0.76% 1 1+4 Po + dct -0.78% 2 1+8 Po + dct -0.86% 3 1+16 Po + dct -0.80% 4 1+2 1+2 -0.72% 5 1+2 1+4 -0.78% 6 1+2 1+8 -1.09% 7 1+2 1+16 -0.92% 8 Po + dst 1+2 -0.10% 9 Po + dst 1+4 -0.24% Po + dst 1+8 -0.37% 11 Po 0 + dst 1+16 -0.41% En particulier, une réduction de débit de 1.09% est obtenue à l'aide de la 10 combinaison 6 utilisant le mode 1+2 pour les blocs 4x4 et le mode 1+8 pour les blocs 8x8. Cette réduction de débit est tout à fait significative en codage vidéo, notamment pour une technique de faible complexité. Dans le cas où le codeur CO de la figure 2 n'a pas besoin de transmettre la totalité de l'indice m*,n* du critère des performances de codage accrues sont obtenues comme représenté ci-dessous: Mode 4x4 Performance 1+2 -4.36% 1+4 -6.13% 1+8 -8.28% 1+16 -10.35% Description détaillée de la partie décodage Un mode de réalisation du procédé de décodage selon l'invention va maintenant être décrit, dans lequel le procédé de décodage est implémenté de manière logicielle ou matérielle par modifications d'un décodeur initialement conforme à la norme HEVC. Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes D1 à D12 telles que représentées à la figure 5. Comme illustré en figure 4, le décodeur DO selon ce mode de réalisation de l'invention comprend une mémoire MEM_DO comprenant une mémoire tampon MT_DO, une unité de traitement UT_DO équipée par exemple d'un microprocesseur pP et pilotée par un programme d'ordinateur PG_DO qui met en oeuvre le procédé de décodage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur PG_DO sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement UT DO. Le procédé de décodage représenté sur la figure 5 s'applique à toute image courante d'une séquence SQ d'images à décoder. A cet effet, des informations représentatives de l'image courante IC; à décoder sont identifiées dans un signal ou flux de données F reçu au décodeur, tel que délivré à la suite 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é à l'identification dans ledit flux F des résidus quantifiés Bq1, Bq2,... , Bqu, Bqs (1 D'autres types de parcours que celui qui vient d'être décrit ci-dessus sont bien sûr possibles et dépendent de l'ordre de parcours choisi au codage, dont des exemples ont été mentionnés plus haut. De manière préférentielle dans l'invention, les blocs à décoder sont particulièrement de taille multiple de puissance de 2, par exemple de type 4x4 et 8x8. Toutefois, l'invention s'applique également plus généralement à des blocs de taille MxM (M=16,32 ou 64). Des blocs PxM et MxP sont également utilisables avec P et M prenant leur valeur dans l'ensemble 2, 4 8, 16, 32 et 64. Chaque bloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles. 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 un premier bloc résidu quantifié Bq,. Au cours d'une étape D3 représentée à la figure 5, il est procédé à la prédiction du bloc courant B, à décoder par des techniques connues de prédiction intra et/ou inter. A cet effet, le bloc B, à décoder est prédit par rapport à au moins un bloc prédicteur conformément à un mode de prédiction sélectionné parmi une pluralité de modes de prédiction prédéterminés. En particulier, le mode de prédiction sélectionné est directement lu dans le flux F dans le cas où le codeur CO de la figure 2 a signalé ce mode au décodeur DO de la figure 4. Un tel bloc prédicteur est par exemple un bloc de pixels qui a été déjà décodé ou non. Un tel bloc prédicteur est préalablement stocké dans la mémoire tampon MT_DO du décodeur DO telle que représentée à la figure 4. A l'issue de l'étape D3 de prédiction, un bloc prédicteur optimal BP0 conforme au mode de prédiction sélectionné est obtenu. Le bloc BP0 est une approximation du bloc courant B, à décoder. Les informations relatives à cette prédiction sont lues dans le flux de données F. De telles informations comprennent notamment le type de prédiction (inter ou intra), 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 mouvement utilisés dans le cas où un mode de prédiction inter a été sélectionné. Ces informations seront ultérieurement décodées de façon classique. L'étape D3 est mise en oeuvre par un module logiciel de décodage prédictif PRED_DO représenté sur la figure 4, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT DO. Au cours d'une étape D4 représentée à la figure 5, il est procédé au décodage des données du bloc Bq, résidu quantifié, pour produire un bloc résidu quantifié décodé BDqu. Dans le mode préféré de réalisation, le décodage effectué est un décodage entropique de type arithmétique ou de Huffman qui est connu en tant que tel. L'étape D4 consiste alors à : - lire le ou les symboles qui sont associés audit bloc courant à décoder, - associer des informations numériques, telles que des bits, au(x) symbole(s) lu(s). Une telle étape de décodage entropique est mise en oeuvre par un module logiciel de décodage entropique MDE représenté sur la figure 5, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_DO. Le module de décodage entropique MDE est par exemple de type CABAC. Il peut également s'agir d'un décodeur de Huffman connu en tant que tel. Au cours d'une étape D5 représentée à la figure 5, il est procédé à la déquantification du bloc résidu quantifié Bq, selon une opération classique de déquantification, qui est l'opération inverse de l'opération de quantification effectuée à l'étape C7 de la figure 1. Un bloc déquantifié décodé BDtU est alors obtenu. Une telle étape de déquantification est effectuée par un module logiciel de quantification inverse MQ-'_DO, tel que représenté à la figure 4, lequel est piloté par le microprocesseur pP de l'unité de traitement UT_DO. Au cours d'une étape D6 représentée à la figure 5, il est procédé à la détermination d'un couple d'opérations mathématiques comprenant une opération de transformation OT-'n- et un opération de permutation 013-1,. respectivement inverses des opérations de transformation OTn- et de permutation OPm., ledit couple étant conforme au critère prédéterminé retenu à l'étape de sélection C5 précitée de la figure 1. Une telle étape D6 est mise en oeuvre par un module logiciel de détermination MDTDO représenté sur la figure 4, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_DO. Comme représenté sur la figure 6A, dans le cas où l'indice m*,n* du critère retenu à l'étape C5 précitée a été transmis dans sa totalité dans le flux F à la suite de l'étape de codage C9 de la figure 1, l'étape de détermination D6 consiste à : - au cours d'une sous-étape D610 représentée sur la figure 6A, lire cet indice dans le signal de données F pour retrouver le couple d'opérations de permutation OPm- et de transformation OTn- associé à l'indice lu, - au cours d'une sous-étape D611 représentée sur la figure 6A, déterminer les opérations de permutation OP-1,. et de transformation OT-1,. respectivement inverses des opérations de permutation OPm- et de transformation OTn- du couple associé à l'indice lu. De telles étapes sont nécessaires lorsque le décodeur DO de la figure 4 n'est pas capable de retrouver lui-même la totalité de l'indice m*,n*. Les sous-étapes D610 et D611 sont mises en oeuvre par un sous- module logiciel SMDT1_DO représenté sur la figure 4. Au cours de ladite étape D6, il est procédé au décodage de l'indice m*, n*. Plus précisément, le décodeur DO lit par exemple un code binaire à longueur fixe pour retrouver la valeur du couple permutation-transformation associé au critère et lui associer le couple permutation inverse- transformation inverse correspondant. Dans le cas par exemple, comme cela a été décrit en liaison avec l'étape C9 précitée, où quatre valeurs de couples permutation-transformation : 0, 1, 2, 3 sont susceptibles d'être signalées dans le flux F, - si le décodeur DO lit le code 00, il attribue la valeur 0 au couple permutation-transformation qui, au codage, a été associé au critère - si le décodeur DO lit le code 01, il attribue la valeur 1 au couple permutation-transformation qui a été associé au codage au critère - si le décodeur DO lit le code 10, il attribue la valeur 2 au couple permutation-transformation qui, au codage, a été associé au critère - si le décodeur DO lit le code 11, il attribue la valeur 3 au couple permutation-transformation qui, au codage, a été associé au critère Dans une variante qui a été décrite en liaison avec l'étape C9 précitée, l'indice m*,n* destiné à être lu par le décodeur DO est exprimé à l'aide d'un code à longueur variable. Dans le cas par exemple, comme cela a été décrit en liaison avec l'étape C9 précitée, où quatre valeurs de couples permutation-transformation : 0, 1, 2, 3 sont susceptibles d'être signalées dans le flux F, - si le décodeur DO lit le code 0, il attribue la valeur 0 au couple permutation-transformation qui, au codage, a été associé au critère Jm.,n., - si le décodeur DO lit le code 10, il attribue la valeur 1 au couple permutation-transformation qui, au codage, a été associé au critère Jm.,n., - si le décodeur DO lit le code 110, il attribue la valeur 2 au couple permutation-transformation qui, au codage, a été associé au critère Jm.,n., - si le décodeur DO lit le code 111, il attribue la valeur 3 au couple permutation-transformation qui, au codage, a été associé au critère Jm-,n-. Selon un mode privilégié de réalisation décrit en liaison avec l'étape C9 précitée, l'indice m*,n* destiné à être lu par le décodeur DO comprend deux indicateurs : - un drapeau signalant le premier bit du code associé au couple permutation-transformation OPm., OTn- sélectionné au codage, et - un élément de syntaxe complémentaire qui indique sous forme binaire les couples permutation-transformation moins probables. Dans le cas par exemple, comme cela a été décrit en liaison avec l'étape C9 précitée, où quatre valeurs de couples permutation-transformation : 0, 1, 2, 3 sont susceptibles d'être signalées dans le flux F, - si le décodeur DO lit le drapeau '0', il attribue la valeur 0 au couple permutation-transformation qui, au codage, a été associé au critère Jm",n", - si le décodeur DO lit le drapeau '1' et le complément binaire '0', il attribue la valeur 1 au couple permutation-transformation qui, au codage, a été associé au critère - si le décodeur DO lit le drapeau '1' et le complément binaire '10', il attribue la valeur 2 au couple permutation-transformation qui, au codage, a été associé au critère - si le décodeur DO lit le drapeau '1' et le complément binaire '11', il attribue la valeur 3 au couple permutation-transformation qui, au codage, a été associé au critère Selon un autre mode de réalisation privilégié décrit en liaison avec l'étape C9 précitée, l'indice m*,n* destiné à être lu par le décodeur DO est constitué uniquement d'un drapeau. Cet autre mode privilégié est applicable dans le cas où une seule transformée, par exemple DST, est appliquée au codage et où deux opérations de permutation OPo et OPE sont susceptibles d'être appliquées en combinaison avec la DST. A cet effet, - si le décodeur DO lit un bit à '1', il attribue la valeur de ce bit au couple permutation-transformation SOP0 qui, au codage, a été associé au critère - si le décodeur DO lit un bit à '0', il attribue la valeur de ce bit au couple permutation-transformation SOP1 qui, au codage, a été associé au critère Dans le cas où plus de deux couples permutation-transformation sont susceptibles d'être signalés dans le flux F, le décodeur DO est adapté pour lire un code à longueur fixe ou variable. Selon un autre mode de réalisation possible décrit en liaison avec l'étape C9 précitée, l'indice m*, n* n'est pas signalé dans le flux F ou seulement une partie de l'indice m*,n* est signalée dans le flux F. Comme représenté sur la figure 6B, dans le cas où l'indice m*,n* du critère retenu à l'étape C5 précitée n'a pas été transmis dans le flux F à la suite de l'étape de codage C9 de la figure 1, l'étape de détermination D6 consiste à : - au cours d'une sous-étape D620 représentée sur la figure 6B, appliquer aux données représentatives du bloc déquantifié décodé BDtU une pluralité de couples d'opérations mathématiques comprenant une opération de transformation suivie d'une opération de permutation, lesdites opérations de transformation et de permutation étant choisies parmi respectivement une pluralité prédéterminée d'opérations de transformation o-r-10, 0T11,---, orin,---, o-r-1,, avec 01.-L-1 et une pluralité prédéterminée d'opérations de permutation OP-10, avec OeriK-1, lesquelles sont disponibles dans la mémoire MT_DO du décodeur DO de la figure 4, - au cours d'une sous-étape D621 représentée sur la figure 6B, reconstruire une pluralité de blocs respectivement à partir de ladite pluralité de couples appliquée, - au cours d'une sous-étape D622 représentée sur la figure 6B, sélectionner un bloc reconstruit parmi la pluralité de blocs reconstruits, par maximisation d'un critère de cohérence appliqué à la pluralité de blocs reconstruits. A l'issue de l'étape D622, le couple d'opérations de transformation et de permutation associé au bloc reconstruit sélectionné est alors identifié. Les sous-étapes D620 à D622 sont mises en oeuvre lorsque le décodeur DO de la figure 4 est capable de retrouver lui-même la totalité de l'indice m*,n*. De telles sous-étapes sont mises en oeuvre par un sous-module logiciel SMDT2 DO représenté sur la figure 4. Le critère de cohérence précité consiste à mesurer la cohérence des pixels d'un bloc reconstruit considéré par rapport à leur voisinage. La mesure de cohérence peut être une mesure de continuité entre les pixels du bloc reconstruit et ses voisins, par calcul d'une somme des valeurs absolues des différences. Selon encore une configuration particulière donnée à titre d'exemple et qui a été décrite en liaison avec l'étape C9 précitée : - dans le cas où une seule transformée, par exemple DST, est susceptible d'être appliquée au codage ou au décodage et où une opération de permutation OP0 est appliquée en combinaison avec la DST, si le décodeur DO lit un bit à '0', il attribue la valeur de ce bit au couple permutation-transformation SOP0 qui, au codage, a été associé au critère Jm.,n., - dans le cas où une seule transformée, par exemple DST, est susceptible d'être appliquée et où de multiples opérations de permutation peuvent être appliquées en combinaison avec la DST, si le décodeur DO lit un bit à '1', il attribue la valeur de ce bit à la pluralité de couples permutation-transformation possibles, susceptibles d'être appliqués au décodage, et déduit de lui-même quel est le couple qui a été réellement signalé, par exemple à l'aide de mesures de cohérence. La pluralité d'opérations de permutation OP-10 op-1m, OP 1K_ correspond à l'inverse de la pluralité d'opérations de permutation OP0, OPm,... , OPK_i dont des exemples ont été cités lors de la description ci-dessus du procédé de codage. La pluralité d'opérations de transformation inverse OT-10, OT-11,... , OT- , OTlui correspond à l'inverse de la pluralité d'opérations de transformation OTo, OTt , °Tm , °Tut dont des exemples ont été cités lors de la description ci-dessus du procédé de codage. Au cours d'une étape D7 représentée à la figure 5, il est procédé à l'application de l'opération de transformation OT-1'., inverse de l'opération de transformation OTre, aux données du bloc de coefficients déquantifié BDtU, pour produire un bloc permuté décodé BDpu. L'étape D7 est mise en oeuvre par un module logiciel MT-l_DO de transformation, tel que représenté figure 4, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_DO. Au cours d'une étape D8 représentée à la figure 5, il est procédé à l'application de l'opération de permutation OP-1m., inverse de l'opération de permutation OPm., aux données du bloc permuté décodé BDpu, pour produire un bloc résidu décodé BDru. L'étape D8 est mise en oeuvre par un module logiciel MPERIDO de permutation, tel que représenté figure 4, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_DO. Au cours d'une étape D9 représentée à la figure 5, il est procédé à la reconstruction du bloc courant Bu en ajoutant au bloc résidu courant décodé BDr, le bloc prédicteur BP0 obtenu à l'étape D3. Ladite étape D9 est mise en oeuvre par un module logiciel de prédiction inverse PRED-1 DO représenté sur la figure 4, lequel module est piloté par le microprocesseur pP de l'unité de traitement UT_DO. Un bloc décodé BD, est alors obtenu et stocké dans la mémoire tampon MT DO de la figure 4, afin d'être utilisé par le décodeur DO comme bloc prédicteur d'un bloc suivant à décoder. Au cours d'une étape D10 représentée à la figure 5, ledit bloc décodé BD, est écrit dans une image décodée courante IDCi. Une telle étape est mise en oeuvre un module logiciel URI de reconstruction d'image tel que représenté sur la figure 4, ledit module étant piloté par le microprocesseur pP du module de traitement UT_DO. Au cours d'une étape D11 représentée à la figure 5, le décodeur DO teste si le bloc courant BD, qui vient d'être décodé est le dernier bloc contenu dans le flux F. Si tel est le cas, au cours d'une étape D12 représentée à la figure 5, il est mis fin au procédé de décodage. Si tel n'est pas le cas, il est procédé, au cours de l'étape D2, à la sélection du bloc résidu suivant à décoder conformément à l'ordre de parcours raster scan précité. Les étapes de décodage qui viennent d'être décrites ci-dessus sont mises en oeuvre pour tous les blocs B1, B2, , B,,..., Bs à décoder de l'image courante IC; considérée. 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. Ainsi, le procédé de codage et/ou de décodage selon l'invention, au lieu de s'appliquer à des blocs courants de taille 4x4 ou 8x8, peut également s'appliquer à des blocs courants ayant différentes tailles possibles, telles que par exemple 16x16 et 32x32. REVENDICATIONS1. Procédé de codage d'au moins une image (IC;) découpée en blocs, caractérisé en ce qu'il comprend, pour un bloc courant (Bu) à coder, les étapes de : - prédiction (C3) du bloc courant à l'aide d'au moins un bloc prédicteur (BPopt), - détermination (C4) d'un bloc résidu de données représentatif de la différence entre le bloc prédicteur et le bloc courant, - sélection (C5), selon un critère prédéterminé, d'un couple d'opérations mathématiques comprenant une opération de permutation (OPm.) et une opération de transformation (0Tre) parmi respectivement une pluralité d'opérations de permutation (0130, OPE,..., OPm,... , OPK_i), avec Oen et 0rri*K-1, et une pluralité d'opérations de transformation (0To, 0T1, , °Tri, - , OTL4), avec 01.-L-1 et 0n*L-1, - application (C6) de l'opération de permutation (OPm.) dudit couple sélectionné aux données du bloc résidu déterminé, - application (C7) de l'opération de transformation (0Tre) dudit couple sélectionné aux données permutées, - codage (C9) des données issues de ladite opération de transformation appliquée. 2. Procédé de codage selon la revendication 1, dans lequel ladite pluralité d'opérations de transformation (0To, ()Tt_ , OTn,... , °T'A contient une transformée en sinus discrète. 3. Procédé de codage selon la revendication 1 ou la revendication 2, dans lequel ledit critère prédéterminé est la minimisation du coût débit-distorsion du bloc courant à coder. 4. Procédé de codage selon l'une quelconque des revendications 1 à 3, dans lequel l'opération de permutation sélectionnée consiste à déplacer deproche en proche les données du bloc résidu déterminé, conformément à une opération de transposition des données dudit bloc résidu. 5. Dispositif (CO) de codage d'au moins une image (IC;) découpée en blocs, comprenant, pour un bloc courant à coder : - des moyens (PRED_CO) pour prédire le bloc courant à l'aide d'au moins un bloc prédicteur (BPopt), - des moyens (PRED_CO) pour déterminer un bloc résidu de données représentatif de la différence entre le bloc prédicteur et le bloc courant, - des moyens (CAL_CO) pour sélectionner, selon un critère prédéterminé, un couple d'opérations mathématiques comprenant une opération de permutation (013,.) et une opération de transformation (0Tre) parmi respectivement une pluralité d'opérations de permutation (0130, OPE,..., OP,,..., OPK_i), avec 0rriK-1 et Orn*K-1, et une pluralité d'opérations de transformation (0To, OTn,..., °T'A, avec 01.-L-1 et On*L-1, - des moyens de permutation (MPER_CO) pour appliquer l'opération de permutation (013,.) dudit couple sélectionné aux données du bloc résidu déterminé, - des moyens de transformation (MT_CO) pour appliquer l'opération de transformation (0Tre) dudit couple sélectionné aux données permutées, - des moyens de codage (MCE) pour coder les données délivrées par lesdits moyens de transformation (MT_CO). 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 un ordinateur. 7. Procédé de décodage d'un signal de données (F) représentatif d'au moins une image (IC;) découpée en blocs, caractérisé en ce qu'il comprend, pour un bloc courant (Bu) à décoder, les étapes de :- détermination (D1), dans ledit signal de données, de données représentatives d'un bloc résidu courant associé au bloc courant à décoder, - détermination (D3) d'au moins un bloc prédicteur (BPopt) du bloc courant à décoder, - détermination (D6) d'un couple d'opérations mathématiques comprenant une opération de transformation (OT-'n-) et une opération de permutation (OP-'m-), - application (D7) de l'opération de transformation (OT-'n-) dudit couple d'opérations déterminé aux données représentatives d'un bloc résidu courant, - application (D8) de l'opération de permutation (013-1,.) dudit couple déterminé aux données obtenues à la suite de l'application de ladite opération de transformation, - reconstruction (D9) du bloc courant (Bu) à l'aide dudit bloc prédicteur déterminé et des données issues de l'opération de permutation appliquée. 8. Procédé de décodage selon la revendication 7, dans lequel l'étape de détermination (D6) dudit couple d'opérations mathématiques met en oeuvre les étapes suivantes : - lecture (D610), dans ledit signal de données, d'une information représentative du couple d'opérations de permutation et de transformation sélectionné au codage du bloc courant à décoder, - détermination (D611) des opérations de permutation et de transformation respectivement inverses des opérations de permutation et de transformation du couple associé à l'information lue. 9. Procédé de décodage selon la revendication 7, dans lequel l'étape de détermination (D6) dudit couple d'opérations mathématiques consiste à : - appliquer (D620) auxdites données représentatives du bloc résidu courant une pluralité de couples d'opérations mathématiques comprenant une opération de transformation suivie d'une opération de permutation, lesdites opérations de transformation et de permutation étantchoisies parmi respectivement une pluralité prédéterminée d'opérations de transformation (0T-10, OT-11,..., OT-1,-'..., OT-1L4), avec 01.-L-1 et une pluralité prédéterminée d'opérations de permutation (0E10, 013-1,..., OP1K-1), avec OeriK-1, - reconstruire (D621) une pluralité de blocs respectivement à partir de ladite pluralité de couples appliquée, - sélectionner (D622) un bloc reconstruit parmi la pluralité de blocs reconstruits, par maximisation d'un critère de cohérence appliqué à la pluralité de blocs reconstruits. 10. Procédé de décodage selon la revendication 8 ou la revendication 9, dans lequel ladite opération de transformation déterminée ou sélectionnée est une transformée en sinus discrète. 11. Procédé de décodage selon l'une quelconque des revendications 7 à 10, dans lequel l'opération de permutation dudit couple d'opérations déterminé consiste à déplacer de proche en proche lesdites données obtenues suite à l'application de l'opération de transformation du couple déterminé, conformément à une opération de transposition desdites données obtenues. 12. Dispositif (DO) de décodage d'un signal d'un signal de données (F) représentatif d'au moins une image (IC;) découpée en blocs, comprenant, pour un bloc courant à décoder : - des moyens (MI_DO) 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, - des moyens (PRED_DO) pour déterminer au moins un bloc prédicteur (BPopt) du bloc courant à décoder, - des moyens (MDTDO) pour déterminer un couple d'opérations mathématiques comprenant une opération de transformation (0T-1,.) et une opération de permutation (013-1,.),- des moyens de transformation (MTIDO) pour appliquer l'opération de transformation (OT-'n-) dudit couple déterminé aux données représentatives du bloc résidu courant, - des moyens de permutation (MPER-'_DO) pour appliquer l'opération de permutation (013-1,.) dudit couple déterminé aux données transformées, - des moyens de prédiction (PREDIDO) pour reconstruire le bloc courant (Bu) à l'aide dudit bloc prédicteur déterminé et des données délivrées par lesdits moyens de permutation (MPER-1 DO). 13. Programme d'ordinateur comportant des instructions pour mettre en oeuvre le procédé de décodage selon l'une quelconque des revendications 7 à 11, lorsque ledit procédé de décodage est exécuté sur un ordinateur. 20 25 30