FR3035761A1 - Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants - Google Patents

Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants Download PDF

Info

Publication number
FR3035761A1
FR3035761A1 FR1553941A FR1553941A FR3035761A1 FR 3035761 A1 FR3035761 A1 FR 3035761A1 FR 1553941 A FR1553941 A FR 1553941A FR 1553941 A FR1553941 A FR 1553941A FR 3035761 A1 FR3035761 A1 FR 3035761A1
Authority
FR
France
Prior art keywords
block
data
prediction
prediction mode
transform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1553941A
Other languages
English (en)
Inventor
Pierrick Philippe
Adria Arrufat
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Priority to FR1553941A priority Critical patent/FR3035761A1/fr
Publication of FR3035761A1 publication Critical patent/FR3035761A1/fr
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

L'invention concerne un procédé de codage d'au moins une image (ICj) découpée en blocs, mettant en œuvre, pour un bloc courant (Bi) à coder de ladite image : - une prédiction (C3) du bloc courant conformément à un mode de prédiction (MPS) sélectionné parmi une pluralité de modes de prédiction prédéterminés, - un calcul (C4) d'un bloc résidu de données représentatif d'une différence entre un bloc prédicteur (BPopt) obtenu à l'issue de la prédiction et le bloc courant, - une application (C6) d'une opération de transformée aux données dudit bloc résidu, - un codage (C8) des données obtenues à la suite de ladite opération de transformée, ledit procédé de codage étant caractérisé en ce que ladite opération de transformée associée audit mode de prédiction sélectionné est stockée en association avec au moins un autre mode de prédiction de ladite pluralité.

Description

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

