FR3040578A1 - 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
FR3040578A1
FR3040578A1 FR1558066A FR1558066A FR3040578A1 FR 3040578 A1 FR3040578 A1 FR 3040578A1 FR 1558066 A FR1558066 A FR 1558066A FR 1558066 A FR1558066 A FR 1558066A FR 3040578 A1 FR3040578 A1 FR 3040578A1
Authority
FR
France
Prior art keywords
transform
prediction
prediction mode
transform operations
block
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.)
Withdrawn
Application number
FR1558066A
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 FR1558066A priority Critical patent/FR3040578A1/fr
Priority to CN202211418498.4A priority patent/CN115802030A/zh
Priority to US15/756,349 priority patent/US10523969B2/en
Priority to CN201680049338.3A priority patent/CN107925757B/zh
Priority to BR112018003492-4A priority patent/BR112018003492B1/pt
Priority to JP2018510437A priority patent/JP6951324B2/ja
Priority to EP16770058.2A priority patent/EP3345391A2/fr
Priority to PCT/FR2016/052128 priority patent/WO2017037368A2/fr
Priority to KR1020187007620A priority patent/KR20180048719A/ko
Publication of FR3040578A1 publication Critical patent/FR3040578A1/fr
Priority to US16/728,640 priority patent/US10911784B2/en
Priority to JP2020144454A priority patent/JP7130708B2/ja
Withdrawn 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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
    • 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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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

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, ladite opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké (CO) en association avec un mode de prédiction sélectionné, - 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 lors du stockage (CO) de l'ensemble d'opérations de transformée associé audit mode de prédiction sélectionné, le nombre d'opérations de transformée contenu dans ledit ensemble est différent du nombre d'opérations de transformées contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.

Description

PROCÉDÉ DE CODAGE ET DE DÉCODAGE D’IMAGES. DISPOSITIF DE CODAGE ET DE DECODAGE 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 œuvre dans les codeurs vidéo actuels AVC et HEVC et leurs extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant.
Art antérieur
Les codeurs vidéo actuels (MPEG, H.264, HEVC, ...) utilisent une représentation par blocs de la séquence vidéo. Les images sont découpées en blocs, lesquels sont susceptibles d’être redécoupés de façon récursive. Puis chaque bloc est codé par prédiction intra-images ou inter-images. Ainsi, certaines images sont codées par prédiction spatiale (prédiction Intra), d’autres images sont également codées par prédiction temporelle (prédiction Inter) par rapport à une ou plusieurs images de référence codées-décodées, à l'aide d'une compensation en mouvement connue par l’homme de l’art.
Pour chaque bloc est codé un bloc résidu, encore appelé résidu de prédiction, correspondant au bloc original diminué d’une prédiction. Notons que dans un cas particulier, la prédiction peut être omise, le bloc résidu étant alors équivalent au bloc original. 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, 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 codage qui a été choisi. Dans la norme HEVC, par exemple, l’ordre de lecture est dépendant de la prédiction réalisée et peut être effectué dans l’ordre « horizontal >>, « vertical >> ou « diagonal >>. A l’issue du parcours précité, une liste monodimensionnelle de coefficients est obtenue. Les coefficients de cette liste sont alors codés sous forme de bits par un codage entropique dont le but est de coder les coefficients sans perte.
Les bits obtenus après codage entropique sont inscrits dans un signal flux de données qui est destiné à être transmis au décodeur.
De façon connue en soi, un tel signal comprend : - les coefficients quantifiés contenus dans la liste précitée, - des informations représentatives du mode de codage utilisé, en particulier: • le mode de prédiction (prédiction Intra, prédiction Inter, prédiction par défaut réalisant une prédiction pour laquelle aucune information n’est transmise au décodeur (« en anglais « skip »)) ; • des informations précisant le type de prédiction (orientation, image de référence, ...) ; • le type de découpage du bloc ; • les informations de mouvement si nécessaire ; • etc.
Une fois que le flux a été reçu par le décodeur, le décodage est fait image par image, et pour chaque image, bloc par bloc. Pour chaque bloc, les éléments correspondants du flux sont lus. La quantification inverse et la 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é.
La technique de codage/décodage classique qui vient d’être décrite permet certes des améliorations des performances de codage. Selon le contexte vidéo, elle permet notamment : - une amélioration de la qualité des images pour un débit donné du réseau utilisé pour transmettre les images, - un réduction du débit de transmission des images pour un critère de qualité d’images préalablement fixé.
Toutefois, de telles performances de codage ne sont actuellement pas optimisées et ont vocation à encore être améliorées, en particulier du point de vue de l’obtention du meilleur compromis - ressources mémoire/performances de codage-.
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 (K>1), permet d’obtenir un ensemble de K coefficients. Dans les codeurs/décodeurs vidéo actuels (MPEG, H.264, HEVC, ...), une seule transformée est stockée en association avec un mode de prédiction donné.
Dans le domaine du codage vidéo, les transformées en cosinus discrète, DCT (abréviation anglaise de « Discrète Cosine Transform »), ou les transformées en sinus discrète, DST (abréviation anglaise de « Discrète Sine Transform »), sont généralement privilégiées, notamment pour les raisons 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.
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 K pixels qui sont organisés sous forme d’une matrice MxN, où Al est une matrice de données de taille MxM et Μ, 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.
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/.
Enfin, une deuxième transformée Ac est appliquée sur le bloc transposé (Al.x/, où Ac est une matrice de données de taille NxN. A l’issue de l’application de cette deuxième transformée est obtenu un deuxième bloc transformé X de K=NxM pixels, tel que :
Selon un deuxième cas, l’ordre d’application des transformées Al et Ac est inversé. Le deuxième bloc transformé X de K=NxM pixels s’écrit alors de la façon suivante :
Le bloc transformé X obtenu selon ce deuxième cas est similaire au bloc transformé X obtenu selon le premier cas, à une transposition près.
Dans le cas particulier où le bloc résidu x est carré, c'est-à-dire M=N, les matrices Al et Ac ont la même taille.
Au décodage, de façon connue en soi, sont appliquées des transformées inverses de celles mentionnées ci-dessus.
Ainsi, si la transformée a été appliquée selon le premier cas, la transformée inverse correspondante permet d’obtenir le bloc résidu x à l’aide du calcul suivant :
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 :
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 ΑΓ1 et Ac'1 sont appelées 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 de dimension 1xK, 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 bloc résidu x suivant :
Dans le domaine du codage vidéo, il a été proposé, notamment dans la publication « Non-separable mode dépendent transforms for Intra coding in HEVC, Adrià Arrufat et al. VCIP 2014 » d’augmenter le nombre de transformées par modes de prédiction proposés. Ainsi, dans le cadre d’une prédiction spatiale conforme au standard HEVC qui peut être mise en œuvre selon trente-cinq modes de prédiction spatiale différents, il est proposé de stocker 16 transformées en association avec chacun des 35 modes de prédiction respectivement. Lorsqu’un mode de prédiction est sélectionné, une transformée est sélectionnée parmi les 16 transformées stockées pour ce mode de prédiction, selon un critère de performance de codage prédéterminé, tel que le critère débit-distorsion bien connu de l’Homme du métier.
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 pour pouvoir mettre en oeuvre une telle adaptation a un impact sur les 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.
Ainsi, si on se place dans le cas de transformées séparables, ce qui est le cadre général en codage vidéo, le besoin de stockage peut être estimé suivant un nombre total NT de transformées, tel que NT=n*NMp où n est le nombre de transformées à provisionner par mode de prédiction et Nmp est le nombre de modes de prédiction proposés. Plus particulièrement dans le cas d’un codage HEVC utilisant par exemple des transformées de taille 8x8, dont les coefficients sont stockés sur un octet, il est nécessaire de stocker 2 transformées (verticales et horizontales) ce qui requiert à minima (2*8*8*71* jVMP)/1024= 4.375 kilooctets, où n=1 et NMp=35.
Cette configuration est représentée sur la première ligne du tableau ci-dessous. Pour cette configuration, sont également représentées les performances de codage obtenues. Ces performances correspondent au gain en débit, c'est-à-dire au pourcentage de réduction de débit obtenu sans affecter les performances de codage (à distorsion constante). Les lignes suivantes représentent l’évolution des ressources mémoire requises lorsque respectivement deux, quatre, huit, seize transformées 8x8 sont stockées en association avec chacun des 35 modes de prédiction spatiale, ainsi que les performances de codage correspondantes.
Il convient de constater que selon le tableau ci-dessus, la quantité de mémoire croit linéairement avec le nombre de transformées à provisionner par mode de prédiction et devient significative comparativement à la quantité de stockage requise pour les codeurs actuels, tels que par exemple les codeurs HEVC, pour lesquels la quantité de mémoire consacrée au stockage des transformées est de 1 ko environ.
En outre, il est observé que les performances de codage les plus élevées (gain en débit de 2,48%) nécessitent une quantité de mémoire non négligeable de 560ko par rapport à la quantité de mémoire maximale de 1 ko requise dans HEVC. Même si le gain en débit de 2,48% s’avère intéressant, une mémoire de capacité 70ko pour stocker 560 transformées afin d’obtenir un tel gain s’avère bien trop coûteuse, sachant que les mémoires utilisées pour l’implémentation matérielle de systèmes de codage/décodage vidéo doivent être rapides au regard de la quantité de données traitées.
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 de codage d'au moins une image découpée en blocs, mettant en oeuvre, pour un bloc courant à coder de l’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, - 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 dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d’opérations de transformée qui est préalablement stocké en association avec un mode de prédiction sélectionné, - un codage des données obtenues à la suite de ladite opération de transformée
Un tel procédé de codage est remarquable en ce que lors du stockage de l’ensemble d’opérations de transformée associé au mode de prédiction sélectionné, le nombre d’opérations de transformée contenu dans cet ensemble est différent du nombre d’opérations de transformées contenu dans un ensemble d’opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés.
Une telle disposition permet, lorsqu’il existe plusieurs opérations de transformée par mode de prédiction : - soit de réduire significativement les ressources mémoire du codeur en vue du stockage des matrices de transformée par rapport aux ressources mémoire des codeurs de l’art antérieur, sans pour cela détériorer les performances de codage du bloc courant, - soit augmenter les performances de codage du bloc courant sans pour cela requérir à une augmentation des ressources mémoire du codeur en vue du stockage des matrices de transformée, par rapport aux ressources mémoire des codeurs de l’art antérieur.
Selon un mode de réalisation particulier, pour au moins deux ensembles d’opérations de transformées stockés respectivement en association avec deux modes de prédiction de la pluralité de modes de prédiction prédéterminés, le nombre d’opérations de transformée dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique.
Une telle disposition permet de réduire davantage les ressources mémoire du codeur en vue du stockage des matrices de transformée.
Ainsi par exemple, dans le cadre du standard HEVC, au moins deux ensembles d’opérations de transformée pourraient contenir en commun : - une seule opération de transformée, par exemple une transformée de type DCT, - deux opérations de transformée, par exemple une transformée de type DCT et une transformée de type DST, - etc...
Selon un autre mode de réalisation particulier, l’ensemble d’opérations de transformée associé au mode de prédiction sélectionné est stocké en association avec au moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés.
Une telle disposition permet de réduire encore davantage les ressources mémoire du codeur en vue du stockage des matrices de transformée. L’invention propose différentes manières de déterminer le nombre d’opérations de transformées en fonction du mode de prédiction, de façon à optimiser le compromis « ressources mémoire-performance de codage >>.
Selon un mode de réalisation particulier, le nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction oblique.
Selon un autre mode de réalisation particulier, le nombre d’opérations de transformée, qui est déterminé dans le cas d’un mode de prédiction pour lequel la prédiction est calculée en moyennant plus de deux pixels d’un bord du bloc courant, est supérieur ou égal au nombre d’opérations de transformée qui est déterminé pour tout autre mode de prédiction.
Selon encore un autre mode de réalisation particulier, le nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction qui a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction qui n’a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
Selon encore un autre mode de réalisation particulier, le nombre d’opérations de transformée contenu dans l’ensemble d’opérations de transformée stocké en association avec le mode de prédiction sélectionné est déterminé en fonction de la quantité d’informations représentatives du mode de prédiction sélectionné.
Cette dernière disposition permet en outre de calculer simplement et de façon optimale en termes de compromis « ressources mémoire-performance de codage >> le nombre d’opérations de transformées à utiliser pour un mode de prédiction prédéterminé donné.
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 courant à coder de l’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, - appliquer une opération de transformée aux données du bloc résidu, l’opération de transformée appartenant à un ensemble d’opérations de transformée qui est préalablement stocké en association avec le mode de prédiction sélectionné, - 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 circuit de traitement est agencé pour stocker l’ensemble d’opérations de transformée associé au mode de prédiction sélectionné, le nombre d’opérations de transformée contenu dans cet ensemble étant différent du nombre d’opérations de transformée contenu dans un ensemble d’opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés.
Un tel dispositif de codage est notamment apte à mettre en oeuvre le procédé de codage précité. L'invention concerne aussi un procédé de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, mettant en oeuvre, pour un bloc courant à décoder : - 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, • d’un mode de prédiction du bloc courant à décoder, ce 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é, - une application d’une opération de transformée aux données représentatives du bloc résidu, une telle opération de transformée appartenant à un ensemble d’opérations de transformée qui est préalablement stocké en association avec le mode de prédiction déterminé, - 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 ladite opération de transformée.
Un tel procédé de décodage est remarquable en ce que lors du stockage de l’ensemble d’opérations de transformée associé au mode de prédiction déterminé, le nombre d’opérations de transformée contenu dans cet ensemble est différent du nombre d’opérations de transformées contenu dans un ensemble d’opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés.
De façon similaire au codeur, une telle disposition est avantageuse au décodeur qui doit également connaître les transformées pour appliquer la transformée inverse de celle appliquée au codage. En particulier, une telle disposition permet, lorsqu’il existe plusieurs opérations de transformée par mode de prédiction : - soit de réduire significativement les ressources mémoire du décodeur en vue du stockage des matrices de transformée par rapport aux ressources mémoire des décodeurs de l’art antérieur, sans pour cela détériorer la qualité de reconstruction du bloc courant, - soit augmenter la qualité de reconstruction du bloc courant sans pour cela requérir à une augmentation des ressources mémoire du décodeur en vue du stockage des matrices de transformée par rapport aux ressources mémoire des décodeurs de l’art antérieur.
Selon un mode de réalisation particulier, pour au moins deux ensembles d’opérations de transformée stockés respectivement en association avec deux modes de prédiction de la pluralité de modes de prédiction prédéterminés, le nombre d’opérations de transformée dans chacun des deux ensembles contient en commun au moins une opération de transformée identique.
Selon un autre mode de réalisation particulier, l’ensemble d’opérations de transformée associé au mode de prédiction déterminé est stocké en association avec au moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés.
Selon encore un autre mode de réalisation particulier, le nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction oblique.
Selon encore un autre mode de réalisation particulier, le nombre d’opérations de transformée, qui est déterminé dans le cas d’un mode de prédiction pour lequel la prédiction est calculée en moyennant plus de deux pixels d’un bord du bloc courant, est supérieur ou égal au nombre d’opérations de transformée qui est déterminé pour tout autre mode de prédiction.
Selon encore un autre mode de réalisation particulier, le nombre d’opérations de transformée qui est déterminé dans le cas où le mode de prédiction déterminé a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d’opérations de transformée qui est déterminé dans le cas où le mode de prédiction déterminé n’a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
Selon encore un autre mode de réalisation particulier, le nombre d’opérations de transformée contenu dans l’ensemble d’opérations de transformée stocké en association avec le mode de prédiction déterminé est déterminé en fonction de la quantité d’informations représentatives du mode de prédiction déterminé.
Les différents modes ou caractéristiques de réalisation précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de décodage tel que défini ci-dessus. L'invention concerne également un dispositif de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, comprenant un circuit de traitement qui, pour un bloc courant à décoder, est agencé pour : - déterminer, dans le signal de données : • des données représentatives d’un bloc résidu courant associé au bloc courant à décoder, • un mode de prédiction du bloc courant à décoder, ce 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 représentatives du bloc résidu, une telle opération de transformée appartenant à un ensemble d’opérations de transformée qui est préalablement stocké en association avec le mode de prédiction déterminé, - 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 circuit de traitement est agencé pour stocker l’ensemble d’opérations de transformée associé au mode de prédiction déterminé, le nombre d’opérations de transformée contenu dans cet ensemble étant différent du nombre d’opérations de transformée contenu dans un ensemble d’opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés.
Un tel dispositif de décodage est notamment apte à mettre en œuvre le procédé de décodage précité. L'invention concerne encore un programme d'ordinateur comportant des instructions pour mettre en œuvre l'un des procédés de codage et de décodage selon l'invention, lorsqu'il est exécuté sur un ordinateur.
Ce programme peut utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable. L’invention vise également un support d’enregistrement lisible par un ordinateur sur lequel est enregistré un programme d’ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre de l'un des procédés de codage ou de décodage selon l'invention, tels que décrits ci-dessus. L’invention vise également un support d’enregistrement lisible par un ordinateur sur lequel est enregistré un programme d’ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre du procédé de codage ou de décodage selon l'invention, tels que décrits ci-dessus.
Le support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une clé USB ou un disque dur. D'autre part, le support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé de codage ou de décodage précité.
Brève description des dessins D'autres caractéristiques et avantages apparaîtront à la lecture d’un mode de réalisation préféré décrit en référence aux figures dans lesquelles: - la figure 1 représente les étapes du procédé de codage selon l’invention, - la figure 2 représente un mode de réalisation d'un dispositif de codage selon l'invention, - la figure 3 représente les étapes d’un procédé de détermination d’un nombre variable de transformées par mode de prédiction, selon un mode de réalisation de l’invention, - la figure 4 représente un tableau illustrant le nombre de transformées déterminé par mode de prédiction, après ajout successif de seize transformées selon le procédé de détermination de la figure 3, - la figure 5 représente un diagramme comparatif entre le compromis - ressources mémoire/performances de codage -, tel qu’obtenu à la suite de la mise en oeuvre du procédé itératif de la figure 3, et celui obtenu avec un nombre de transformées identique par mode de prédiction, - la figure 6A 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 6B représente un deuxième exemple de regroupement de différents modes de prédiction Intra en fonction de la symétrie de leurs angles correspondants, - la figure 7 représente un graphique qui illustre la relation entre trente-trois modes de prédiction Intra HEVC et leurs directions angulaires correspondantes, - la figure 8 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 9 représente un tableau illustrant le nombre de transformées déterminé par groupe de modes de prédiction, après ajout successif de seize transformées selon une variante du procédé de détermination de la figure 3, - la figure 10 représente un mode de réalisation d'un dispositif de décodage selon l'invention, - la figure 11 représente les principales étapes du procédé de décodage selon l’invention.
Description détaillée de la partie codage
Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de codage selon l'invention est utilisé pour coder une image ou une séquence d'images selon un flux binaire proche de celui qu'on obtient par un codage conforme à l’une quelconque des normes de codage vidéo actuelles ou à venir.
Dans ce mode de réalisation, le procédé de codage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un codeur initialement conforme à l’une quelconque des normes de codage vidéo actuelles ou à venir. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes CO à C9 telles que représentées à la figure 1.
Selon le mode de réalisation de l'invention, le procédé de codage selon l'invention est implémenté dans un dispositif de codage CO représenté à la figure 2.
Comme illustré en figure 2, un tel dispositif codeur comprend : - une entrée ENT_C pour recevoir une image courante à coder, - un circuit de traitement CT_C pour mettre en œuvre 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, • 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 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 ICj fixe ou bien faisant partie d’une séquence de L images ICi, ..., ICj,..., ICi_(1<j<L) à coder.
Au cours d’une étape C1 représentée à la figure 1, il est procédé, de façon connue en soi, au partitionnement d’une image courante ICj en une pluralité de blocs Bi, B2, ..., B,,..., Bs (1<i<S), par exemple de taille MxM pixels, où M est un entier naturel supérieur ou égal à 1. Une telle étape de partitionnement est mise en œuvre par un module logiciel de partitionnement MP_C représenté sur la figure 2, lequel module est piloté par le processeur PROC_C.
Il convient de noter qu’au sens de l’invention, le terme « bloc » signifie unité de codage (de l’anglais « coding unit »). Cette dernière terminologie est notamment utilisée dans la norme HEVC « ISO/IEC/23008-2 Recommandation ITU-T H.265 High Efficiency Video Coding (HEVC) ».
En particulier, une telle unité de codage regroupe des ensembles de pixels de forme rectangulaire ou carrée, encore appelés blocs, macroblocs, ou bien des ensembles de pixels présentant d'autres formes géométriques.
Lesdits blocs B-ι, B2, ..., B,,..., 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. D’autres types de parcours sont bien sûr possibles. Ainsi, il est possible de découper l’image ICj en plusieurs sous-images appelées slices et d’appliquer indépendamment un découpage de ce type sur chaque sous-image. Il est également possible de coder non pas une succession de lignes, comme expliqué ci-dessus, mais une succession de colonnes. Il est également possible de parcourir les lignes ou colonnes dans un sens ou dans l’autre.
Chaque bloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles.
Au cours d’une étape C2 représentée à la figure 1, le codeur CO sélectionne comme bloc courant un premier bloc à coder B, de l’image ICj, tel que par exemple le premier bloc Bi.
Au cours d’une étape C3 représentée à la figure 1, il est procédé à la prédiction du bloc courant B, par des techniques connues de prédiction Intra et/ou Inter. A cet effet, le bloc B, est prédit par rapport à au moins un bloc prédicteur conformément à un mode de prédiction MPS sélectionné parmi une pluralité de modes de prédiction prédéterminés MP0, MPt,..., MPv,..., MPr où 0^v<R+1 et 0<s<R+1.
De façon connue en soi, le bloc B, 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 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 BPoptest obtenu suite à une mise en compétition desdits modes de prédiction prédéterminés, par exemple par minimisation d’un critère débit distorsion bien connu de l'homme du métier. Le bloc 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 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 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 B, 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 le bloc courant B,.
Un ensemble de données, appelé bloc résidu Βη, 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é 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,. Une telle transformée peut être par exemple : - une transformée directe telle que par exemple une transformée en cosinus discrète de type DCT, - une transformée directe telle que par exemple une transformée en sinus discrète de type DST, -une transformée bloc optimisée en débit distorsion comme présenté dans la publication « Rate-distortion optimised transform compétition for intra coding in HEVC », Adrià Arrufat, Pierrick Philippe, Olivier Déforges, IEEE VCIP, Dec 2014, - une transformée en ondelettes du type DWT, - une transformée incluant un recouvrement du type Lapped Transforms telle que présentée dans la publication « Réduction of blocking effects in image coding with a lapped orthogonal transform », H. Malvar, - ou tout autre type de transformées exploitables.
Ladite transformée appartient à un ensemble de transformées qui, au cours d’une étape préalable de stockage CO représentée à la figure 1, est stocké en association avec le mode de prédiction sélectionné MPS, dans la mémoire tampon MT_C de la figure 2. Au cours de cette étape de stockage : - le mode de prédiction prédéterminé MPo est stocké en association avec un ensemble de transformées contenant un nombre NBo de transformées, - le mode de prédiction prédéterminé MP-ι est stocké en association avec un ensemble de transformées contenant un nombre NBi de transformées, - le mode de prédiction prédéterminé MPV est stocké en association avec un ensemble de transformées contenant un nombre NBV de transformées, - le mode de prédiction prédéterminé MPR est stocké en association avec un ensemble de transformées contenant un nombre NBr de transformées.
Conformément à l’invention, pour au moins deux modes de prédiction différents MPa, MPb appartenant à la pluralité de modes de prédiction prédéterminés MPo, MP-ι,..., MPV,..., MPr, avec O^a^R+1 et 0<b^R+1, le nombre de transformées, noté NBa, qui est contenu dans l’ensemble de transformées associé au mode de prédiction MPa est différent du nombre de transformées, noté NBb, qui est contenu dans un ensemble de transformées stocké en association avec le mode de prédiction MPb.
Selon un premier exemple de réalisation, pour au moins deux ensembles de transformées stockés respectivement en association avec deux modes de prédiction de ladite pluralité MP0, MP!,..., MPV,..., MPR de modes de prédiction prédéterminés, le nombre de transformées dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique.
Par exemple, dans le cas d’un codage selon le standard HEVC, le nombre de transformées dans chacun desdits deux ensembles peut par exemple contenir en commun : - une transformée de type DST ou bien une transformée de type DCT, - deux transformées, l’une de type DCT, l’autre de type DST, - plus de deux transformées en commun.
Par ailleurs, plus de deux ensembles de transformées peuvent contenir en commun au moins une opération de transformée identique. Toujours dans le cas d’un codage selon le standard HEVC, et plus particulièrement dans le cas d’une prédiction Intra conforme à ce standard qui propose trente-cinq directions de prédiction possibles DPIo, DPIi,..., DPI34, les ensembles de transformées associés respectivement à chacune de ces trente-cinq directions de prédiction peuvent contenir en commun au moins une opération de transformée identique.
Selon un deuxième exemple de réalisation représenté sur la figure 2, l’ensemble de transformées associé audit mode de prédiction sélectionné MPS et contenant un nombre NBS de transformées est stocké en association avec au moins un autre mode de prédiction, noté MPU, de ladite pluralité de modes de prédiction prédéterminés MPo, MPi,..., MPV,..., MPr, avec 0<u<R+1.
Ainsi, en fonction du nombre NBS de transformées qui est contenu dans l’ensemble de transformées associé au mode de prédiction MPS sélectionné à l’étape C4, l’étape de détermination précitée C5 consiste : - soit à lire une unique transformée, notée TS|k, si l’ensemble de transformées qui est associé au mode de prédiction MPS ne contient qu’une transformée, c'est-à-dire dans le cas où NBS=1, - soit à sélectionner une transformée parmi plusieurs, notée par exemple TS|k*, avec 0<k*<N-1, si l’ensemble de transformées qui est associé au mode de prédiction MPS contient plus d’une transformée, c'est-à-dire dans le cas où NBS>1, une telle sélection étant mise en œuvre selon un critère de performance de codage prédéterminé, par exemple : • par minimisation du critère débit/distorsion bien connu de l'homme du métier, • ou par minimisation uniquement du débit, • ou par minimisation uniquement de la distorsion, • ou par minimisation du compromis débit-distorsion/complexité bien connu de l'homme du métier, • ou par minimisation uniquement de l’efficacité, • ou par minimisation uniquement de la complexité.
On rappelle que dans un contexte de codage vidéo, la complexité est définie par exemple par le comptage du nombre d’opérations mathématiques (addition, multiplication, décalage binaire) impliquées pour le calcul de la transformée des coefficients du bloc résidu.
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,k ou Ts,k*· Une telle 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. A l’issue de l’étape C6, un bloc transformé Bt, est obtenu.
Au cours d’une étape C7 représentée à la figure 1, il est procédé à la quantification des données du bloc transformé Bt, selon une opération classique de quantification, telle que par exemple une quantification scalaire ou 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 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 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 di, d2,...,dw,..., dv (1^w<V avec V entier naturel) associées au bloc courant B,. 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 di, d2,...,dw,..., dv obtenues à l’issue de l’étape C8 précitée, - l’index IDX de la transformée Ts,k ou Ts,k* qui a été déterminée à l’étape C5. L’index IDX peut être inscrit dans le flux, par exemple sous la forme d’un code binaire. Une telle disposition est par exemple mise en œuvre si la transformée Ts,k ou Ts,k* est une transformée qui est commune aux R+1 ensembles de transformées associés respectivement aux R+1 modes de prédiction prédéterminés MP0, MP-ι,..., MPV,..., MPr. L’index IDX sera alors mis à 1 ou 0, par exemple 1. Si en revanche la transformée Ts,k ou Ts,k* est une transformée qui n’est pas commune aux R+1 ensembles de transformées associés respectivement aux R+1 modes de prédiction prédéterminés MP0, MP-ι,..., MPV,..., MPr, l’index IDX contiendra une premier bit de valeur 0, suivi d’un mot de code supplémentaire représentatif de la transformée Ts,kOu Ts,k* qui a été sélectionnée dans le nombre NBS de transformées contenu dans l’ensemble de transformées associé au mode de prédiction MPS sélectionné. Le premier bit de valeur 0 est par exemple codé à l’aide d’un codeur CABAC. Le mot de code supplémentaire peut être codé sur une longueur fixe si le nombre de transformées NBS est une puissance de 2. Le mot de code supplémentaire peut être également codé sur un code à longueur variable si le nombre de transformées NBS est une puissance de 2 ou pas. L’étape C9 est mise en œuvre 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 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 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.
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é BDn.
Il est à noter que le bloc décodé BD, est le même que le bloc décodé obtenu à l’issue du procédé de décodage de l’image ICj 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 C1 à C9 qui viennent d’être décrites ci-dessus sont ensuite mises en œuvre pour chacun des blocs Bi, B2, ..., B,,..., Bs à coder de l’image courante ICj considérée, dans un ordre prédéterminé qui est par exemple l’ordre lexicographique.
On va maintenant décrire, en référence aux figures 3 à 8, selon un premier mode de réalisation de l’invention, un procédé de détermination du nombre de transformées pour chaque mode de prédiction prédéterminé, dans le cas d’un codage HEVC de type Intra.
Préalablement à la mise en œuvre des étapes du procédé de codage de la figure 1, il est procédé aux étapes suivantes :
Au cours d’une étape ST1 représentée sur la figure 3, il est déterminé un nombre maximal nmax de transformées susceptible d’être associé à un mode de prédiction intra donné.
Dans le mode de réalisation représenté, nmax=16, ce nombre pouvant inclure ou non au moins une transformée HEVC commune à chacun des 35 modes de prédiction intra ipm du standard HEVC.
Au cours d’une étape ST2 représentée sur la figure 3, il est procédé à une initialisation à zéro du nombre de transformées pour chacun des trente-cinq modes de prédiction intra ipm du standard HEVC. Chaque mode de prédiction n’a à cette étape qu’une seule transformée commune du type de celle de HEVC (DCT ou DST) et zéro transformée additionnelle. Une telle étape est résumée dans le tableau TB1 de la figure 4, dont la première colonne liste les 35 modes de prédiction intra ipmo à ipm34 et la première ligne liste les quinze premières itérations (iter) au cours de chacune desquelles est ajoutée une transformée. A la suite de la première colonne du tableau TB1 sont listés également, pour chacune des quinze premières itérations (iter) : - le mode de prédiction (ipm) sélectionné selon le meilleur compromis - ressources mémoire/performances de codage -, suite à l’ajout d’une transformée donnée, - le nombre global (Nb) de transformées ajoutées depuis la première itération (iter), - la capacité de stockage (ROM) utilisée au codeur pour stocker la globalité des transformées ajoutées, - les performances de codage (BDRate) obtenues, c'est-à-dire le pourcentage de réduction de débit obtenu relativement à un codeur HEVC.
Dans le tableau TB1, l’initialisation à zéro est représentée avec iter=0.
Au cours d’une étape ST3 représentée sur la figure 3, il est procédé à une première itération iter=1, au cours de laquelle on ajoute une première transformée.
Au cours d’une étape ST4 représentée sur la figure 3, il est procédé, pour chacun des trente-cinq modes de prédiction intra, au calcul des performances de codage et de la capacité de stockage à utiliser en relation avec la transformée ajoutée.
Pour un mode de prédiction intra donné ipmx, avec 0<x<34, et une itération donnée it, avec itëO, les performances de codage obtenues, c'est-à-dire le gain en débit, sont notées Rit,x et la capacité de stockage correspondante pour stocker la transformée ajoutée est notée Mit,x.
Au cours d’une étape ST5 représentée sur la figure 3, il est procédé, pour chacun des trente-cinq modes de prédiction intra, au calcul du rapport a_x entre l’écart de débit obtenu et l’écart de mémoire ajouté, tel que : a_x=(Rit,x-Ro)/(Mit,x-Mo) avec Ro et M0 présentant respectivement le débit économisé et la mémoire ajoutée par rapport au standard HEVC, c'est-à-dire à l’itération it=0. (R0=0, M0=0).
Au cours d’une étape ST6 représentée sur la figure 3, il est procédé à la sélection du mode de prédiction intra ipmx pour lequel le rapport a_x présente la valeur la plus favorable, c'est-à-dire la diminution de débit la plus importante pour des ressources mémoire ajoutées les plus faibles possible.
Comme représenté dans la troisième colonne du tableau TB1 de la figure 4, pour la première itération it=1, c’est la valeur du rapport a_0 qui est la plus favorable et qui correspond au mode de prédiction intra 0. L’indice de ce mode est indiqué en bas de la troisième colonne du tableau en association avec : - le débit Ri économisé par rapport au standard HEVC, soit
Ri=0,2%, - la mémoire IVL ajoutée par rapport au standard HEVC, soit M1= 0,1 ko.
Au cours d’une étape ST7 représentée sur la figure 3, il est procédé à une mise à jour du codeur CO de la figure 2 avec la transformée ajoutée lors de cette première itération.
Les étapes ST3 à ST7 sont ensuite à nouveau appliquées pour chaque itération.
Comme illustré sur la figure 4, le tableau TB1 présente comment, sur les quinze premières itérations effectuées, le gain en débit (BDRate) est amélioré en fonction des itérations, à mesure que les ressources mémoire (ROM) augmentent.
Ainsi par exemple, à l’itération iter=15, comme représenté dans la dernière colonne du tableau TB1, c’est la valeur du rapport a_28 qui est la plus favorable et qui correspond au mode de prédiction intra 28. L’indice de ce mode est indiqué en bas de la dernière colonne du tableau en association avec : - le débit R15 économisé par rapport au standard HEVC, soit
Ri5=1 ,01%, - la mémoire M15 ajoutée par rapport au standard HEVC, soit M-i5= 2ko.
Par ailleurs, à l’itération iter=15, est représenté le nombre de transformées qui ont été ajoutées par mode de prédiction. Ainsi : - pour le mode de prédiction intra 0, quatre transformées ont été ajoutées, - pour les modes de prédiction intra 10 et 16, deux transformées ont été respectivement ajoutées, - pour les modes de prédiction intra 1, 8, 9, 11, 14, 25, 27 et 28, une transformée a été respectivement ajoutée.
Pour l’itération iter=15, un total de seize transformées a donc été ajouté.
En référence maintenant à la figure 5, est présenté : - directement en liaison avec le tableau TB1 de la figure 4, une courbe CB1 en pointillé, représentative de l’évolution des performances de codage par rapport aux ressources mémoire utilisées, à la suite de la mise en oeuvre du procédé itératif de la figure 3, - une courbe CB2 en trait plein, représentative de l’évolution des performances de codage par rapport aux ressources mémoire utilisées, telle qu’obtenue avec un codeur de l’état de l’art qui utilise un nombre de transformées identique par mode de prédiction.
En comparant les deux courbes CB1 et CB2, on note que les performances de codage, pour une empreinte de mémoire donnée, sont considérablement améliorées lorsque le procédé itératif de détermination du nombre de transformées par mode de prédiction, tel que représenté sur la figure 3, est mis en œuvre. De façon correspondante, le procédé itératif de détermination du nombre de transformées par mode de prédiction, tel que représenté sur la figure 3, permet d’obtenir une réduction significative des ressources mémoire nécessaires au stockage des transformées déterminées, pour des performances de codage visées.
Afin d’apprécier le gain apporté, selon l’invention, en termes de capacité de stockage, pour des performances de codage visées, est présenté le tableau ci-dessous qui dresse un comparatif des capacités de stockage fixes et variables, et de la réduction de capacité de stockage obtenue avec les capacités de stockage variables utilisées selon l’invention.
Ainsi, pour un gain en débit visé de 2.8%, la capacité de stockage des codeurs de l’art antérieur qui utilisent un nombre fixe de transformées par mode de prédiction est de 140 ko, alors que la capacité de stockage des codeurs selon l’invention qui utilisent un nombre variable de transformées par mode de prédiction est de 60.4 ko. La réduction des capacités de stockage des codeurs selon l’invention par rapport aux codeurs de l’état de l’art peut ainsi être estimée à 57% pour le gain en débit visé de 2,8%.
Par conséquent, le procédé de codage selon l’invention permet avantageusement d’obtenir des performances de codage élevées, avec un impact limité sur la capacité de stockage des transformées par rapport à celle utilisée dans les procédés de codage de l’art antérieur.
On va maintenant décrire, en référence aux figures 1 à 3, 6A, 6B, 7 à 9, un mode de réalisation de l’invention mis en oeuvre dans le cas d’un codage HEVC de type Intra, et dans lequel l’ensemble de transformées associé à un mode de prédiction intra sélectionné au cours de l’étape C3 de la figure 1 est préalablement stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés.
Dans cet exemple, à l’issue de l’étape C3 de la figure 1, le bloc prédicteur optimal BPopt obtenu est associé à une direction de prédiction Intra optimale qui est par exemple la direction DPI22-
Conformément au présent mode de réalisation, la transformée (si unique) ou l’ensemble de transformées associée(s) à la direction de prédiction Intra DPI22 est préalablement associée, au cours de l’étape CO de la figure 1, à 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 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 ensemble de transformées.
Selon une deuxième variante, deux directions de prédiction Intra angulaires présentant chacune des écarts d’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.
Ainsi, comme représenté à la figure 6A, 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 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI4 et DPh6.
De façon similaire, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de -60° par rapport à un axe 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 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI2o et DPI32.
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 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 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 ensemble de transformées.
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.
Ainsi, comme représenté sur la figure 6A, 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, - à 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.
En référence à la figure 7, ces quatre directions de prédiction Intra correspondent respectivement aux directions DPI4, DPI16, DPI2o et DPI32.
Le tableau ci-dessous représente neuf groupes G1 à G9 de directions de prédiction Intra HEVC auxquels peut être associée, dans la mémoire tampon MT_C du codeur CO de la figure 2, une même transformée (si unique) ou bien un ensemble de transformées, tel que déterminé selon l’invention.
Les directions angulaires à multiple de 45° (45°, -45° et -135°) telles que représentées sur la figure 6B, correspondant respectivement aux directions de prédiction DPI2, DPh8 et DPI34, comme illustré sur la figure 7, sont regroupées par trois et sont associées à une même transformée ou à un même ensemble de transformées.
Conformément à l’obtention des groupes de modes de prédiction précités, en référence à la figure 1, il peut être nécessaire de procéder, 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 résidu Br, tel qu’obtenu à l’issue de l’étape C4 de la figure 1. Au cours de l’étape C40, chaque donnée considérée est déplacée à l’intérieur du bloc résidu tout en conservant ses plus proches voisines. 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 PROC_C.
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 résidu courant. Chaque donnée considérée dans le bloc résidu courant Br, est 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 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.
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 Βη est fonction du mode de prédiction MPS sélectionné.
En référence à la figure 8, 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 Βη 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. De façon particulière, la rotation miroir de type 0 qui est appliquée au bloc résidu Br,, permet d’obtenir un bloc résidu modifié Βιτιη qui, dans le cas présent, est le même que le bloc résidu Βη.
En outre, conformément à l’invention, une direction de prédiction Intra est associée à l’un des huit types de déplacement, selon son mode de regroupement. Par exemple : - les directions de prédiction intra DPI22 et DPI6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir de type 0 et de type 5 telles que représentées sur la figure 8, - les directions de prédiction intra DPI4 et DPI16 associées à la même transformée ou au même ensemble de transformées 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 8, - les directions de prédiction intra DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir de type 0 et de type 1 telles que représentées sur la figure 8, - les directions de prédiction intra DPI4, DPI16, DPI20 et DPI32 associées à la même transformée ou au même ensemble de transformées 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 8.
En référence maintenant à la figure 9, est illustré le tableau TB2 qui présente comment, sur les quinze premières itérations effectuées, le gain en débit (BDRate) est amélioré en fonction des itérations, à mesure que les ressources mémoire (ROM) augmentent, lorsqu’au moins deux modes de prédiction sont associées à un même ensemble de transformées.
Ainsi par exemple, à l’itération iter=15, comme représenté dans la dernière colonne du tableau TB2, c’est la valeur du rapport a_28 qui est la plus favorable et qui correspond au mode de prédiction intra 28. Ce mode est indiqué en bas de la troisième colonne du tableau en association avec : - le débit R15 économisé par rapport à un procédé de codage de l’art antérieur, soit Ris=1.21 %, - la mémoire M-i5 ajoutée par rapport à un procédé de codage de l’art antérieur, soit M15= 2.1 ko.
Par ailleurs, à l’itération iter=15, est représenté le nombre de transformées qui ont été ajoutées par mode de prédiction ou par groupes de modes de prédiction. Ainsi : - pour le mode de prédiction intra 1 et les groupes précités G3 et G5 de directions de prédiction intra, une seule transformée a été respectivement ajoutée, - pour les groupes précités G6, G7 et Gg de directions de prédiction intra, deux transformées ont été respectivement ajoutées, - pour le mode de prédiction intra 0 et le groupe précité G8 de directions de prédiction intra, quatre transformées ont été respectivement ajoutées.
Pour l’itération iter=15, un total de dix-sept transformées a donc été ajouté.
Le tableau TB2 permet de constater une réduction signification des ressources mémoire dédiées au stockage des transformées de l’ordre de 20% par rapport au procédé de codage qui n’utilise pas un tel regroupement des modes de prédiction.
Afin d’apprécier le gain apporté avec un tel regroupement de modes de prédiction selon l’invention, le gain étant évalué en termes de capacité de stockage pour des performances de codage visées, est présenté le tableau ci-dessous qui dresse un comparatif des capacités de stockage fixes présentes dans un codeur de l’art antérieur utilisant un même nombre de transformées par mode de prédiction et des capacités de stockage variables présente dans le codeur selon l’invention, et de la réduction de capacité de stockage obtenue avec les capacités de stockage variables.
Ainsi, pour un gain en débit visé de 1.7%, la capacité de stockage des codeurs qui utilisent un nombre fixe de transformées par mode de prédiction est de 17.5 ko, alors que la capacité de stockage des codeurs selon l’invention qui utilisent un nombre variable de transformées par mode de prédiction ou par ensemble de modes de prédiction est de seulement 5.3 ko. La réduction des capacités de stockage des codeurs selon l’invention par rapport aux codeurs de l’état de l’art peut être ainsi être estimée à 70% pour le gain en débit visé de 1,7%.
Selon un autre mode de réalisation de l’invention, le procédé de détermination itératif du nombre de transformées par mode de prédiction ou par groupe de modes de prédiction peut être remplacé par un procédé de détermination automatique dudit nombre de transformées.
Le procédé de détermination automatique peut s’avérer nécessaire lorsque, dans certains contextes de codage, le codeur CO de la figure 2 est contraint de fonctionner à un point de complexité donné. Il est alors nécessaire, au cours du codage, de réduire le nombre de transformées en compétition pour limiter les investigations de choix par le codeur de la transformée optimale, au cours de l’étape C5 de la figure 1.
Selon un premier exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction verticale ou horizontale est rendu supérieur au nombre de transformées qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction oblique.
Dans le cas par exemple du standard HEVC, l’Homme du Métier sait que parmi les trente-cinq modes de prédiction intra disponibles, les modes 0 (Planar) et 1 (DC) sont les modes les plus lissés car la prédiction selon ces deux modes est calculée en moyennant plus de deux pixels d’un bord du bloc courant. Par conséquent, les modes Planar et DC sont associés, au cours de l’étape CO de la figure 1, à un nombre de transformées supérieur à celui des autres modes de prédiction intra HEVC.
De plus, de façon connue en soi, les modes 10 (Horizontal) et 26 (Vertical) sont utilisés pour prédire des motifs de l’image qui sont horizontaux ou verticaux. De tels motifs se trouvant fréquemment dans la nature (ex : arbres verticaux, poteaux, ligne d’horizon, etc...), ils doivent être associés à un nombre de transformées plus élevé que le nombre de transformées associé aux modes de prédiction intra obliques.
Selon un deuxième exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d’un mode de prédiction qui a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés MP0, MPi,..., MPv,..., MPr, en tant que mode de prédiction le plus probable, est supérieur au nombre de transformées qui est déterminé dans le cas d’un mode de prédiction qui n’a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
Dans le cas par exemple du standard HEVC, une liste de modes de prédiction les plus probables, appelés MPM (de l’anglais « Most Probable Modes >>), est établie préalablement au codage. En particulier, les modes 0 (Planar), 1 (DC) et 26 (vertical) sont les modes de prédiction assignés par défaut lors de l’établissement de la liste. Selon l’invention, ces trois modes de prédiction intra sont donc préalablement associés, au cours de l’étape de stockage CO de la figure 1, à un nombre de transformées plus élevé que le nombre de transformées associé aux autres modes de prédiction intra HEVC.
Selon un troisième exemple de réalisation, le nombre de transformées contenu dans l’ensemble de transformées stocké en association avec chacun des modes de prédiction prédéterminés MP0, MP^..., MPV,..., MPr est déterminé en fonction de la quantité d’informations représentatives de chacun de ces modes de prédiction.
Dans le cas par exemple du standard HEVC, les modes de prédiction intra les plus probables tels que 0 (Planar), 1 (DC) et 26 (vertical) seront signalés sur moins de bits que les autres modes. Selon l’invention, il est donc opportun de leur associer un nombre de transformées plus élevé que celui des autres modes de prédiction intra, car ces trois modes seront choisis plus fréquemment que les autres et par conséquent, il y aura une variété plus importante de blocs prédicteurs à tester avec ces trois modes.
Ainsi, selon l’invention, si la signalisation d’un mode de prédiction est portée sur moins de bits, alors le nombre de transformées, qui est stocké en association avec ce mode de prédiction au cours de l’étape CO de la figure 1, est plus important que la moyenne des transformées sur l’ensemble des trente-cinq modes de prédiction intra.
Description détaillée de la partie décodage
Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de décodage selon l'invention est utilisé pour décoder un signal ou flux de données représentatif d’une image ou d’une séquence 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 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 DO à D9 telles que représentées à la figure 11.
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 10.
Comme illustré en figure 10, un tel dispositif décodeur comprend : - une entrée ENT_D pour recevoir le signal de données ou flux courant F à décoder, - un circuit de traitement CT_D pour mettre en œuvre le procédé de décodage selon l'invention, le circuit de traitement CT_D contenant : • une mémoire MEM D comprenant une mémoire tampon MT_D, • un processeur PROC_D piloté par un programme d'ordinateur PG_D, - une sortie SOR_D pour délivrer une image courante reconstruite contenant les données obtenues à l’issue du décodage selon le procédé de l’invention. A l'initialisation, les instructions de code du programme d'ordinateur PG_D sont par exemple chargées dans une mémoire RAM, MR_D, avant d'être exécutées par le circuit de traitement CT_D.
Le procédé de décodage représenté sur la figure 11 s’applique à un signal ou flux de données F représentatif d’une image courante ICj à 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 ICj à 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 11, 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 B-ι, B2, Bi,..., Bs codés précédemment conformément à l’ordre lexicographique précité.
Une telle étape de détermination D1 est mise en œuvre par un module logiciel d’identification MI_D d’analyse de flux, tel que représenté à la figure 10, lequel module est piloté par le processeur PROC_D. D’autres types de parcours que celui mentionné ci-dessus sont bien sûr possibles et dépendent de l’ordre de parcours choisi au codage.
Dans l’exemple représenté, les blocs Bi, B2, B,,..., Bs à décoder ont par exemple une forme carrée et sont par exemple de taille MxM pixels où M est un entier naturel supérieur ou égal à 1.
Chaque bloc à décoder peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles.
Au cours d’une étape D2 représentée à la figure 11, le décodeur DO de la figure 10 sélectionne, comme bloc courant B, à décoder, le premier bloc qui a été codé à l’issue du procédé de codage de la figure 1.
Au cours d’une étape D3 représentée à la figure 11, il est procédé à une détermination, par exemple par décodage, des données résiduelles di, d2,...,dw,..., dv associées au bloc courant B, à 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 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 C40 de déplacement des données du bloc résidu Br, a été mise en œuvre au codage.
Egalement au cours de l’étape D3, sont déterminées des informations relatives au type de prédiction du bloc courant B, tel que mis en œuvre au codage au cours de l’étape C3 de la figure 1, et qui ont été inscrites dans le 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 partitionnement du bloc courant B, si ce dernier a été partitionné.
Une telle étape D3 de décodage est mise en œuvre par un module de décodage MD_D représenté sur la figure 10, lequel module est piloté par le processeur PROC_D.
Au cours d’une étape D4 représentée à la figure 11, 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 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 10, 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. Chacun des blocs prédicteurs candidats est un bloc de pixels qui a déjà été décodé. L’étape D4 est mise en œuvre par un module logiciel PRED'1_D de prédiction inverse, tel que représenté sur la figure 10, lequel est piloté par le processeur PROC_D.
Au cours d’une étape D5 représentée à la figure 11, qui est mise en œuvre 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 œuvre lors de l’étape de quantification C7 de la figure 1. Un ensemble de coefficients déquantifiés courant BDq, ou un ensemble de coefficients modifiés déquantifiés courant BDmqi 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 MQ'1_D de quantification inverse, tel que représenté à la figure 10, lequel module est piloté par le processeur PROC_D.
Au cours d’une étape D6 représentée à la figure 11, le décodeur DO de la figure 10 procède à la détermination d’une transformée de l’ensemble de coefficients déquantifiés courant BDq, 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 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 directe telle que par exemple une transformée en cosinus discrète de type DCT, - une transformée directe telle que par exemple une transformée en sinus discrète de type DST, -une transformée bloc optimisée en débit distorsion comme présenté dans la publication « Rate-distortion optimised transform compétition for intra coding in HEVC », Adrià Arrufat, Pierrick Philippe, Olivier Déforges, IEEE VCIP, Dec 2014, - une transformée en ondelettes du type DWT, - une transformée incluant un recouvrement du type Lapped Transforms telle que présentée dans la publication « Réduction of blocking effects in image coding with a lapped orthogonal transform », H. Malvar, - ou tout autre type de transformées exploitables.
Ladite transformée appartient à un ensemble de transformées qui, au cours d’une étape préalable de stockage DO représentée à la figure 11, est stocké en association avec le mode de prédiction MPS, dans la mémoire tampon MT_D de la figure 10. Au cours de cette étape de stockage : - le mode de prédiction prédéterminé MP0 est stocké en association avec un ensemble de transformées contenant un nombre NB0 de transformées, - le mode de prédiction prédéterminé MPi est stocké en association avec un ensemble de transformées contenant un nombre NB-ι de transformées, - le mode de prédiction prédéterminé MPV est stocké en association avec un ensemble de transformées contenant un nombre NBV de transformées, - le mode de prédiction prédéterminé MPr est stocké en association avec un ensemble de transformées contenant un nombre NBr de transformées.
Conformément à l’invention, pour au moins deux modes de prédiction différents MPa, MPb appartenant à la pluralité de modes de prédiction prédéterminés MP0, MPt,..., MPv,..., MPr, avec O^a^R+1 et 0<b<R+1, le nombre de transformées, noté NBa, qui est contenu dans l’ensemble de transformées associé au mode de prédiction MPa est différent du nombre de transformées, noté NBb, qui est contenu dans un ensemble de transformées stocké en association avec le mode de prédiction MPb.
Selon un premier exemple de réalisation, pour au moins deux ensembles de transformées stockés respectivement en association avec deux modes de prédiction de ladite pluralité MPo, MPi,..., MPV,..., MPr de modes de prédiction prédéterminés, le nombre de transformées dans chacun desdits deux ensembles contient en commun au moins une transformée identique.
Par exemple, dans le cas d’un décodage selon le standard HEVC, le nombre de transformées dans chacun desdits deux ensembles peut par exemple contenir en commun : - une transformée inverse d’une transformée de type DST, ou bien une transformée inverse d’une transformée de type DCT, - une transformée inverse d’une transformée de type DST et une transformée inverse d’une transformée de type DCT, - plus de deux transformées en commun.
Par ailleurs, plus de deux ensembles de transformées peuvent contenir en commun au moins une opération de transformée identique. Toujours dans le cas d’un décodage selon le standard HEVC, et plus particulièrement dans le cas d’une prédiction Intra inverse conforme à ce standard qui propose trente-cinq directions de prédiction possibles DPI0, DPh,..., DPI34, les ensembles de transformées associés respectivement à chacune de ces trente-cinq directions de prédiction peuvent contenir en commun au moins une opération de transformée identique.
Selon un deuxième exemple de réalisation représenté sur la figure 10, l’ensemble de transformées, associé audit mode de prédiction MPS déterminé à l’étape D3 précitée et contenant un nombre NBS de transformées, est stocké dans la mémoire tampon MT_D de la figure 10, en association avec au moins un autre mode de prédiction, noté MPU, de ladite pluralité de modes de prédiction prédéterminés MPo, MPi,..., MPV,..., MPr, avec O^u^R+1.
Plus particulièrement, l’étape de détermination précitée D6 consiste à lire dans le signal de données F l’index IDX de la transformée Ts,k (NBS=1) ou Ts>k* (NBS>1) qui a été 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 ).
Au cours d’une étape D7 représentée à la figure 11, il est procédé à l’application de la transformée inverse de la trasformée Ts,k ou Ts,k* à l’ensemble de coefficients déquantifiés courant BDq, ou à l’ensemble de coefficients modifiés déquantifiés courant BDmq,, tel qu’obtenu à l’étape D5 précitée. A l’issue de l’étape D7, est obtenu soit un bloc résidu décodé courant BDr,, soit un bloc résidu modifié décodé courant BDmn.
Une telle opération est effectuée par un module logiciel MTR'1_D de transformée inverse, tel que représenté à la figure 10, lequel module est piloté par le processeur PROC_D.
Sur la figure 11, l’étape de déquantification D5 est représentée avant 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 œuvre avec des nombres entiers incluant le facteur de déquantification.
Au cours d’une étape D8 représentée à la figure 11, il est procédé à la reconstruction du bloc courant B, en ajoutant au bloc résidu décodé BDr,, 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 œuvre par un module logiciel CAL1_D représenté sur la figure 10, lequel module est piloté par le processeur PROC_D.
Au cours d’une étape D9 représentée à la figure 11, ledit bloc décodé courant BD, est écrit dans une image décodée IDj.
Une telle étape est mise en œuvre par un module logiciel URI de reconstruction d’image tel que représenté sur la figure 10, ledit module étant piloté par le processeur PROC_D.
Les étapes de décodage qui viennent d’être décrites ci-dessus sont mises en œuvre pour tous les blocs B-ι, B2, B,,..., Bs à décoder de l’image courante ICj considérée, dans un ordre prédéterminé qui est par exemple l’ordre lexicographique.
De la même manière qu’au codage, en référence aux figures 3 à 8, le procédé de décodage met en œuvre, selon un premier mode de réalisation de l’invention, un procédé de détermination du nombre de transformées pour chaque mode de prédiction prédéterminé, dans le cas d’un décodage HEVC de type Intra.
On va maintenant décrire, en référence aux figures 3, 6A, 6B, 7 à 11, un mode de réalisation de l’invention mis en œuvre dans le cas d’un décodage HEVC de type Intra, et dans lequel l’ensemble de transformées associé à un mode de prédiction intra déterminé au cours de l’étape D3 de la figure 11 est préalablement stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés.
Dans cet exemple, à l’issue de l’étape D3 de la figure 11, le bloc prédicteur optimal BPopt obtenu est associé à une direction de prédiction Intra optimale qui est par exemple la direction DPI22·
Conformément au présent mode de réalisation, la transformée (si unique) ou l’ensemble de transformées associée(s) à la direction de prédiction Intra DPI22 est préalablement associée, au cours de l’étape DO de la figure 11, à 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 décodeur DO, l’avantage étant une réduction de la mémoire côté 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 ensemble de transformées.
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.
Ainsi, comme représenté à la figure 6A, 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 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPU et DPIi6.
De façon similaire, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de -60° par rapport à un axe 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 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI20 et DPI32.
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 transformées 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, quatre fois moins de transformées sont stockées au niveau du décodeur DO, l’avantage étant une réduction de la mémoire côté 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 ensemble de transformées.
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.
Ainsi, comme représenté sur la figure 6A, 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, - à 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.
En référence à la figure 7, ces quatre directions de prédiction Intra correspondent respectivement aux directions DPI4, DPI16, DPI20 et DPI32.
Le tableau ci-dessous représente neuf groupes G1 à Gg de directions de prédiction Intra HEVC auxquels peut être associée une même transformée (si unique) ou bien un ensemble de transformées, tel que déterminé selon l’invention.
Les directions angulaires à multiple de 45° (45°, -45° et -135°) telles que représentées sur la figure 6B, correspondant respectivement aux directions de prédiction DPI2, DPI18 et DPI34, comme illustré sur la figure 7, sont regroupées par trois et sont associées, dans la mémoire tampon MT_D du décodeur DO de la figure 10, à une même transformée ou à un même ensemble de transformées.
Conformément à l’obtention des groupes de modes de prédiction précités, en référence à la figure 11, dans le cas où c’est le bloc résidu modifié décodé courant BDmn 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 Βϋητιη, chaque donnée considérée étant déplacée à l’intérieur de ce bloc tout en conservant ses plus proches voisines. L’étape D70 est mise en œuvre par un module logiciel de calcul CAL2_D tel que représenté sur la figure 10, lequel module est piloté par le processeur PROC_D.
Selon un premier mode de réalisation, un type de déplacement de 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 BDmn.
Selon un deuxième mode de réalisation, un type de déplacement de 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 Βϋηηη. Chaque donnée considérée dans le bloc résidu modifié décodé courant BDmn est ainsi déplacée à l’intérieur de ce dernier, 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 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 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 déplacement de données dans le bloc résidu modifié décodé courant BDmri est fonction du mode de prédiction MPS déterminé à l’étape D3 précitée.
De façon correspondante aux différents types de déplacement mis en œuvre au codage, tels que représentés à la figure 8, il existe également au décodage huit types de déplacement possibles différents numérotés de 0 à 7 qui permettent à un pixel donné du bloc résidu modifié décodé courant BDmn 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. De façon particulière, la rotation miroir inverse de la rotation miroir de type 0 n’entraîne pas un déplacement des données puisque les données du bloc résidu modifié décodé courant BDmn sont disposées dans le même ordre que les données du bloc résidu courant Bn.
En outre, conformément à l’invention, une direction de prédiction Intra déterminée à l’issue de l’étape D3 de la figure 11 est associée à l’un des huit types de déplacement inverse, selon le groupe auquel elle appartient. Par exemple : - les directions de prédiction intra DPI22 et DPI6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 0 et de type 5 telles que représentées sur la figure 8, - les directions de prédiction intra DPI4 et DPI16 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 0 et de type 2 telles que représentées sur la figure 8, - les directions de prédiction intra DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées 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 8, - les directions de prédiction intra DPU, DPIi6, DPI20 et DPI32 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 6, de type 4, de type 0 et de type 1, telles que représentées sur la figure 8.
Selon un autre mode de réalisation de l’invention, de la même manière qu’au codage, le procédé de détermination itératif du nombre de transformées par mode de prédiction ou par groupe de modes de prédiction peut être remplacé par un procédé de détermination automatique dudit nombre de transformées.
Le procédé de détermination automatique peut s’avérer nécessaire lorsque, dans certains contextes de décodage, le décodeur DO de la figure 10 est contraint de fonctionner à un point de complexité donné. Ce point de complexité donné peut être signalé par l’encodeur CO de la figure 2, par une information de configuration donnée pour une partie d’image, une image entière ou pour une séquence d’images. Il peut comprendre un identifiant du nombre de transformées maximal ou bien un rapport du nombre de transformées par rapport au nombre de transformées disponible au décodeur. Ainsi, au cours de l’étape D6 de la figure 11, le décodeur DO recherche dans la mémoire tampon MT_D de la figure 10, uniquement dans le nombre de transformées associé à ladite information de configuration signalée, la transformée sélectionnée au codage et correspondant à l’indice IDX déterminé à l’étape D3.
Selon un premier exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction verticale ou horizontale est rendu supérieur au nombre de transformées qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction oblique.
Dans le cas par exemple du standard HEVC, l’Homme du Métier sait que parmi les trente-cinq modes de prédiction intra disponibles, les modes 0 (Planar) et 1 (DC) sont les modes les plus lissés car la prédiction selon ces deux modes est calculée en moyennant plus de pixels des bords du bloc courant. Par conséquent, les modes Planar et DC sont associés, au cours de l’étape DO de la figure 11, à un nombre de transformées supérieur à celui des autres modes de prédiction intra HEVC.
De plus, de façon connue en soi, les modes 10 et 26 sont utilisés pour prédire des motifs de l’image qui sont horizontaux ou verticaux. De tels motifs se trouvant fréquemment dans la nature (ex : arbres verticaux, poteaux, ligne d’horizon, etc...), ils doivent être associés à un nombre de transformées plus élevé que le nombre de transformées associé aux modes de prédiction intra obliques.
Selon un deuxième exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d’un mode de prédiction qui a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés MP0, MP!,..., MPV,..., MPr, en tant que mode de prédiction le plus probable, est supérieur au nombre de transformées qui est déterminé dans le cas d’un mode de prédiction qui n’a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
Dans le cas par exemple du standard HEVC, une liste de modes de prédiction les plus probables, appelés MPM (de l’anglais « Most Probable Modes »), est établie préalablement au codage. En particulier, les modes 0 (Planar), 1 (DC) et 26 (vertical) sont les modes de prédiction assignés par défaut lors de l’établissement de la liste. Selon l’invention, ces trois modes de prédiction intra sont donc préalablement associés, au cours de l’étape de stockage DO de la figure 1A, à un nombre de transformées plus élevé que le nombre de transformées associé aux autres modes de prédiction intra HEVC.
Selon un troisième exemple de réalisation, le nombre de transformées contenu dans l’ensemble de transformées stocké en association avec chacun des modes de prédiction prédéterminés MP0, MP!,..., MPV,..., MPr est déterminé en fonction de la quantité d’informations représentatives de chacun de ces modes de prédiction.
Dans le cas par exemple du standard HEVC, les modes de prédiction intra les plus probables tels que 0 (Planar), 1 (DC) et 26 (vertical) seront signalés sur moins de bits que les autres modes. Selon l’invention, il est donc opportun de leur associer un nombre de transformées plus élevé que celui des autres modes de prédiction intra, car ces trois modes seront choisis plus fréquemment que les autres et par conséquent, il y aura une variété plus importante de blocs prédicteurs à tester avec ces trois modes.
Ainsi, selon l’invention, si la signalisation d’un mode de prédiction est portée sur moins de bits, alors le nombre de transformées, qui est stocké en association avec ce mode de prédiction au cours de l’étape DO de la figure 11, est plus important que la moyenne des transformées sur l’ensemble des trente-cinq modes de prédiction intra.
Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l’homme de l’art sans pour autant sortir du cadre de l’invention