Claims (14)

  1. REVENDICATIONS1. Procédé de codage d'au moins une image (ICj) découpée en blocs, mettant en oeuvre, pour un bloc courant (Bi) à coder de ladite image : - une prédiction (C3) du bloc courant conformément à un mode de prédiction (MPs) sélectionné parmi une pluralité de modes de prédiction prédéterminés, - un calcul (C4) d'un bloc résidu de données représentatif d'une différence entre un bloc prédicteur (BPopt) obtenu à l'issue de la prédiction et le bloc courant, - une application (C6) d'une opération de transformée aux données dudit bloc résidu, - un codage (C8) des données obtenues à la suite de ladite opération de transformée, ledit procédé de codage étant caractérisé en ce que ladite opération de transformée associée audit mode de prédiction sélectionné est stockée en association avec au moins un autre mode de prédiction de ladite pluralité.
  2. 2. Procédé de codage selon la revendication 1, mettant en oeuvre préalablement à l'application de ladite opération de transformée, au moins un déplacement (C40) des données du bloc résidu, chaque donnée considérée étant déplacée à l'intérieur du bloc résidu tout en conservant ses plus proches voisines.
  3. 3. Procédé de codage selon la revendication 2, dans lequel le type de déplacement de données dans le bloc résidu est fonction du mode de prédiction sélectionné.
  4. 4. Procédé de codage selon la revendication 3, dans lequel une pluralité d'opérations de transformée différentes étant associée au mode de prédiction sélectionné, il est procédé, suite au déplacement des données dont le type est fonction du mode de prédiction sélectionné, à: - une application de chacune desdites opérations de transformée aux données déplacées, 3035761 47 - un codage des données obtenues à l'issue de chacune desdites opérations de transformée, - une sélection des données codées qui optimisent un critère de performance de codage prédéterminé. 5
  5. 5. Dispositif (CO) de codage d'au moins une image (ICI) découpée en blocs, comprenant un circuit de traitement (CT_C) qui, pour un bloc courant (Bi) à coder de ladite image, est agencé pour : - prédire le bloc courant conformément à un mode de prédiction 10 sélectionné parmi une pluralité de modes de prédiction prédéterminés, - calculer un bloc résidu de données représentatif d'une différence entre un bloc prédicteur obtenu à l'issue de la prédiction et le bloc courant, - appliquer une opération de transformée aux données dudit bloc résidu, 15 - coder les données obtenues à la suite de ladite opération de transformée, ledit dispositif de codage étant caractérisé en ce que le circuit de traitement est agencé pour stocker ladite opération de transformée associée audit mode de prédiction sélectionné, en association avec au moins un autre mode de 20 prédiction de ladite pluralité.
  6. 6. Programme d'ordinateur comportant des instructions de code de programme pour l'exécution des étapes du procédé de codage selon l'une quelconque des revendications 1 à 4, lorsque ledit programme est exécuté sur 25 un ordinateur.
  7. 7. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé de codage selon l'une 30 quelconque des revendications 1 à 4, lorsque ledit programme est exécuté par un ordinateur. 3035761 48
  8. 8. Procédé de décodage d'un signal de données (F) représentatif d'au moins une image (1C1) découpée en blocs, mettant en oeuvre, pour un bloc courant (13;) à décoder : - une détermination (D3), dans ledit signal de données : 5 - de données représentatives d'un bloc résidu courant associé au bloc courant à décoder, - d'un mode de prédiction (MPs) du bloc courant à décoder, ledit mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés, 10 - une prédiction (D4) du bloc courant conformément au mode de prédiction déterminé (MPs), - une application (D7) d'une opération de transformée aux données représentatives dudit bloc résidu, - une reconstruction (D8) du bloc courant à l'aide d'un bloc 15 prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de ladite opération de transformée, ledit procédé de décodage étant caractérisé en ce que ladite opération de transformée associée audit mode de prédiction déterminé est stockée en association avec au moins un autre mode de prédiction de ladite pluralité. 20
  9. 9. Procédé de décodage selon la revendication 8, mettant en oeuvre à la suite de l'application de ladite opération de transformée, au moins un déplacement (D70) des données du bloc résidu transformé, chaque donnée considérée étant déplacée à l'intérieur du bloc résidu transformé tout en 25 conservant ses plus proches voisines.
  10. 10. Procédé de décodage selon la revendication 9, dans lequel le type de déplacement de données est fonction du mode de prédiction déterminé dans le signal de données. 30
  11. 11. Procédé de décodage selon la revendication 10, dans lequel une pluralité d'opérations de transformée différentes étant associée au mode de prédiction déterminé dans le signal de donnés, il est procédé, préalablement au 3035761 49 déplacement des données dont le type est fonction du mode de prédiction déterminé dans le signal de données, à : - une détermination d'un indicateur (IDX) représentatif de l'opération de transformée à appliquer, 5 - une application aux données représentatives dudit bloc résidu de l'opération de transformée dont l'indicateur a été déterminé.
  12. 12. Dispositif de décodage d'un signal de données (F) représentatif d'au moins une image (1C1) découpée en blocs, comprenant un circuit de traitement 10 (CT_D) qui, pour un bloc courant (13;) à décoder, est agencé pour : - déterminer, dans ledit signal de données : - des données représentatives d'un bloc résidu courant associé au bloc courant à décoder, - un mode de prédiction du bloc courant à décoder, ledit 15 mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés, - prédire le bloc courant conformément au mode de prédiction déterminé, - appliquer une opération de transformée aux données 20 représentatives dudit bloc résidu, - reconstruire le bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de ladite opération de transformée, ledit dispositif de décodage étant caractérisé en ce que le circuit de traitement 25 est agencé pour stocker ladite opération de transformée associée audit mode de prédiction déterminé, en association avec au moins un autre mode de prédiction de ladite pluralité.
  13. 13. Programme d'ordinateur comportant des instructions de code de 30 programme pour l'exécution des étapes du procédé de décodage selon l'une quelconque des revendications 8 à 11, lorsque ledit programme est exécuté sur un ordinateur. 3035761 50
  14. 14. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé de décodage selon l'une quelconque des revendications 8 à 11, lorsque ledit programme est exécuté par 5 un ordinateur. 10 15 20 25 30
FR1553941A 2015-04-30 2015-04-30 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants Pending FR3035761A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1553941A FR3035761A1 (fr) 2015-04-30 2015-04-30 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1553941A FR3035761A1 (fr) 2015-04-30 2015-04-30 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Publications (1)

Publication Number Publication Date
FR3035761A1 true FR3035761A1 (fr) 2016-11-04

Family

ID=53404783

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1553941A Pending FR3035761A1 (fr) 2015-04-30 2015-04-30 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Country Status (1)