Claims (15)

  1. REVENDICATIONS
    1. Procédé de codage d'au moins une image (ICj) découpée en blocs, mettant en œuvre, pour un bloc courant (B,) à 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, ladite opération de transformée appartenant à un ensemble d’opérations de transformée qui est préalablement stocké (CO) en association avec un mode de prédiction sélectionné, - 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 lors du stockage (CO) de l’ensemble d’opérations de transformée associé audit mode de prédiction sélectionné, le nombre d’opérations de transformée contenu dans ledit ensemble est différent du nombre d’opérations de transformées contenu dans un ensemble d’opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.
  2. 2. Procédé de codage selon la revendication 1, dans lequel pour au moins deux ensembles d’opérations de transformées stockés respectivement en association avec deux modes de prédiction de ladite pluralité de modes de prédiction prédéterminés, le nombre d’opérations de transformée dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique.
  3. 3. Procédé de codage selon la revendication 1 ou la revendication 2, dans lequel l’ensemble d’opérations de transformée associé audit mode de prédiction sélectionné est stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés.
  4. 4. Procédé de codage selon l’une quelconque des revendications 1 à 3, dans lequel le nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction oblique.
  5. 5. Procédé de codage selon l’une quelconque des revendications 1 à 3, dans lequel le nombre d’opérations de transformée, qui est déterminé dans le cas d’un mode de prédiction pour lequel la prédiction est calculée en moyennant plus de deux pixels d’un bord du bloc courant, est supérieur ou égal au nombre d’opérations de transformée qui est déterminé pour tout autre mode de prédiction.
  6. 6. Procédé de codage selon l’une quelconque des revendications 1 à 3, dans lequel le nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction qui a été préalablement sélectionné, dans ladite pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction qui n’a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
  7. 7. Dispositif (CO) de codage d'au moins une image (ICj) découpée en blocs, comprenant un circuit de traitement (CT_C) qui, pour un bloc courant (B,) à coder de ladite 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, - appliquer une opération de transformée aux données dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d’opérations de transformée qui est préalablement stocké en association avec le mode de prédiction sélectionné, - 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 l’ensemble d’opérations de transformée associé audit mode de prédiction sélectionné, le nombre d’opérations de transformée contenu dans ledit ensemble étant différent du nombre d’opérations de transformée contenu dans un ensemble d’opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.
  8. 8. Procédé de décodage d'un signal de données (F) représentatif d'au moins une image (ICj) découpée en blocs, mettant en oeuvre, pour un bloc courant (B,) à décoder : - une détermination (D3), dans ledit signal de données : • 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, - 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, ladite opération de transformée appartenant à un ensemble d’opérations de transformée qui est préalablement stocké (DO) en association avec ledit mode de prédiction déterminé (MPS), - une reconstruction (D8) 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 ladite opération de transformée, ledit procédé de décodage étant caractérisé en ce que lors du stockage (DO) de l’ensemble d’opérations de transformée associé audit mode de prédiction déterminé, le nombre d’opérations de transformée contenu dans ledit ensemble est différent du nombre d’opérations de transformées contenu dans un ensemble d’opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.
  9. 9. Procédé de décodage selon la revendication 8, dans lequel pour au moins deux ensembles d’opérations de transformée stockés respectivement en association avec deux modes de prédiction de ladite pluralité de modes de prédiction prédéterminés, le nombre d’opérations de transformée dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique.
  10. 10. Procédé de décodage selon la revendication 8 ou la revendication 9, dans lequel l’ensemble d’opérations de transformée associé audit mode de prédiction déterminé est stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés.
  11. 11. Procédé de décodage selon l’une quelconque des revendications 8 à 10, dans lequel le nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d’opérations de transformée qui est déterminé dans le cas d’un mode de prédiction associé à une direction de prédiction oblique.
  12. 12. Procédé de décodage selon l’une quelconque des revendications 8 à 10, dans lequel le nombre d’opérations de transformée, qui est déterminé dans le cas d’un mode de prédiction pour lequel la prédiction est calculée en moyennant plus de deux pixels d’un bord du bloc courant, est supérieur ou égal au nombre d’opérations de transformée qui est déterminé pour tout autre mode de prédiction.
  13. 13. Procédé de décodage selon l’une quelconque des revendications 8 à 10, dans lequel le nombre d’opérations de transformée qui est déterminé dans le cas où le mode de prédiction déterminé a été préalablement sélectionné, dans ladite pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d’opérations de transformée qui est déterminé dans le cas où le mode de prédiction déterminé n’a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
  14. 14. Dispositif de décodage d'un signal de données (F) représentatif d'au moins une image (ICj) découpée en blocs, comprenant un circuit de traitement (CT_D) qui, pour un bloc courant (B,) à 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 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 représentatives dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d’opérations de transformée qui est préalablement stocké en association avec ledit mode de prédiction déterminé (MPS), - 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 est agencé pour stocker l’ensemble d’opérations de transformée associé audit mode de prédiction déterminé, le nombre d’opérations de transformée contenu dans ledit ensemble étant différent du nombre d’opérations de transformée contenu dans un ensemble d’opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.
  15. 15. Programme d’ordinateur comportant 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 à 13, lorsque ledit programme est exécuté sur un ordinateur.
FR1558066A 2015-08-31 2015-08-31 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants Withdrawn FR3040578A1 (fr)

Priority Applications (11)

Application Number Priority Date Filing Date Title
FR1558066A FR3040578A1 (fr) 2015-08-31 2015-08-31 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
JP2018510437A JP6951324B2 (ja) 2015-08-31 2016-08-26 画像の符号化及び復号方法、画像の符号化及び復号デバイス、及びこれに対応するコンピュータプログラム
US15/756,349 US10523969B2 (en) 2015-08-31 2016-08-26 Method of coding and decoding images, device for coding and decoding images and computer programmes corresponding thereto
CN201680049338.3A CN107925757B (zh) 2015-08-31 2016-08-26 对图像进行编码和解码的方法、用于对图像进行编码和解码的设备及其相应的计算机程序
BR112018003492-4A BR112018003492B1 (pt) 2015-08-31 2016-08-26 Processo e dispositivo de codificação de pelo menos uma imagem cortada em blocos, processo e dispositivo de decodificação de um sinal de dados representativo de pelo menos uma imagem cortada em blocos
CN202211418498.4A CN115802030A (zh) 2015-08-31 2016-08-26 对图像进行编码和解码的方法、用于对图像进行编码和解码的设备及其相应的计算机程序
EP16770058.2A EP3345391A2 (fr) 2015-08-31 2016-08-26 Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants
PCT/FR2016/052128 WO2017037368A2 (fr) 2015-08-31 2016-08-26 Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants
KR1020187007620A KR20180048719A (ko) 2015-08-31 2016-08-26 이미지들을 코딩 및 디코딩하는 방법, 이미지들을 코딩 및 디코딩하는 장치, 및 이에 대응하는 컴퓨터 프로그램
US16/728,640 US10911784B2 (en) 2015-08-31 2019-12-27 Method of coding and decoding images, device for coding and decoding images and computer programmes corresponding thereto
JP2020144454A JP7130708B2 (ja) 2015-08-31 2020-08-28 画像の符号化及び復号方法、画像の符号化及び復号デバイス、及びこれに対応するコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1558066A FR3040578A1 (fr) 2015-08-31 2015-08-31 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
FR3040578A1 true FR3040578A1 (fr) 2017-03-03