Country Link
FR (1) FR3035761A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112702598A (zh) * 2020-12-03 2021-04-23 浙江智慧视频安防创新中心有限公司 基于位移操作进行编解码的方法、装置、电子设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120008683A1 (en) * 2010-07-09 2012-01-12 Qualcomm Incorporated Signaling selected directional transform for video coding
EP2493197A1 (fr) * 2009-10-23 2012-08-29 Huawei Technologies Co., Ltd. Procédé et dispositif de codage et de décodage vidéo

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2493197A1 (fr) * 2009-10-23 2012-08-29 Huawei Technologies Co., Ltd. Procédé et dispositif de codage et de décodage vidéo
US20120008683A1 (en) * 2010-07-09 2012-01-12 Qualcomm Incorporated Signaling selected directional transform for video coding

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ARRUFAT ADRIA ET AL: "Non-separable mode dependent transforms for intra coding in HEVC", 2014 IEEE VISUAL COMMUNICATIONS AND IMAGE PROCESSING CONFERENCE, IEEE, 7 December 2014 (2014-12-07), pages 61 - 64, XP032741172, DOI: 10.1109/VCIP.2014.7051504 *
ARRUFAT ADRIA ET AL: "Rate-distortion optimised transform competition for intra coding in HEVC", 2014 IEEE VISUAL COMMUNICATIONS AND IMAGE PROCESSING CONFERENCE, IEEE, 7 December 2014 (2014-12-07), pages 73 - 76, XP032741256, DOI: 10.1109/VCIP.2014.7051507 *
JINGNING HAN ET AL: "Jointly Optimized Spatial Prediction and Block Transform for Video and Image Coding", IEEE TRANSACTIONS ON IMAGE PROCESSING, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 21, no. 4, 1 April 2012 (2012-04-01), pages 1874 - 1884, XP011491948, ISSN: 1057-7149, DOI: 10.1109/TIP.2011.2169976 *
YANG H ET AL: "Simplified MDDT (SMDDT) for intra prediction residual", 2. JCT-VC MEETING; 21-7-2010 - 28-7-2010; GENEVA; (JOINT COLLABORATIVETEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL:HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-B039, 23 July 2010 (2010-07-23), XP030007619, ISSN: 0000-0048 *
YANG H ET AL: "TE7: Symmetry-based simplification of MDDT", 94. MPEG MEETING; 11-10-2010 - 15-10-2010; GUANGZHOU; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, no. M18125, 9 October 2010 (2010-10-09), XP030046715 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112702598A (zh) * 2020-12-03 2021-04-23 浙江智慧视频安防创新中心有限公司 基于位移操作进行编解码的方法、装置、电子设备及介质

Similar Documents

Publication Publication Date Title
EP2255537B1 (fr) Codage et decodage d&#39;une image ou d&#39;une sequence d&#39;images decoupees en blocs de pixels
EP3183879A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, et programmes d&#39;ordinateurs associés
WO2010149900A1 (fr) Procédé de codage et de décodage d&#39;images, dispositifs de codage et de décodage, flux de données et programme d&#39;ordinateur correspondants
EP2985998A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
WO2015059400A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
FR2933565A1 (fr) Procede et dispositif de codage d&#39;une sequence d&#39;images mettant en oeuvre une prediction temporelle, signal, support de donnees, procede et dispositif de decodage, et produit programme d&#39;ordinateur correspondants
EP3058737A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3075155B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
WO2017037368A2 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP2761871B1 (fr) Estimation de mouvement au niveau du décodeur par mise en correspondance de modèles
FR3050598A1 (fr) Procede de decodage d&#39;une image numerique, procede de codage, dispositifs, et programmes d&#39;ordinateurs associes
EP2716045B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
WO2016024067A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3632103B1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP2279620B1 (fr) Prediction d&#39;images par determination prealable d&#39;une famille de pixels de reference, codage et decodage utilisant une telle prediction
FR3035761A1 (fr) Procede de codage et de decodage d&#39;images, dispositif de codage et de decodage d&#39;images et programmes d&#39;ordinateur correspondants
FR3057130B1 (fr) Procede de codage d&#39;une image, procede de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
EP3384672A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
FR3033114A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants
FR2956552A1 (fr) Procede de codage ou de decodage d&#39;une sequence video, dispositifs associes
FR3050858A1 (fr) Procede de codage et de decodage d’images, dispositif de codage et de decodage d’images et programmes d’ordinateur correspondants
FR3018149A1 (fr) Procede et dispositif de selection d&#39;un operateur de conversion de dynamique d&#39;image, programme d&#39;ordinateur et support de stockage correspondant

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20161104