Family

ID=54329793

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1558066A Withdrawn FR3040578A1 (fr) 2015-08-31 2015-08-31 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Country Status (8)

Country Link
US (2) US10523969B2 (fr)
EP (1) EP3345391A2 (fr)
JP (2) JP6951324B2 (fr)
KR (1) KR20180048719A (fr)
CN (2) CN115802030A (fr)
BR (1) BR112018003492B1 (fr)
FR (1) FR3040578A1 (fr)
WO (1) WO2017037368A2 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3044507A1 (fr) * 2015-11-30 2017-06-02 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
US10880564B2 (en) * 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
US11785254B2 (en) 2020-05-29 2023-10-10 Tencent America LLC Implicit mode dependent primary transforms

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013055040A1 (fr) * 2011-10-14 2013-04-18 주식회사 팬택 Procédé de transformation et de transformation inverse selon un mode d'intraprédiction et appareil de codage et de décodage utilisant celui-ci
GB2510289A (en) * 2011-10-17 2014-07-30 Kt Corp Adaptive transform method on in-screen prediction and apparatus using the method
WO2015079179A1 (fr) * 2013-11-29 2015-06-04 Orange Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006070614A1 (fr) * 2004-12-28 2006-07-06 Nec Corporation Appareil de codage d’image, méthode de codage d’image et programme pour ceux-ci
US8130822B2 (en) * 2006-07-10 2012-03-06 Sharp Laboratories Of America, Inc. Methods and systems for conditional transform-domain residual accumulation
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
WO2012008925A1 (fr) * 2010-07-15 2012-01-19 Agency For Science, Technology And Research Procédé, appareil et produit programme d'ordinateur destinés à coder des données vidéo
JP5478740B2 (ja) * 2011-01-12 2014-04-23 三菱電機株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
US8929455B2 (en) * 2011-07-01 2015-01-06 Mitsubishi Electric Research Laboratories, Inc. Method for selecting transform types from mapping table for prediction modes
CN103096053B (zh) * 2011-11-04 2015-10-07 华为技术有限公司 一种变换模式的编解码方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013055040A1 (fr) * 2011-10-14 2013-04-18 주식회사 팬택 Procédé de transformation et de transformation inverse selon un mode d'intraprédiction et appareil de codage et de décodage utilisant celui-ci
GB2510289A (en) * 2011-10-17 2014-07-30 Kt Corp Adaptive transform method on in-screen prediction and apparatus using the method
WO2015079179A1 (fr) * 2013-11-29 2015-06-04 Orange Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants

Also Published As

Publication number Publication date
WO2017037368A2 (fr) 2017-03-09
CN115802030A (zh) 2023-03-14
EP3345391A2 (fr) 2018-07-11
JP2020205609A (ja) 2020-12-24
BR112018003492A2 (pt) 2018-09-25
US10911784B2 (en) 2021-02-02
US20200137419A1 (en) 2020-04-30
US10523969B2 (en) 2019-12-31
WO2017037368A3 (fr) 2017-05-04
CN107925757A (zh) 2018-04-17
BR112018003492B1 (pt) 2023-11-28
CN107925757B (zh) 2022-12-02
US20190028738A1 (en) 2019-01-24
JP2018529279A (ja) 2018-10-04
JP6951324B2 (ja) 2021-10-20
JP7130708B2 (ja) 2022-09-05
KR20180048719A (ko) 2018-05-10

Similar Documents

Publication Publication Date Title
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
EP3061246B1 (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
EP3694209A1 (fr) Procédé de décodage d&#39;images, dispositif de décodage d&#39;images, et programme d&#39;ordinateur correspondant
EP2868088A1 (fr) Procédé de codage d&#39;un bloc courant d&#39;une première composante d&#39;image par rapport a un bloc de référence d&#39;au moins une deuxième composante d&#39;image, dispositif de codage et programme d&#39;ordinateur correspondant
WO2015055937A1 (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
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
EP2761871B1 (fr) Estimation de mouvement au niveau du décodeur par mise en correspondance de modèles
WO2012160313A1 (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
WO2018073523A1 (fr) Procédé de codage et de décodage de paramètres d&#39;image, dispositif de codage et de décodage de paramètres d&#39;image et programmes d&#39;ordinateur correspondants
EP3409016A1 (fr) Procédé de codage et décodage de données, dispositif de codage et décodage de données et programmes d&#39;ordinateur correspondants
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
WO2017093653A1 (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
FR3057130A1 (fr) Procede de codage d&#39;une image, procede de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
WO2016132074A1 (fr) Codage d&#39;images par quantification vectorielle
EP3259909A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
WO2018167419A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR3050858A1 (fr) Procede de codage et de decodage d’images, dispositif de codage et de decodage d’images et programmes d’ordinateur correspondants

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20170303

ST Notification of lapse

Effective date: 20180430