EP4778271A1 - Procédé et dispositif de codage et décodage de séquences d'images - Google Patents

Procédé et dispositif de codage et décodage de séquences d'images

Info

Publication number
EP4778271A1
EP4778271A1 EP24769364.1A EP24769364A EP4778271A1 EP 4778271 A1 EP4778271 A1 EP 4778271A1 EP 24769364 A EP24769364 A EP 24769364A EP 4778271 A1 EP4778271 A1 EP 4778271A1
Authority
EP
European Patent Office
Prior art keywords
prediction
image
correction
neural network
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP24769364.1A
Other languages
German (de)
English (en)
Inventor
Theo LADUNE
Pierrick Philippe
Thomas LEGUAY
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
Publication of EP4778271A1 publication Critical patent/EP4778271A1/fr
Pending legal-status Critical Current

Links

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • H04N19/513—Processing of motion vectors
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • H04N19/513—Processing of motion vectors
    • H04N19/517—Processing of motion vectors by encoding
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00—Computing arrangements based on biological models
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00—Computing arrangements based on biological models
    • G06N3/02—Neural networks
    • G06N3/04—Architecture, e.g. interconnection topology
    • G06N3/045—Combinations of networks
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • H04N19/513—Processing of motion vectors
    • H04N19/517—Processing of motion vectors by encoding
    • H04N19/52—Processing of motion vectors by encoding by predictive encoding
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

L'invention concerne un procédé de codage et de décodage d'une séquence d'images. Le procédé de décodage comporte, pour au moins une image courante de la séquence : - décodage d'un ensemble d'images dites de correction comprenant au moins une image de correction représentatives de données de correction de ladite au moins une image courante; - décodage d'un ensemble de cartes de caractéristiques dites de prédiction comprenant au moins une carte de caractéristiques représentative d'un mouvement de ladite au moins une image courante; - décodage d'un ensemble de paramètres représentatifs d'un réseau de neurones de prédiction; - obtention d'un ensemble d'images de référence, comprenant au moins une image de référence décodée; - traitement desdites cartes de caractéristiques de prédiction et desdites images de référence par un module de synthèse comprenant ledit au moins un réseau de neurones de prédiction à l'entrée duquel sont appliquées lesdites cartes de caractéristiques de prédiction, pour produire au moins une image de prédiction; - reconstruction de l'image courante à partir de ladite au moins une image de prédiction et de ladite au moins une image de correction.

Description

    Procédé et dispositif de codage et décodage de séquences d’images.
  • L’invention se rapporte au domaine général du codage de séquences d’images numériques. Elle concerne plus particulièrement la compression des vidéos numériques.
  • Les vidéos numériques font en général l’objet d’un codage source visant à les compresser afin de limiter les ressources nécessaires à leur transmission et/ou à leur stockage. Il existe de nombreux standards de codage, tels que les standards des organismes ITU/MPEG (H.264/AVC, H.265/HEVC, H.266/VVC, etc.) ainsi que leurs extensions (MVC, SVC, 3D-HEVC, etc.)
  • L’encodage d’une image est généralement effectué en divisant l’image en plusieurs blocs rectangulaires, et en encodant ces blocs de pixels selon une séquence de traitement donnée. Dans les techniques existantes de compression vidéo, le traitement d’un bloc comprend typiquement une prédiction des pixels du bloc effectuée à l’aide de pixels précédemment codés puis décodés présents dans l’image en cours d’encodage, auquel cas on parle de « prédiction Intra », ou d’images précédemment codées, auquel cas on parle de « prédiction Inter ». Cette exploitation des redondances spatiales et/ou temporelles permet d’éviter de transmettre ou de stocker la valeur des pixels de chaque bloc de pixels, en représentant certains au moins des blocs par un résiduel représentant une différence entre les valeurs de prédiction des pixels du bloc et les valeurs réelles des pixels du bloc prédit.
  • Les formats vidéo ne cessant d'évoluer pour compresser toujours davantage et s’adapter à la variété de formats attendus et des réseaux de communication, les possibilités de prédiction deviennent de plus en plus grandes et les algorithmes de codage et décodage classiques très complexes.
  • En plus de ces approches classiques proposées par les normes de compression (MPEG, ITU), les approches basées sur l’intelligence artificielle, et notamment neuronales, tendent à se développer.
  • Certaines de ces approches neuronales peuvent être vues comme une simple extension de la notion de compétition des techniques de compression susmentionnées, telles que la compétition de mode de prédiction et transformation en codage vidéo. 
  • D’autres approches utilisent le concept « d’auto-encodeur ». Les auto-encodeurs sont des algorithmes d’apprentissage à base de réseaux de neurones artificiels, qui permettent de construire une nouvelle représentation d’un jeu de données. L’architecture d’un auto-encodeur est constituée de deux parties : l’encodeur et le décodeur. L’encodeur est constitué par un ensemble de couches de neurones, qui traitent les données afin de construire de nouvelles représentations dites « encodées », appelées aussi « représentations latentes ». À leur tour, les couches de neurones du décodeur reçoivent ces représentations et les filtrent afin d’essayer de reconstruire les données de départ. Les différences entre les données reconstruites et les données initiales permettent de mesurer l’erreur commise par l’auto-encodeur. L’entraînement consiste à modifier les paramètres de l’auto-encodeur afin de réduire l’erreur de reconstruction mesurée sur les différents échantillons du jeu de données. Les performances de tels systèmes à base d'auto-encodeur se font au prix d'une augmentation considérable de l'empreinte mémoire et de la complexité comparativement aux approches conventionnelles telles que proposées par les normes de compression. Ils peuvent avoir des millions de paramètres et peuvent nécessiter jusqu'à un million de MAC (multiplication-accumulation) pour décoder un seul pixel. Cela rend de tels décodeurs bien plus complexes que les décodeurs conventionnels, ce qui pourrait entraver l'adoption de la compression basée sur l'apprentissage.
  • Plus récemment, une technique simple d’encodage d’image fondé sur un réseau de neurones a été décrite dans l’article « COmpression with Implicit Neural representations » d’Émilien Dupont et al. (arXiv:2103.03123). La technique de codage proposée consiste à ajuster un réseau de neurones à une image, quantifier les poids du réseau et les transmettre. Au moment du décodage, le réseau de neurones est évalué à chaque position de pixel pour reconstruire l'image. Une telle technique reste cependant inefficace en termes de compression et suppose de coder indépendamment les images de la vidéo.
  • Dans le domaine de la vidéo, une technique équivalente a été présentée dans l'article « Scalable Neural Video Representations with Learnable Positional Features » (NeurIPS 2022) de Subin Kim et al. La dimension temporelle est prise en compte. L'algorithme de codage génère un ensemble de trois images clés latentes bidimensionnelles, une sur chaque axe spatio-temporel, pour apprendre les images communes de la vidéo. Il génère aussi une grille de représentation 3D latente pour capturer les détails locaux de la vidéo. Cette représentation est utilisée pour moduler un réseau de neurones entraîné pour traiter les trois images clés. Cependant, une telle approche manque de flexibilité dans le choix de représentation des images clés (dont le nombre est fixé à 3) et de la grille 3D (figée pour l'ensemble de la séquence). Par ailleurs elle nécessite le traitement d’une grille 3D transmise, qui est à la fois lourde en quantité de données transmises et en mémoire requise pour son traitement.
  • Le document de brevet publié sous le numéro US 2023/0145525 A1 décrit une méthode de décodage d'images comprenant l'obtention d'un flux optique courant et de données de correction générées sur la base d'une image prédite et d'une image courante. Le flux optique est encodé et décodé par un réseau de neurones. Des données de caractéristiques représentatives des données de corrections sont obtenues via un codeur d'images basé sur un réseau neuronal ; et l'image reconstruite courante est obtenue en combinant les données de correction et l'image prédite. Cependant, une telle méthode suppose de stocker des réseaux de neurones qui sont très volumineux.
  • Il existe donc un besoin pour une solution permettant de coder/compresser une séquence d’images de manière simple et efficace.
  • L'invention vise un procédé de décodage d’une séquence d’images à partir d’un flux binaire, comportant les étapes suivantes pour au moins une image courante de la séquence à décoder :
    - décodage d’un ensemble d'images dites de correction comprenant au moins une image de correction représentatives de données de correction de ladite au moins une image courante ;
    - décodage d’un ensemble de cartes de caractéristiques dites de prédiction comprenant au moins une carte de caractéristiques représentative d'un mouvement de ladite au moins une image courante ;
    - décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones de prédiction ;
    - obtention d’un ensemble d'images de référence, comprenant au moins une image de référence décodée;
    - traitement desdites cartes de caractéristiques de prédiction et desdites images de référence par un module de synthèse comprenant ledit au moins un réseau de neurones de prédiction à l'entrée duquel sont appliquées lesdites cartes de caractéristiques de prédiction, pour produire au moins une image de prédiction ;
    - reconstruction de l’image courante à partir de ladite au moins une image de prédiction et de ladite au moins une image de correction.
  • L’invention vise aussi un procédé de codage d’une séquence d’images comportant les étapes suivantes pour au moins une image courante de la séquence :
    - initialisation d’un ensemble d'images dites de correction ;
    - initialisation d’un ensemble de paramètres représentatifs d’un réseau de neurones de prédiction ;
    - initialisation d’un ensemble de cartes de caractéristiques dites de prédiction;
    - obtention d’un ensemble d'images de référence, comprenant au moins une image de référence codée puis décodée ;
    - traitement desdites cartes de caractéristiques de prédiction et desdites images de référence par un module de synthèse comprenant ledit au moins un réseau de neurones de prédiction à l'entrée duquel sont appliquées lesdites cartes de caractéristiques de prédiction, pour produire au moins une image de prédiction;
    - reconstruction de l’image courante à partir de ladite au moins une image de prédiction et de ladite au moins une image de correction ;
    - mise à jour d'au moins une valeur de ladite au moins une carte de caractéristiques et/ou d’au moins un paramètre dudit réseau, en fonction d’une mesure de performance de codage.
    - une étape de codage dans le flux binaire comprenant :
    - codage de ladite au moins une image de correction ;
    - codage de l'ensemble de paramètres représentatifs du réseau de neurones de prédiction ; - codage de l'ensemble de cartes de caractéristiques de prédiction.
  • Au sens de l’invention, on entend par encodage, ou « codage », l’opération qui consiste à représenter un ensemble d’échantillons, ou pixels, sous une forme compacte portée par exemple par un train binaire numérique. On entend par "décodage" l’opération qui consiste à traiter un train binaire numérique pour restituer des échantillons ou pixels décodés.
  • Par « séquence d’images » on entend une pluralité d’images bidimensionnelles Iv ordonnées, par exemple temporellement dans le cas d’une vidéo. Selon un exemple, la séquence correspond à une scène. Les images peuvent comporter plusieurs composantes par exemple pour représenter les couleurs, sous forme RGB ou composite YUV par exemple. Selon un exemple la séquence correspond à un ensemble d'images prédéfinies, par exemple un nombre fixe, ou, au sens des normes MPEG, un GOP (Group Of Pictures) comprenant les images situées entre deux images de type Intra-images, aussi appelé « période intra ». Selon un autre exemple, les images peuvent être des vues d’une même scène représentée en multivues. Selon un autre exemple, les images peuvent être une pluralité d’images temporelles et multivues (vidéo immersive).
  • Par « au moins une image courante » on entend une sous-séquence d'au moins une image de la séquence, en cours de codage ou de décodage, comportant une pluralité de N échantillons.
  • Par « échantillon », on entend une valeur prélevée dans une image de la séquence. L’échantillonnage d’un signal produit une suite de valeurs discrètes nommées échantillons. Dans le cas d’un signal d’image, l’échantillon prend le nom de pixel qui peut être un pixel couleur représenté traditionnellement par un triplet de valeurs, par exemple (R,G,B) ou (Y,U,V), chaque valeur appartenant à une carte de composantes qui peuvent être ou non de même taille. La position de l’échantillon est repérée par ses coordonnées en abscisse (x) et ordonnée (y) dans l’image, ou dans l'une des composantes.
  • Par « image de correction », on entend une représentation concrète ou abstraite d’une image, comportant une pluralité de données scalaires variables, que l’on appelle aussi valeurs de correction, par exemple des nombres réels, ou des nombres entiers, signés ou non. L'ensemble des données de correction d'une image peut correspondre à une seule image de correction, ou plusieurs images de correction, dont la dimension peut être quelconque. Une image ou carte de correction corrige une image ou carte de prédiction pour réaliser une approximation de l'image courante à coder ou décoder.
  • Par « réseau de neurones », on entend un réseau neuronal tels un réseau neuronal convolutif, un perceptron multicouche, un LSTM (pour « Long Short Term Memory » en anglais), etc. Le réseau de neurones est défini par exemple par une pluralité de couches de neurones artificiels et par un ensemble de fonctions d'activation préférablement non linéaires, de pondération et d’addition (par exemple, une couche peut calculer y = f(Ax+b), où y et b sont des vecteurs de dimension N, x un vecteur de dimension M, A est une matrice de dimension MxN, et f est la fonction d’activation). L'entrée du réseau de neurones se compose de données extraites des cartes de caractéristiques, par exemple sous forme de vecteurs.
  • Par « paramètre du réseau de neurones », on entend une des valeurs qui caractérise le réseau de neurones, par un exemple un poids associé à l’un des neurones (coefficient de filtre, pondération, biais, valeur affectant le fonctionnement de la non-linéarité, etc.)
  • Par « carte de caractéristiques », on entend tout ou partie d’une représentation abstraite d’une image dans un domaine latent, comportant une pluralité de données scalaires variables, que l’on appelle aussi valeurs caractéristiques, par exemple des nombres réels, ou des nombres entiers, signés ou non. La représentation abstraite d’une image peut donc comporter plusieurs cartes de caractéristiques. La représentation abstraite d'une image peut aussi correspondre à une seule carte de caractéristiques comprenant un ensemble de valeurs associées à une position.
  • On appelle "domaine latent" une représentation composée d’un ensemble de cartes de caractéristiques sous forme 2D, dont la taille est proportionnelle à l’image d’entrée, ou de vecteurs 1D ou de valeurs scalaires.
  • Par « traitement par un module de synthèse», on entend la synthèse d'une ou plusieurs images compensées en mouvement. Un tel module de synthèse comprend au moins un réseau de neurones de prédiction, à l'entrée duquel sont appliquées au moins les cartes de caractéristiques de prédiction, sous forme de vecteurs d'entrée dits vecteurs caractéristiques extraits des cartes de caractéristiques. Un tel module peut comprendre d'autres modules, comme par exemple un module de compensation de mouvement. Selon des modes de réalisation, des cartes ou images de référence sont également appliquées à l'entrée du réseau de neurones de prédiction. L’application d’une fonction exprimée par le réseau de neurones à un vecteur caractéristique d’entrée produit un vecteur de sortie représentatif d'une prédiction des échantillons à coder (resp. décoder). Ce vecteur de sortie correspond à une information de mouvement relative à l'image ou la sous-séquence courante de la séquence, ou encore à un échantillon de l'image compensée en mouvement.
  • Par « image de référence », on entend une image décodée issue d'un décodage préalable d'une image de la séquence. Par exemple, il peut s'agir d'une image précédente dans la séquence, ou d'une image clé (image Intra, première image de la séquence, etc.) ou d'une image suivante dans la séquence si l'ordre de décodage le permet. Elle peut être représenté dans le domaine image (sous forme d'une image de référence) ou dans le domaine latent (sous forme de cartes de caractéristiques de valeurs latentes).
  • Par "reconstruction de l'image courante", on entend une combinaison de la ou les images de prédiction obtenues et de la ou les images de correction obtenues. Cette combinaison peut comporter par exemple une addition ou soustraction des deux types d'images. Elle peut aussi comporter un traitement plus complexe, par exemple une combinaison par réseau de neurones.
  • Par « mesure de performance », on entend une mesure entre au moins une valeur d’un échantillon à coder et une valeur décodée dudit échantillon. La mesure peut évaluer par exemple une distorsion, ou une erreur perceptive. Elle peut être effectuée sur un échantillon ou une pluralité d’échantillons (par exemple, des échantillons courants de l'image courante, ou d'une sous-séquence courante, etc.) La mesure peut comporter aussi une mesure du débit, notamment associé au codage du réseau de neurones et/ou au codage des cartes de caractéristiques. La mesure peut être une mesure conjointe entre le débit et la distorsion au travers de leur pondération. Comme il est bien connu de l’état de l’art, il est généralement procédé à une minimisation de la valeur de cette mesure.
  • De manière générale, on considère que les étapes d’un procédé de codage ou décodage ne doivent pas être interprétées comme étant liées à une notion de succession temporelle. Autrement dit, les étapes peuvent être effectuées dans un ordre différent de celui indiqué dans la revendication indépendante de codage ou de décodage, voire en parallèle.
  • Lorsque l’entraînement est terminé, c’est-à-dire que la mesure de performance obtenue est satisfaisante, ou qu'un temps d'entraînement prédéterminé a été atteint, le codage effectif des paramètres du réseau de neurones et des valeurs des cartes de caractéristiques associées à l'image ou la sous-séquence courante peut être effectué et mémorisé ou transmis à destination du décodeur. Avantageusement, au niveau du codeur, le processus d’entraînement permet de raffiner les paramètres du réseau de neurones de prédiction et/ou les valeurs des cartes de caractéristiques de prédiction ainsi que les données des images de correction jusqu’à obtenir une représentation adéquate en termes de performance, par exemple un équilibre souhaité entre le débit généré et la distorsion subie par l’image ou la sous-séquence d’images en cours de codage. Avantageusement, le procédé de codage selon l’invention permet de compresser efficacement le signal.
  • Avantageusement, le procédé de décodage est simple puisqu'il suffit de décoder les cartes de caractéristiques de prédiction relative à l'image ou à la sous séquence courante et les paramètres du réseau de neurones pour reconstituer une version décodée de l'image de prédiction. Un tel réseau de neurones peut avantageusement être de structure très simple avec peu de paramètres.
  • Avantageusement, les cartes de caractéristiques capturent de manière dynamique les caractéristiques locales de l'image ou la sous-séquence courante, puisqu'elles sont codées (resp. décodées) au fur et à mesure du traitement de la séquence. On peut donc concevoir un système de transmission qui travaille image par image avec une faible latence, chaque image ou sous-séquence courante étant décodée dès la réception des cartes courantes et du réseau de neurones associés.
  • Selon un mode de réalisation de l'invention, un tel procédé de codage ou de décodage est en outre caractérisé en ce que l'étape de traitement comporte les sous-étapes suivantes :
    - application desdites cartes de caractéristiques de prédiction à l'entrée dudit au moins un réseau de neurones de prédiction pour produire une information de mouvement ;
    - compensation de ladite au moins une image de référence à l’aide de ladite information de mouvement pour produire ladite au moins une image de prédiction.
  • Par "information de mouvement" on entend un ensemble de données de n'importe quelle nature pour décrire le mouvement d'un échantillon ou d'une partie d'image, par exemple un champ de vecteurs de mouvement par échantillon, dit champ dense de mouvement, ou flot optique, ou un champ de mouvement par blocs, ou un ensemble d'équations représentant un mouvement affine d'un ou plusieurs échantillons de l'image, ou encore un angle et une amplitude d’un vecteur de mouvement par échantillon ou par bloc, etc.
  • Par "compensation d'une image de référence", on entend l'application de l'information de mouvement à la ou les images ou cartes de référence sélectionnées, pour générer une image compensée en mouvement, appelée image de prédiction.
  • Avantageusement selon ce mode, la génération de l'image de prédiction se déroule selon deux étapes traditionnelles bien connues de l'homme du métier que sont la génération ou le décodage du mouvement, synthétisé ici par un réseau de neurones de prédiction à partir des cartes de prédiction, suivi d'une compensation d'images de référence par ce mouvement. L'opération de compensation, bien connue, consiste à appliquer le mouvement obtenu sur un pixel ou un ensemble de pixels de l'image de référence.
  • Selon une variante de ce mode de réalisation de l'invention, l'étape de traitement desdites cartes de caractéristiques de prédiction par ledit au moins un réseau de neurones de prédiction comporte, pour au moins un échantillon, dit échantillon courant, de ladite au moins une image courante, associé à une position dans l'image :
    - construction d’un vecteur caractéristique à partir de ladite au moins une carte de caractéristiques de prédiction, en fonction de ladite position dudit au moins un échantillon courant, et :
    - application dudit vecteur caractéristique à l'entrée dudit réseau de neurones de prédiction pour fournir un vecteur représentatif de la prédiction dudit au moins un échantillon courant.
  • Par « vecteur caractéristique construit à partir des cartes de caractéristiques en fonction d’une position » on entend un vecteur constitué d’un ou plusieurs éléments, ou données, de préférence discrètes, les données étant construites à partir des cartes de caractéristiques à une position déterminée par celle des échantillons en cours de traitement dans les images. Ce vecteur caractéristique est celui qui est appliqué, ou présenté, à l’entrée du réseau de neurones de prédiction. Un tel vecteur peut être constitué par exemple à partir d’une pluralité de valeurs prélevées dans chacune des cartes de caractéristiques aux mêmes coordonnées en abscisse et en ordonnée que celles de l'échantillon que l'on cherche à prédire ou à reconstruire. Un tel vecteur peut aussi constitué à partir d’une pluralité de valeurs voisines de celles de l'échantillon, prélevées dans chacune des cartes de caractéristiques. Dans le cas où l'on cherche à reconstituer un champ de mouvement via le réseau de neurones de prédiction, un obtient par exemple en sortie du réseau un vecteur de mouvement pour cet échantillon.
  • Le procédé de codage selon ce mode réalise une construction des paramètres de prédiction et/ou correction, à partir d’une séquence d’images d’entrée, en entraînant un réseau de neurones de prédiction et/ou correction sur des vecteurs caractéristiques associés à une position d’un échantillon à coder dans l'image ou la sous-séquence courante. Ces vecteurs caractéristiques sont construits à partir de cartes de caractéristiques de prédiction et/ou correction. Les cartes de caractéristiques peuvent être à la résolution des images d’entrée, ou à une résolution inférieure. Un procédé de codage ou de décodage selon ce mode utilise les paramètres du réseau de neurones et les cartes de caractéristiques qui lui ont été transmis pour générer des vecteurs de caractéristiques similaires (aux erreurs de codage près) à ceux du codeur, les présenter en entrée du réseau de neurones approprié, et obtenir en sortie une information de mouvement.
  • Selon un autre mode de réalisation de l'invention, un tel procédé de codage ou de décodage est caractérisé en ce que l'étape de traitement comporte une sous-étape d'application desdites cartes de caractéristiques de prédiction et desdites images de référence à l'entrée dudit au moins un réseau de neurones de prédiction pour produire au moins une image de prédiction.
  • Avantageusement selon ce mode, la génération de l'image de prédiction combine la génération du champ de mouvement et la compensation. Ainsi, une mutualisation des opérations est assurée assurant une complexité réduite. De préférence dans ce cas, les images de référence sont dans le domaine latent, et représentées sous forme de cartes de caractéristiques.
  • Selon une variante de ce mode de réalisation de l'invention, l'étape d'application desdites cartes de caractéristiques de prédiction et de ladite au moins une image de référence à l'entrée dudit au moins un réseau de prédiction comporte, pour au moins un échantillon, dit échantillon courant, de ladite au moins une image courante, associé à une position dans l'image :
    - construction d’un vecteur caractéristique à partir de ladite au moins une carte de caractéristiques de prédiction et de ladite au moins une image de référence, en fonction de ladite position dudit au moins un échantillon courant, et :
    - application dudit vecteur à l'entrée dudit réseau de neurones de prédiction pour fournir un vecteur représentatif de la prédiction dudit au moins un échantillon courant.
  • Dans le cas où l'on cherche à reconstituer l'image de prédiction via le réseau de neurones de prédiction, un tel vecteur de sortie peut être constitué d'un vecteur (e.g. (Y,U,V) ) représentatif de la prédiction du pixel courant.
  • Selon un mode de réalisation de l'invention, l'étape de décodage dudit ensemble d'images de correction comporte en outre les sous-étapes suivantes :
    - décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones de correction ;
    - décodage d’un ensemble de cartes de caractéristiques dites de correction ;
    - application desdites cartes de caractéristiques de correction décodées à l'entrée dudit au moins un réseau de neurones de correction pour produire au moins une image de prédiction.
  • Avantageusement selon ce mode, un réseau de neurones est utilisé pour coder et décoder les images de correction. Le réseau de neurones entraîné au codeur est transmis au décodeur, qui peut, à partir des seules cartes de caractéristiques de correction et du réseau de correction, reconstituer une image de correction. Le réseau de neurones de correction peut être entraîné conjointement avec le réseau de neurones de prédiction pour fournir un meilleur compromis entre le débit et la distorsion des images décodées.
  • Selon une variante de ce mode de réalisation de l'invention, l'étape de traitement desdites cartes de caractéristiques de correction par ledit au moins un réseau de neurones de correction comporte, pour au moins un échantillon, dit échantillon courant, de ladite au moins une image courante, associé à une position dans l'image :
    - construction d’un vecteur caractéristique à partir de ladite au moins une carte de caractéristiques de correction, en fonction de ladite position dudit au moins un échantillon courant, et :
    - application dudit vecteur caractéristique à l'entrée dudit réseau de neurones de correction pour fournir un vecteur représentatif de la correction dudit au moins un échantillon courant.
  • Dans le cas où l'on cherche à reconstituer l'image de correction via le réseau de neurones de correction, un tel vecteur de sortie peut être constitué d'un vecteur (e.g. (Y,U,V) ) représentatif de la correction du pixel courant.
  • Selon un autre mode de réalisation de l'invention, le réseau de neurones de correction et/ou le réseau de neurones de prédiction comportent un MLP et/ou un réseau convolutif.
  • Par MLP on entend un Multi-Layer Perceptron. Par réseau convolutif on entend un réseau qui comporte au moins une couche de convolution. Avantageusement ce type de réseau est de nature très simple et ses paramètres peuvent être facilement appris et transmis du codeur au décodeur.
  • Selon des modes de réalisation du procédé de codage ou de décodage :
  • - l'étape de reconstruction comporte une addition ou une soustraction appliquée sur les images de correction et de prédiction ; avantageusement selon ce mode, les données de correction sont simplement ajoutées aux données de prédiction, par exemple pour chaque pixel de l'image, pour reconstruire l'image courante.
  • - l'étape de reconstruction utilise un réseau de neurones convolutif appliqué sur les images de correction et de prédiction ; avantageusement selon ce mode, les données de correction peuvent être combinées de manière plus fine aux données de prédiction pour reconstruire l'image courante
  • – l'information de mouvement est un champ dense de vecteurs de mouvement bidimensionnels ;
  • - l'étape de compensation comporte un déplacement d'au moins un échantillon de l'image de référence.
  • - Le procédé comporte une étape de transformation dudit ensemble de cartes de caractéristiques de prédiction et/ou de correction pour obtenir un ensemble de cartes de caractéristiques transformées à la résolution de l'image courante, le procédé étant caractérisé en ce que ledit vecteur caractéristique est construit à partir desdites cartes de caractéristiques transformées. Avantageusement selon ce mode, les cartes de caractéristiques sont divisées en deux ensembles dont l’un est réservé à l’extraction des vecteurs caractéristiques et l’autre au codage/décodage. On peut ainsi dissocier les deux procédés dont la finalité est différente : les cartes du groupe à coder (resp. décoder) doivent être compressées le plus efficacement possibles, alors que les cartes transformées doivent pouvoir faciliter le processus d’extraction et de construction du vecteur caractéristique.
  • – Selon une variante, une au moins des cartes de caractéristiques de prédiction et/ou de correction est de résolution inférieure à celle de la sous-séquence à coder (resp. décoder) et l’opération de transformation comporte un suréchantillonnage. Avantageusement selon ce mode, la compression des cartes de caractéristiques est plus efficace puisque l’une au moins des cartes de caractéristiques à coder (resp. décoder), comporte moins de valeurs que si elle était à la résolution du signal. Par exemple, l’une des cartes de caractéristiques peut être à la résolution 1/2, c’est-à-dire qu’elle comporte deux fois moins de valeurs en abscisse et en ordonnée que l’image d’entrée comporte d’échantillons, soit au total 4 fois moins de valeurs qu’une carte de caractéristiques à la résolution de l’image. En revanche, la carte de caractéristiques transformée, qui correspond à une transformation de cette carte, est de résolution identique à celle de l'image. La transformation comporte donc dans ce cas au moins une opération de suréchantillonnage pour obtenir le même nombre de valeurs dans cette carte transformée que l'image courante comporte d’échantillons.
  • – Une au moins desdites cartes de caractéristiques de prédiction et/ou de correction est de résolution identique à celle de l'image à coder (resp. décoder). Avantageusement selon ce mode, l’une au moins des cartes de caractéristiques, à la même résolution que le signal d’entrée à coder (resp. à décoder) permet une fidélité importante et le respect des détails de la résolution initiale du signal d'image. La transformation selon un mode de réalisation conserve dans ce cas le nombre de valeurs de la carte de caractéristiques transformée ; elle peut être réduite à l’identité (aucun traitement n’est effectué sur les valeurs de la carte courante) ou comporter une opération de filtrage, de quantification, une transformation de Fourier, etc.
  • - La construction du vecteur caractéristique comporte une sous-étape d’extraction d’une valeur d’une carte de caractéristiques de prédiction et/ou de correction à une position identique à celle de l’échantillon courant dans l'image courante à coder ou décoder. Avantageusement, il est possible d’extraire une valeur d’une carte de caractéristiques à la même position que l’échantillon dans l'image, pour constituer un élément du vecteur caractéristique. Ce procédé est simple à mettre en œuvre. Une simple extraction des valeurs des cartes aux coordonnées de l’échantillon courant (à la même abscisse et la même coordonnée dans la carte de caractéristiques) permet de construire directement le vecteur caractéristique.
  • - La construction dudit vecteur caractéristique comporte les sous-étapes suivantes :
    - extraction d’une pluralité de valeurs desdites cartes de caractéristiques de prédiction et/ou de correction en fonction de ladite position dudit échantillon courant ;
    - traitement desdites valeurs extraites pour obtenir le vecteur caractéristique.
  • Avantageusement selon ce mode, le vecteur caractéristique est extrait des cartes de caractéristiques, qui peuvent être quelconques, et notamment à une résolution inférieure à celle de l'image à coder (resp. décoder), avant de subir un traitement. Un tel traitement peut par exemple correspondre à une quantification des données extraites, ou à une mise à l’échelle, ou à un filtrage, etc. Au codage, une quantification est indispensable au bon fonctionnement du système si les cartes de caractéristiques comportent par exemple des valeurs flottantes, ou réelles. Il est nécessaire de les quantifier avant de les coder et/ou de les fournir en entrée du réseau de neurones de prédiction et/ou de correction. Au décodage en revanche, la quantification inverse n’est pas nécessaire, selon les modes de réalisation.
  • - Le procédé comporte une étape de construction d’un groupe de cartes de caractéristiques supplémentaires et le vecteur caractéristique de mouvement et/ou de correction est en outre construit à partir desdites cartes de caractéristiques. Avantageusement, ces cartes supplémentaires, construites de manière identique au codeur et au décodeur, ne sont ni stockées, ni transmises au niveau du codeur, ni décodées au niveau du décodeur. Elles permettent ainsi de bénéficier de données supplémentaires pour améliorer la compression sans dégrader le débit. Elles peuvent par exemple comprendre des coordonnées, des données causales disponibles dans d'autres cartes, des données concernant d’autres images déjà traitées par le codeur ou décodeur, etc.
  • - Ladite au moins une image de référence est indiquée dans le flux binaire. Avantageusement selon ce mode, un simple indicateur codé dans le flux permet au décodeur d'accéder directement à la ou les images de référence à utiliser pour le décodage de l'image ou la sous-séquence courante, par exemple via un indicateur indiquant la position absolue ou relative du numéro de l'image ou des images de référence dans la séquence.
  • - Ladite au moins au moins une image de référence est prédéterminée. Avantageusement selon ce mode, la ou les image de référence à utiliser pour le décodage de l'image ou la sous-séquence courante sont prédéterminées. Par exemple il s'agit de la précédente, ou la première de la séquence, etc.
  • Corrélativement, l’invention vise aussi un dispositif de codage et un dispositif de décodage.
  • Les caractéristiques et avantages du procédé de codage ou décodage s’appliquent de la même façon au dispositif de codage ou décodage selon l’invention et vice versa.
  • L’invention vise également un programme d’ordinateur sur un support d’enregistrement, ce programme étant susceptible d’être mis en œuvre dans un ordinateur ou un dispositif de codage ou de décodage conforme à l’invention. Ce programme comporte des instructions adaptées à la mise en œuvre du procédé correspondant. 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 aussi un support d'information ou un support d’enregistrement lisible par un ordinateur, et comportant des instructions de programme d'ordinateur mentionné ci-dessus. Les supports d'information ou d’enregistrement peuvent être n'importe quel entité ou dispositif capable de stocker les programmes. Par exemple, les supports peuvent 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 disquette ou un disque dur, une séquence d’ADN, ou une mémoire flash. D'autre part, les supports d'information ou d’enregistrement peuvent être des supports transmissibles tels qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par lien radio, par lien optique sans fil 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, chaque support d'informations ou 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 d’un procédé conforme à l’invention.
  • D’autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif.
  • la représente schématiquement un dispositif de décodage utilisé dans le cadre de l’invention ;
  • la représente schématiquement un dispositif de codage utilisé dans le cadre de l’invention ;
  • la illustre un module de synthèse utilisé dans deux modes de réalisation de l’invention ;
  • la est un logigramme représentant un exemple de procédé de décodage qui peut être mis en œuvre par le dispositif de décodage de la  ;
  • la est un logigramme représentant un exemple de procédé de codage qui peut être mis en œuvre par le dispositif de codage de la  ;
  • la représente de manière illustrée un procédé de décodage d'image de correction utilisé dans un mode de réalisation de l’invention.
  • la représente de manière illustrée un procédé de décodage de champ de mouvement utilisé dans un mode de réalisation de l’invention.
  • La représente schématiquement un dispositif de décodage DEC.
  • Le dispositif de décodage DECv de la décode une image ou sous-séquence d’indice v de la séquence SV, en procédant image par image. A l'issue du décodage, les V images de la séquence sont décodées.
  • Une sous-séquence courante à décoder V comporte au moins une image courante à décoder notée IV, chaque image comportant respectivement une pluralité de N d'échantillons. Par la suite, on considère, sans perte de généralité, que la sous-séquence courante comporte une seule image courante. Le décodeur DECv dédié à l'image reçoit en entrée les données nécessaires pour la décoder :
  • - des données encodées FPc organisées en NFP cartes de caractéristiques de prédiction ;
  • - des paramètres encodés WPc d'un réseau de neurones de prédiction ;
  • – une ou des images de correction IC ; selon un mode de réalisation, les images de correction sont décodées par un décodage entropique de leurs valeurs ; selon un mode de réalisation, ces images de correction peuvent être décodées en utilisant un réseau de neurones de correction WCc appliqué à NFC cartes de caractéristiques de correction FCc qui sont présentées (appliquées) à son entrée. Dans ce cas, les données codées associées comprennent les paramètres du réseau de neurones de correction et les valeurs codées des cartes de caractéristiques de correction.
  • - optionnellement, les paramètres codés d'autres réseaux de neurones, notamment :
  • - de décodage prédictif des cartes de caractéristiques de prédiction et/ou de correction ;
    - de suréchantillonnage et/ ou de traitement des cartes de caractéristiques de prédiction et/ou de correction ;
  • - de mixage des images compensées et des images de correction ;
  • - de post-processing des données reconstruites après mixage ;
  • - etc.
  • Le module de décodage DECv comprend, pour une image courante, un module NND de décodage de réseau(x) de neurones, un module de synthèse MSP comprenant au moins un réseau de neurones de prédiction, optionnellement un réseau de neurones de correction MLPC, un module FPD de décodage des cartes de caractéristiques de prédiction FPc, un module FCD de décodage des images de corrections IC, optionnellement chargé de décoder des cartes de caractéristiques de correction FCc, un module XTRM, optionnellement XTRC, de traitement et d’extraction de données des cartes de caractéristiques, un module REF d'obtention d'images ou cartes de référence, un module MIX de combinaison des images compensées ICO et des données de correction IC, optionnellement un module de génération de cartes de caractéristiques supplémentaires, un module de post-processing, non représentés. Selon un mode de réalisation, il produit en sortie une image décodée courante, notée Idv, comportant une pluralité de N d’échantillons décodés. Selon un autre mode de réalisation, non représenté, il produit en sortie une sous-séquence d'images décodées comprenant au moins l'image courante.
  • Le module de décodage FPD décompresse les données compressées, par exemple en utilisant un décodeur entropique, d'une ou plusieurs cartes de caractéristiques de prédiction. Selon un mode de réalisation, il met en œuvre un décodage prenant en compte le voisinage d’une valeur à décoder de la carte de caractéristiques. Le voisinage peut être sélectionné dans une carte de mouvement courante (y compris celle en cours de décodage), ou une carte d'une image distincte de l'image courante. Le module FPD peut comprendre à cette fin un réseau de neurones de prédiction de carte de caractéristiques. Les cartes de prédiction décodées par le module FPD, au nombre de NFP, sont notées FP et sont dites cartes de mouvement de l’image courante, ou cartes de mouvement courantes.
  • Le module de décodage FCD décompresse les images de correction IC. Selon un mode de réalisation, il s'agit d'un décodeur classique, par exemple de type JPEG, ou MPEG, etc. chargé de décoder une image courante de correction IC. Selon un autre mode de réalisation, il décode des données quantifiées, par exemple en utilisant un décodeur entropique, d'une ou plusieurs cartes de caractéristiques de correction. Selon un mode de réalisation, il met en œuvre un décodage prenant en compte le voisinage d’une valeur à décoder de la carte de caractéristiques. Le voisinage peut être sélectionné dans une carte courante (y compris celle en cours de décodage), ou une carte d'une image distincte de l'image courante. Le module FCD peut comprendre à cette fin un réseau de neurones de prédiction de carte de caractéristiques. Les cartes décodées par le module FCD, au nombre de NFC, sont notées FC et sont dites cartes de correction de l’image courante, ou cartes de correction courantes.
  • Le module NND décode les réseaux de neurones. On peut utiliser à cette fin toute technique connue de décodage de réseaux de neurones, par exemple un décodage entropique, ou la norme de codage de réseaux de neurones proposée par le standard MPEG-7 partie 17, aussi appelée NNR. Les paramètres du réseau de neurones de prédiction (MLPP) du module de synthèse décodés par le module NND sont notés WP. Les paramètres du réseau de neurones de correction (MLPC) décodés par le module NND, s'ils existent, sont notées WC. Leurs valeurs codées sont respectivement notées WPc et WCc.
  • Le module REF constitue un ensemble de NFR images de référence, notées FREF, correspondant à une ou plusieurs images précédemment codées puis décodées de la séquence. Elles peuvent être prédéterminées ou leur référence peut être décodée dans le flux sous forme d'un indicateur. Dans un mode de réalisation, une seule image de référence est sélectionnée dans l'ensemble. Dans un mode de réalisation, plusieurs cartes de caractéristiques de référence, dans le domaine latent, représentent l'image de référence.
  • Le module MSP contient au moins un réseau de neurones dit de prédiction MLPP, défini par les K paramètres WPc décodés par le module NND. Le module prend en entrée la ou les images de référence, les cartes de caractéristique de prédiction décodées, et les paramètres décodés du réseau de neurones de prédiction. Il génère en sortie au moins une image compensée en mouvement notée(s) ICO. Deux modes de réalisation seront présentés à l'appui de la .
  • Le module XTRC, s'il est présent, réalise un traitement et une extraction de valeurs dans des cartes de caractéristiques, afin de les présenter au réseau de neurones. Il sera présenté à l'appui de la .
  • Le module MIX utilise en entrée une ou plusieurs images prédites ICO et l'information de correction IC décodée et effectue une combinaison des deux informations pour obtenir l'image reconstruite. La combinaison peut être, sous sa forme la plus simple, une addition des valeurs d'une image de prédiction et d'une image de correction. Selon un autre mode de réalisation, le module MIX utilise un réseau de neurones.
  • Le dispositif de décodage DEC peut être mis en œuvre au moyen d’un dispositif électronique comprenant un processeur et une mémoire, non représentés ; chacun des modules mentionnés ci-dessus peut alors être réalisé par la coopération du processeur et d’instructions de programme d’ordinateur mémorisées dans la mémoire susmentionnée et conçues pour effectuer les fonctionnalités du module concerné, notamment comme décrit ci-dessous, lorsque ces instructions sont exécutées par le processeur
  • La représente schématiquement un dispositif de codage de séquences d’images numériques ENC.
  • Le dispositif de codage ENCv de la code une image ou sous-séquence courante v de la séquence SV, en procédant par sous-séquences d'images. Une sous-séquence peut comporter une seule image.
  • Par la suite, on considère, sans perte de généralité, que la sous-séquence comporte une seule image Iv comportant respectivement une pluralité de N d'échantillons. Le codeur ENCv produit en sortie des paramètres codés. Ces paramètres comprennent :
  • - des caractéristiques de prédiction encodées organisées en NFP cartes de caractéristiques FP ;
  • - les paramètres encodés WPc du réseau de neurones de prédiction ;
  • - les données codées images de correction IC ; selon un mode de réalisation, les images de correction sont codées par un codage entropique de leurs valeurs ; selon un mode de réalisation, ces images de correction peuvent être codées en utilisant un réseau de neurones de correction appliqué à des cartes de caractéristiques de correction. Dans ce cas, les données codées associées comprennent les paramètres du réseau de neurones WCc et les valeurs codées des cartes de caractéristiques de correction FCc.
  • - optionnellement, les paramètres codés d'autres réseaux de neurones, comme mentionné pour le décodeur.
  • Le module de codage ENCv comprend, pour une image courante, un module NNC de codage de paramètres de réseau(x) de neurones, un module FPC de codage des cartes de caractéristiques de prédiction FPc et optionnellement un module FCC de codage des images ou cartes de caractéristiques de correction FCc, un module d’évaluation RD-OPT, un module d'initialisation et de mise à jour INIT/MAJ.
  • Par ailleurs, de manière classique, le module de codage comprend un décodeur similaire au décodeur DECv qui a été précédemment décrit, afin de reconstruire l'image courante I'v codée puis décodée.
  • Le module de codage FPC compresse les données quantifiées, par exemple en utilisant un codeur entropique, d'une ou plusieurs cartes de caractéristiques de prédiction. Durant le processus d’entraînement, ou de construction, du codage, c’est-à-dire tant que l’étape d’évaluation d’une performance n’est pas satisfaisante, le module FPC réalise une simulation de codage, suivi d’un décodage, à destination du module d’évaluation RD-OPT. Par la suite, il effectue le codage effectif des valeurs des cartes FPc. De manière connue, la simulation de codage peut être identique au codage effectif, ou en réaliser une approximation. Le module de codage quantifie si nécessaire la représentation latente des valeurs des cartes en utilisant un quantificateur pour générer une collection ordonnée de valeurs quantifiées. Puis le module de codage compresse les données quantifiées, par exemple en utilisant un codeur entropique. Comme décrit au décodeur, selon un mode de réalisation, il met en œuvre un codage prenant en compte le voisinage d’une valeur à décoder de la carte de caractéristiques. Le module FPC peut comprendre à cette fin un réseau de neurones de prédiction de carte de caractéristiques, identique à celui du décodeur. Les cartes de mouvement codées par le module FPC, au nombre de NFP, sont notées FPc (cartes de prédiction de l’image courante).
  • Le module de codage FCC compresse les données quantifiées, par exemple en utilisant un codeur entropique, d'une ou plusieurs images ou cartes de correction. Durant le processus d’entraînement, ou de construction, du codage, c’est-à-dire tant que l’étape d’évaluation d’une performance n’est pas satisfaisante, le module FCC réalise une simulation de codage, suivi d’un décodage, à destination du module d’évaluation RD-OPT. Par la suite, il effectue le codage effectif des valeurs des images ou cartes FCc. De manière connue, la simulation de codage peut être identique au codage effectif, ou en réaliser une approximation. Le module de codage quantifie si nécessaire la représentation latente des valeurs des cartes en utilisant un quantificateur pour générer une collection ordonnée de valeurs quantifiées. Puis le module de codage compresse les données quantifiées, par exemple en utilisant un codeur entropique. Comme décrit au décodeur, selon un mode de réalisation, il met en œuvre un codage prenant en compte le voisinage d’une valeur à décoder de la carte de caractéristiques. Le module FCC peut comprendre à cette fin un réseau de neurones de prédiction de carte de caractéristiques, identique à celui du décodeur. Les cartes de correction codées par le module FCC, si elles existent, au nombre de NFC, sont notées FCc (cartes de correction de l’image courante).
  • Le module INIT/MAJ est chargé de l'initialisation des valeurs des cartes de caractéristiques et des paramètres du ou des réseaux de neurones, notés respectivement FPo, WPo, FCo, WCo.
  • Le module RD-OPT réalise une évaluation et minimisation d’une performance de codage. La fonction d’évaluation est par exemple de type débit-distorsion. La minimisation peut être effectuée par une descente de gradient, ou tout autre procédé d’optimisation à la portée de l’homme du métier.
  • Le module INIT/MAJ réalise une mise à jour des valeurs à encoder de l'image courante (FPo, WPo, FCo, WCo), en fonction des résultats de la fonction de performance. Une fois que les cartes de caractéristiques courantes et le(s) réseau(x) de neurones sont stabilisées, ils peuvent être codées.
  • Le dispositif de codage ENC peut être mis en œuvre au moyen d’un dispositif électronique comprenant un processeur et une mémoire, non représentés ; chacun des modules mentionnés ci-dessus peut alors être réalisé par la coopération du processeur et d’instructions de programme d’ordinateur mémorisées dans la mémoire susmentionnée et conçues pour effectuer les fonctionnalités du module concerné, notamment comme décrit ci-dessous, lorsque ces instructions sont exécutées par le processeur.
  • La illustre un module de synthèse MSP utilisé dans deux modes de réalisation de l’invention (a) et (b). Le module prend en entrée la ou les images de référence, les cartes de caractéristique de prédiction décodées, et les paramètres décodés du réseau de neurones de prédiction. Il génère en sortie au moins une image compensée en mouvement notée (s) ICO.
  • La description du module XTRM ci-dessous s'applique respectivement au module XTRC de la s'il est présent.
  • Selon les deux modes de réalisation (a) et (b), un module XTRM est utilisé pour mettre en forme les données à présenter au réseau de neurones de prédiction.
  • Dans des modes de réalisation, XTRM (resp. XTRC) utilise un module de quantification inverse, optionnel, pour réaliser une quantification inverse des données extraites des cartes de caractéristiques. Cette quantification inverse est obligatoire si une quantification a été effectuée au codeur.
  • Dans des modes de réalisation, XTRM (resp. XTRC) réalise une transformation des valeurs d’au moins une des cartes de caractéristiques, par exemple un suréchantillonnage, une interpolation, un filtrage, etc. À l’issue de la transformation, une carte de caractéristiques transformée est de même résolution que l'image ou la sous-séquence courante à décoder. Avantageusement selon ce mode, les cartes de caractéristiques qui sont décodées peuvent être de résolution inférieure à celle des images à décoder, alors que les cartes transformées, qui servent à la construction des vecteurs caractéristiques, sont à la même résolution que la séquence d’images, ce qui facilite l’extraction des valeurs.
  • Dans des modes de réalisation, un échantillon de prédiction (resp. un échantillon de correction) est généré pour chaque échantillon de l'image d'entrée. L'extraction des valeurs se fait en fonction de la position d'un échantillon en cours de traitement. Par exemple, si l’on cherche à décoder l’échantillon Pn aux coordonnées (xn, yn) d’une image courante, le module XTRM (resp. XTRC) réalise une extraction de valeurs dans les cartes de prédiction (resp. de correction) à des positions imposées par les coordonnées (xn, yn). Dans un mode de réalisation, les valeurs extraites constituent le vecteur caractéristique Zn. Zn est un J-uplet, c’est-à-dire qu’il comporte J éléments, ou données zi. Le vecteur Zn d’indice n réfère au vecteur caractéristique du pixel Pn. selon un mode de réalisation, J= NFP (resp. NFC).
  • Dans des modes de réalisation, XTRM (resp. XTRC) ne réalise pas de transformation, dans ce cas les valeurs qui serviront à construire le vecteur caractéristique sont extraites des cartes de caractéristiques de prédiction (resp. de correction) non transformées. XTRM (resp. XTRC) peut réaliser un traitement des valeurs extraites, pour générer le vecteur Zdn. XTRM (resp. XTRC) peut réaliser une quantification inverse des données extraites de l’ensemble de cartes de caractéristiques. Le traitement peut comporter d’autres opérations, comme un filtrage, une mise à l’échelle, etc. En particulier, si les cartes de caractéristiques sont à des résolutions inférieures à celle des images de la séquence, le module XTRM (resp. XTRC) peut prendre en compte les coordonnées des valeurs dans les cartes de résolutions inférieures.
  • Le module MSP contient au moins un un réseau de neurones dit de prédiction MLPP, défini par K paramètres WP, apte à traiter un vecteur Zn, ou J-Uplet, en entrée, pour générer en sortie un vecteur représentatif de l’échantillon Pn en cours de traitement. Le réseau de neurones de prédiction contient selon un mode de réalisation un MLP, ou Multi Layer Perceptron, constitué d’une couche d’entrée adaptée au format d’entrée (le J-uplet), optionnellement une ou plusieurs couche(s) cachée(s), et une couche de sortie adaptée au format de sortie du vecteur de sortie, de manière générale un vecteur comportant NCP (nombre de composantes du vecteur de sortie de prédiction) éléments, ou valeurs, pour chaque échantillon. Il peut aussi comprendre un réseau de neurones de convolution. Le réseau de neurones de prédiction MLPP est de structure identique au codeur et au décodeur, et ses paramètres sont soit identiques si le codage de ses paramètres WP est sans perte, soit différents si le codage est réalisé avec pertes. Lorsque tous les échantillons Pn de l'image v ont été traités, on dispose d’une information prédite comportant autant de vecteurs de sortie décodés que d’échantillons dans l’image (N échantillons, N vecteurs de sortie).
  • Si le réseau de neurones de correction est présent, sa structure peut être identique à celle du module de synthèse du mouvement et lorsque tous les échantillons Pn de l'image v ont été traités, on dispose d’une information de correction comportant NCC vecteurs de correction décodés, chacun comprenant par exemple un triplet de valeurs correctrices pour les composantes (R,G,B) ou (Y,U,V) de l'image. L'information de correction peut par exemple correspondre à une image de correction IC de même taille que l'image Iv.
  • Selon le premier mode, (a), représenté à gauche de la figure :
  • - MLPP effectue une synthèse de mouvement à partir des cartes de prédiction ; le vecteur de sortie est une information de mouvement MV, par exemple le couple (mvx, mvy) du déplacement en mouvement de chaque pixel Pn en cours de traitement
  • - le module MSP comporte de surcroît un module WARP de compensation de mouvement. Il effectue une compensation de mouvement sur une ou plusieurs images de référence en utilisant le champ de mouvement généré, opération bien connue d'un homme du métier. Les images résultant de la compensation sont notées ICO. Le warping peut être un type de transformation géométrique permettant de modifier la position des échantillons dans une image. Par exemple, chaque pixel de l'image de référence peut être déplacé selon un vecteur de mouvement (mvx, mvy) pour obtenir un échantillon prédit dans une image ICO.
  • Selon le second mode représenté à droit, noté (b) :
  • - MLPP effectue une synthèse d'image de prédiction à partir des cartes de prédiction et de une ou plusieurs images ou cartes de référence ; le vecteur de sortie est un échantillon d'image prédite, par exemple un pixel (Y,U,V). Les images résultant de la prédiction sont notées ICO. Le MLPP effectue les opérations de génération du champ de mouvement et de warping de manière combinée.
  • La est un logigramme représentant un exemple de procédé de décodage qui peut être mis en œuvre par le dispositif de décodage de la .
  • Le décodage décrit concerne une sous-séquence courante comportant au moins une image courante Iv de la séquence à décoder.
  • Lors d’une étape E30, les flux A1, A2, B1 et optionnellement B2 sont extraits du flux encodé. Ils contiennent respectivement les représentations codées des cartes courantes de prédiction FPc, les paramètres WPc du réseau de neurones de prédiction, les données codées FCc des images ou cartes de correction, les paramètres WCc du réseau de correction s'il existe.
  • Lors d’une étape E31, la ou les images IC de correction sont décodées.
  • Selon un mode de réalisation, elles sont décodées par une technique classique à la portée de l'homme du métier, par exemple une prédiction suivie d'un décodage par un codeur entropique contextuel puis une déquantification.
  • Selon un mode de réalisation, elles sont synthétisées par un réseau de neurones de correction (MLPC) qui prend un entrée un ensemble de cartes de caractéristiques de correction FCc. Dans ce cas, les modes de réalisation et variantes présentés ci-dessous pour les cartes de caractéristiques de prédiction et le réseau de neurones de prédiction s'appliquent mutatis mutandis.
  • Lors d’une étape E32, les NFP cartes FP de caractéristiques de prédiction sont générées par décodage des valeurs FPc. Pour ce décodage, on utilise par exemple une technique de prédiction d’une valeur de carte de caractéristiques par son voisinage suivie d'un décodage entropique. Dans un mode de réalisation, les cartes FP sont décodées dans l’ordre (FP1, FP2,… FP4), et les valeurs de chaque carte dans un ordre prédéfini, par exemple lexicographique.
  • Selon des modes de réalisation :
  • - Les cartes FP sont de même résolution que le signal Iv à reconstituer, c’est-à-dire qu’elles comportent autant de valeurs que d’échantillons (N) dans l’image Iv.
  • - Les cartes FP sont à une résolution inférieure ou égale à celle du signal Iv à reconstituer et comportent donc, pour au moins l’une d’entre elles, un nombre de valeurs à décoder inférieur à N. Selon une variante, la première carte est à la résolution des images et chaque carte suivante est à une résolution moitié de la précédente.
  • - Plusieurs cartes FP sont de même résolution, inférieure à la résolution du signal.
  • Lors d’une étape E33, selon des modes de réalisation, les M cartes FP sont déquantifiées, transformées, et des données en sont extraites par un module XTRM tel que présenté à l'appui de la .
  • Selon un mode de réalisation, au moins une carte FP est de résolution inférieure à celle des images décoder et l’opération de transformation comporte un suréchantillonnage pour que la carte transformée comporte le même nombre d’échantillons que les images de la séquence. Le suréchantillonnage consiste à rajouter des valeurs dans les cartes pour atteindre la résolution des images de la séquence d’entrée. Il peut être simple (par réplication du plus proche voisin) ou comporter une interpolation (linéaire, polynomiale, par filtrage, etc.). Il peut être réalisé par un réseau de neurones de suréchantillonnage.
  • Selon un mode de réalisation, le module XTRM réalise une extraction de valeurs dans les cartes de caractéristiques transformées, pour un échantillon Pn à décoder, en fonction de ses coordonnées dans le signal. Les valeurs extraites constituent le vecteur Zn. Zn est un J-uplet, c’est-à-dire qu’il comporte J éléments, ou données zi. Le vecteur Zn d’indice n réfère au vecteur caractéristique du pixel Pn.
  • Dans un mode de réalisation, Zn est un J-uplet (z1, z2,…, zJ), constitué des valeurs des cartes (éventuellement transformées) situées aux coordonnées (xn, yn) du pixel courant Pn. Dans un mode de réalisation, Zn comporte autant de valeurs que de cartes en entrée. Dans un mode de réalisation, Zn est un J-uplet construit à partir de valeurs prélevées dans les cartes à des coordonnées qui peuvent être différentes selon les cartes. Par exemple, si les cartes sont à des résolutions différentes, les cordonnées sont adaptées (par une mise à l’échelle) pour correspondre à la résolution de chaque carte. Dans un mode de réalisation, Zn est un J-uplet construit à partir de valeurs prélevées dans les cartes en appliquant le traitement à une ou plusieurs valeurs des cartes, par exemple un filtrage des valeurs voisines de la valeur ciblée dans une carte. Par exemple, pour un échantillon courant Pn dans une carte FP qui se trouve à la même résolution que le signal d'images à décoder, on peut extraire les valeurs situées aux coordonnées (xn, yn), (xn-1, yn), (xn, yn-1) et (xn-1, yn-1) et appliquer un traitement à ces valeurs (filtrages, moyennage, interpolation, application d’une fonction quelconque, de préférence monotone, etc.) pour obtenir la valeur finale (zi) de l’élément i du vecteur Zn relative à cette carte. Selon un autre exemple, dans une carte qui se trouve à une résolution moitié du signal, on peut considérer les valeurs situées aux coordonnées (xn/2, yn/2), (xn/2-1, yn/2), (xn/2, yn/2-1) et (xn/2-1, yn/2-1) et appliquer un traitement à ces valeurs (filtrages, moyennage, interpolation, etc.) pour obtenir la valeur finale (zi) de l’élément i du vecteur Zn relative à cette carte FPi. Le traitement peut comporter une quantification des valeurs extraites ou du vecteur Znconstitué, si nécessaire. Les échantillons à décoder sont par exemple traités par ordre séquentiel, de n=1 à n=N.
  • Lors d’une étape E34, les paramètres WP du réseau de neurones de prédiction MLPP sont générés par décodage des valeurs WPc du flux A2. On peut utiliser à cette fin toute technique connue de décodage de réseau de neurones correspondant à celle de codage qui a été utilisée par le codeur, par exemple la norme de codage de réseaux de neurones proposée par le standard MPEG-7 partie 17, NNR.
  • Lors d'une étape E35, des cartes de référence FREF sont obtenues par le module REF, parmi les images déjà décodées associées à la séquence. Le module REF constitue un ensemble de NFRMAX images de référence. Puis un nombre NFR d'images de référence est sélectionné dans cet ensemble. Selon un mode de réalisation, une seule image est sélectionnée. Selon un mode de réalisation, une image de référence est représentée par des cartes de caractéristiques dans le domaine latent. Par exemple, l'image de référence considérée pour l'image en cours est l'image précédente de la séquence, ou la première, ou la dernière, ou une image Intra, etc. L'image de référence peut ainsi être prédéterminée. Sa (leur) référence peut alternativement être codée dans le flux sous forme d'un indicateur.
  • Lors d’une étape E36, les valeurs extraites des cartes de caractéristiques sont traitées par le réseau de neurones de prédiction MLPP pour générer des valeurs de prédiction. Selon un mode de réalisation tel que représenté à la , cas (b), les images ou cartes de référence sélectionnées sont également présentées en entrée du réseau de neurones. Selon un mode de réalisation, un vecteur Zn est traité par un réseau de neurones de prédiction MLPP pour générer un vecteur de sortie contenant NCP valeurs pour l’échantillon Pn à décoder.
  • Selon un mode de réalisation, tel que représenté en (a), le vecteur de sortie est un vecteur de mouvement MVn.Selon un exemple, NCP est égal à 2 et le vecteur de sortie (mvx, mvy) à deux dimensions comporte les valeurs du vecteur de mouvement horizontalement et verticalement. Lorsque tous les échantillons du signal ont été traités, un champ dense de mouvement (c'est-à-dire un vecteur par pixel) est disponible. Par exemple ce champ est disponible sous forme de deux images, la première image comportant la coordonnée horizontale (x) du vecteur de mouvement, et la deuxième image comportant la coordonnée verticale (y) du vecteur de mouvement.
  • Selon ce mode de réalisation, lors d’une étape E37, l'image (ou les images) de référence sont compensées, c'est à dire que le champ de mouvement précédemment déterminé leur est appliqué par le module WARP pour produire une ou plusieurs images compensées ICO. Selon un mode de réalisation, la compensation peut être une transformation géométrique permettant de modifier la position des échantillons dans une image. Par exemple, les pixels de l'image de référence peuvent être déplacés selon le vecteur de mouvement (mvx, mvy) associé pour obtenir les échantillons prédits dans l'image ICO. Le résultat peut être interpolé de façon continue, échantillonné spatialement au taux d’échantillonnage de l’image à reconstruire. D'autres transformations plus complexes, opérées sur des ensembles de pixels, peuvent être utilisées (application d'un modèle polynomial, homographique, affine, etc.) en fonction du nombre de paramètres délivrés par le réseau de neurones de prédiction. On peut également compenser plusieurs images de référence pour obtenir une image courante. Dans ce cas le champ de mouvement MV comporte quatre valeurs, ou composantes, pour un pixel (2 pour chaque image). Les images compensées sont alors fusionnées (par exemple par moyennage ou combinaison linéaire, ou prédiction pondérée – en anglais, weighted prediction, etc.) de façon à produire au moins une image compensée ICO.
  • Selon un autre mode de réalisation, tel que représenté en (b), les images de référence sont également appliquées, ou présentées, à l'entrée du réseau MLPP. Les image de référence et les cartes de caractéristiques de prédiction peuvent être combinées avant d'entrer dans le réseau MLPP. Le vecteur de sortie est un échantillon d'image prédite, par exemple un pixel (Y,U,V). Lorsque tous les échantillons du signal ont été traités, une image de prédiction est disponible, par exemple sous la forme de trois composantes (YUV). Dans ce mode de réalisation, le module WARP n'est pas utilisé.
  • Lors d'une étape E38, une combinaison des images ICO compensées et des images de correction IC est effectuée par le module MIX. La combinaison peut être, sous sa forme la plus simple, une addition des valeurs de l'image de prédiction et de celles de l'image de correction. Selon un autre mode de réalisation, le module MIX utilise un réseau de neurones qui prend en entrée les image ICO et IC et produit, par exemple à l’aide d’une série de couches convolutives, l’image Iv.
  • La est un logigramme représentant un exemple de procédé de codage qui peut être mis en œuvre par le dispositif de codage de la  
  • On rappelle que lors du codage, l’ensemble du système est optimisé au cours d'une phase d'apprentissage qui précède la phase de codage effectif : les valeurs des cartes FPi et optionnellement FCi ainsi que les paramètres des réseaux MLPP et optionnellement MLPC sont appris (au sens de l’apprentissage-machine, par exemple par descente de gradient) de façon à optimiser une mesure de performance, par exemple une fonction de coût de type débit-distorsion notée D+ L.R, où D est l’erreur quadratique de l’image Iv reconstruite par rapport à l’image originale, R est la somme des débits de codage des cartes de caractéristiques et optionnellement des réseaux de neurones, et L un paramètre fixé par l’utilisateur pour le module RD-OPT. Selon un autre exemple, D est calculé à partir d’une fonction perceptive telle que le SSIM (pour Structural SIMilarity), ou MSSSIM (pour Multi-Scale Structural SIMilarity).
  • Lors d’une étape E20, une séquence d’entrée SV à coder, comportant au moins une image courante Iv comportant une pluralité de N échantillons Pn, est fournie en entrée du procédé.
  • Lors d’une étape E21, les cartes de caractéristiques de prédiction et les images ou cartes de correction, ainsi que les paramètres des réseaux de neurones, sont initialisés. Par la suite, ces données sont optimisées durant la phase de construction. Selon un mode de réalisation, les cartes de caractéristiques sont initialisées par des valeurs constantes prédéfinies. Selon un autre mode de réalisation, les cartes de caractéristiques sont initialisées par un ensemble de valeurs réelles aléatoires. Selon un mode de réalisation, les paramètres du réseau de neurones sont initialisés par des valeurs prédéfinies connues pour donner un résultat satisfaisant (par exemple, à la suite d’un entraînement sur un corpus de séquences d’images). Selon un autre mode de réalisation, les paramètres du réseau de neurones sont initialisés par un ensemble de valeurs aléatoires. Les cartes de caractéristiques de prédiction, images ou cartes de correction et paramètres des réseaux de neurones sont par la suite mis à jour, ou raffinés, lors d’une étape E22, par le module de mise à jour MAJ du codeur au cours de son apprentissage.
  • Lors d'une étape E23, une simulation de codage est effectuée pour tous les paramètres de codage : les cartes de caractéristiques de prédiction sont encodées par le module FPC, les images ou cartes de caractéristiques de correction par le module FDC, le ou les réseaux de neurones par le module NNC. La simulation peut être identique au codage effectif mais elle peut aussi être différente (par exemple, simplifiée).
  • Lors d'une étape E24, une simulation de décodage est effectuée. Pour mesurer la distorsion D, il est en effet nécessaire de simuler le codage puis le décodage d’une partie au moins de la séquence d’images, pour obtenir au moins un pixel P'nd'au moins une image I'v résultant d’une simulation de codage puis de décodage des échantillons d’indice n, puis de mesurer l'écart entre ces pixels codés puis décodés et les pixels de la séquence non codée correspondants. A cet effet, les étapes E31 à E38 du procédé de décodage sont effectuées afin de reconstituer l'image ou la sous-séquence courante I'v décodée.
  • Lors d’une étape E25, la mesure de performance est évaluée.
  • À cet effet, les débits de simulation de codage associés aux cartes de caractéristiques (simulation du flux A1 par codage des cartes de caractéristique et du flux B1 par codage de l'image de correction ou de ses cartes de caractéristiques). Selon un mode de réalisation, les débits de simulation de codage associés aux paramètres du réseau de neurones (simulation du flux A2 par codage des paramètres WP et optionnellement du flux B2 par codage des paramètres WC) sont également mesurés. Selon un mode de réalisation, on ne simule pas le codage des paramètres des réseaux de neurones, car leur influence est moins importante que celle des cartes de caractéristiques.
  • Tant que la fonction de coût n’a pas atteint son minimum, la mesure de performance n’est pas satisfaisante, et le procédé est réitéré à partir de l’étape E22. Alternativement, le procédé peut être interrompu au bout d’un temps prédéfini ou d’un nombre d’itérations prédéfini, de façon à en contrôler la complexité ou la durée.
  • Lors d’une étape E26, si la fonction de coût a atteint son minimum ou le temps imparti à l’encodage est jugé suffisant, l’entraînement s’arrête. Si une version codée correspondant à la dernière simulation des paramètres du réseau de neurones et des cartes de caractéristiques est disponible, les flux A1, A2, B1 et B2 peuvent en être constitués. Selon un autre mode de réalisation, le codage effectif les paramètres mis à jour du ou des réseau(x) de neurones et des valeurs des cartes de caractéristique est effectué à cette étape pour produire les paramètres encodés.
  • Les flux A1, A2, B1 et B2 peuvent être concaténés pour produire un flux final. Selon un mode de réalisation, le flux A2/B2 des paramètres codés du réseau de neurones est stocké ou transmis avant le flux A1/B1, afin de pouvoir être décodé avant.
  • La représente de manière illustrée un procédé de décodage d'image de correction utilisé dans un mode de réalisation de l’invention.
  • Dans ce mode de réalisation, les images de correction sont synthétisées (à l'encodage et au décodage) par un réseau de neurones MLPC appliqué sur des cartes de caractéristiques FC de correction traitées par un module XTRC.
  • Lors du décodage, les cartes FC sont obtenues comme décrit auparavant par un décodage classique (par exemple un décodage entropique) à partir du flux B1, par le module FCD.
  • Dans ce mode de réalisation, les cartes décodées courantes FCi sont au nombre de 4. Dans un mode préféré, elles sont au nombre de 7. Dans ce mode de réalisation, la première carte FC1 a la même résolution que l’image Iv à décoder, et comporte donc WxH variables, où W représente la largeur de l’image en pixels, et H sa hauteur. La seconde carte FC2 est de résolution moitié (dans chaque dimension) de la carte FC1. Chaque carte supplémentaire est de résolution moitié de la carte précédente. Cette structure permet de réduire le nombre de variables des cartes de caractéristiques ce qui facilite le décodage tout en minimisant le coût de codage.
  • Les cartes FCi sont alors traitées par le module XTR, qui peut comprendre l'ensemble des étapes suivantes :
  • – une étape notée DQi (DQ1... DQ4) de déquantification de chaque carte, la déquantification consistant par exemple en la multiplication par un pas de quantification prédéfini ou transmis ;
  • – une étape notée SEi (SE1... SE4) de suréchantillonnage susceptible de mettre la carte FCi à la même résolution que le signal à coder ; selon l'exemple représenté, la carte FC2 est suréchantillonnée d’un facteur 2 par le module SE2 dans chaque dimension, selon tout procédé de suréchantillonnage à la portée de l'homme du métier. La carte FC3 est suréchantillonnée d’un facteur 4 dans chaque dimension, etc.
  • – une étape notée Ti (T1... T4) de traitement d’amélioration, cette étape pouvant comporter un filtrage convolutif, une fonction linéaire, ou encore un réseau de neurones dont les paramètres W1 ont été décodés de façon classique (décodage classique ou NNR) à partir du flux B2.
  • Les étapes ainsi décrites peuvent être « mélangées », au sens où le suréchantillonnage peut être basé sur un réseau de neurones. Elles peuvent aussi être conjointes, c'est-à-dire s'appliquer à un ensemble de cartes et non à une seule carte comme représenté sur la .
  • Selon ce mode de réalisation, ces étapes produisent les cartes FCSi (FCS1... FCS4), qui sont à la même résolution que le signal à coder, et comportent donc WxH valeurs, où W représente la largeur de l’image en pixels, et H sa hauteur. Les cartes transformées sont traitées par un réseau de neurones MLPC, typiquement un Multi-Layer Perceptron, qui associe à un vecteur Zn d’entrée constitué des valeurs des couches FCSi aux coordonnées (x,y) d'un pixel en cours de traitement un vecteur de sortie (R,G,B) aux coordonnées (x,y) dans une série de couches DR,DG,DB. Ces couches sont par exemple du même nombre que le nombre de composantes de l'image de sortie (sur la figure, 3). Dans ce mode de réalisation, le vecteur Zn est un 4-uplet (z1, z2,z3, z4) constitué des 4 valeurs des cartes FCSi situées aux coordonnées (x, y) du pixel courant Pn. Le triplet (R, G, B) est inséré dans chaque image décodée Iv de la sous-séquence v aux coordonnées (x, y) dans les composantes couleur (DR,DG,DB).
  • Les paramètres WC du réseau MLPC ont été décodés à partir du flux B2 par décodage classique ou NNR.
  • Enfin, un dernier réseau de post-traitement PPC, dont les paramètres W2 ont également été décodés du flux, peut traiter les couches DR, DG, DB pour produire l’image décodée IC. Le réseau PPC peut comprendre un réseau convolutif, un MLP ou tout autre réseau de neurones ou traitement conventionnel.
  • Selon une variante non représentée, des cartes de caractéristiques de correction supplémentaires sont introduites. Dans une telle variante, le vecteur Zn est de dimension supérieure à 4. Une telle carte supplémentaire comporte typiquement des données qui peuvent assister le réseau MLPC dans la tâche de reconstruction des images. Ainsi, les cartes ajoutées peuvent être, de manière non limitative, une ou plusieurs parmi :
  • – une carte comportant en chaque point l’abscisse et/ou l'ordonnée de ce point ;
  • – une carte comportant en chaque point un codage positionnel ;
  • – une carte représentant une image distincte des images en cours de traitement, susceptible d’apporter des informations sur les images à coder, par exemple une image ou séquence d’images précédemment traitée ;
  • – une carte contenant une donnée représentative de la différence temporelle entre les images de la vidéo en cours de codage. Par exemple, si la première et la dernière image de la vidéo sont distantes de 8 images, tous les échantillons de la carte contiennent la valeur 8 ;
  • – une carte représentant une carte de caractéristiques d’une image distincte des images en cours de traitement, susceptible d’apporter des informations sur les images à coder, par exemple une carte précédemment traitée ;
  • – une carte comportant la valeur d’un échantillon déjà décodé de la même carte, par exemple l’échantillon précédent dans l’ordre de décodage.
  • La représente de manière illustrée un procédé de décodage de champ de mouvement utilisé dans un mode de réalisation de l’invention conforme à la , cas (a).
  • Dans ce mode de réalisation, le champ de mouvement est synthétisé (à l'encodage et au décodage) par un réseau de neurones de prédiction MLPP appliqué sur des cartes de caractéristiques FP de prédiction traitées par un module XTRM.
  • Lors du décodage, les cartes FP sont obtenues comme décrit auparavant par un décodage classique (par exemple un décodage entropique) à partir du flux A1, par le module FPD.
  • Dans ce mode de réalisation, les cartes décodées courantes FPi sont au nombre de 4. Dans un mode préféré, elles sont au nombre de 7. Dans ce mode de réalisation, la première carte FP1 a la même résolution que l’image Iv à décoder, et comporte donc WxH variables, où W représente la largeur de l’image en pixels, et H sa hauteur. La seconde carte FP2 est de résolution moitié (dans chaque dimension) de la carte FP1. Chaque carte supplémentaire est de résolution moitié de la carte précédente. Cette structure permet de réduire le nombre de variables des cartes de caractéristiques ce qui facilite le décodage tout en minimisant le coût de codage.
  • Les cartes FPi sont alors traitées par le module XTRM, qui peut comprendre l'ensemble des étapes suivantes :
  • – une étape notée DQi (DQ1... DQ4) de déquantification de chaque carte, la déquantification consistant par exemple en la multiplication par un pas de quantification prédéfini ou transmis ;
  • – une étape notée SEi (SE1... SE4) de suréchantillonnage susceptible de mettre la carte FPi à la même résolution que le signal à coder ; selon l'exemple représenté, la carte FP2 est suréchantillonnée d’un facteur 2 par le module SE2 dans chaque dimension, selon tout procédé de suréchantillonnage à la portée de l'homme du métier. La carte FP3 est suréchantillonnée d’un facteur 4 dans chaque dimension, etc.
  • – une étape notée Ti (T1... T4) de traitement d’amélioration, cette étape pouvant comporter un filtrage convolutif, une fonction linéaire, ou encore un réseau de neurones dont les paramètres W3 ont été décodés de façon classique (décodage classique ou NNR) à partir du flux A2.
  • Les étapes ainsi décrites peuvent être imbriquées, au sens où le suréchantillonnage peut être basé sur un réseau de neurones. Elles peuvent aussi être conjointes, c'est-à-dire s'appliquer à un ensemble de cartes et non à une seule carte comme représenté sur la .
  • Selon un mode de réalisation, ces étapes produisent les cartes FPSi (FPS1... FPS4), qui sont à la même résolution que le signal à coder, et comportent donc WxH valeurs, où W représente la largeur de l’image en pixels, et H sa hauteur. Les cartes transformées sont traitées par un réseau de neurones de prédiction MLPP, typiquement un Multi-Layer Perceptron, qui associe à un vecteur Zn d’entrée constitué des valeurs des couches FPSi aux coordonnées (x,y) d'un pixel en cours de traitement un vecteur de sortie (mvx, mvy) aux coordonnées (x,y) dans une série de couches de mouvement. Ces couches sont par exemple du même nombre que le nombre de composantes du vecteur de mouvement de sortie (sur la figure, 7 : MVX comporte la composante horizontale des vecteurs de mouvement, et MVY la composante verticale). Dans ce mode de réalisation, le vecteur Zn est un 4-uplet (z1, z2,z3, z4) constitué des 4 valeurs des cartes FPSi situées aux coordonnées (x, y) du pixel courant Pn. Le couple (mvx, mvy) est inséré dans chaque couche de mouvement MVX, MVY de l'image ou la sous-séquence courante v aux coordonnées (x, y). La concaténation de tous ces vecteurs constitue un champ de mouvement dense.
  • Selon d'autres modes de réalisation :
    - le vecteur de mouvement en sortie est représentatif d'un groupe de pixels (par exemple un bloc) ;
    - des paramètres différents sont obtenus en sortie : paramètres de mouvement affine, etc.
    - la sous-séquence courante correspond à plusieurs images et le mouvement est synthétisé pour la sous-séquence ;
    - etc.
  • Les paramètres WP réseau de neurones de prédiction MLPP ont été décodés à partir du flux A2 par décodage classique ou NNR. Le réseau de neurones de prédiction utilisé au codage, et le réseau de neurones de prédiction MLPP utilisé au décodage, sont définis par une structure identique, comprenant par exemple une pluralité de couches de neurones artificiels, et par un ensemble de poids et fonctions d’activation associés respectivement aux neurones artificiels du réseau concerné. Enfin, un dernier réseau de post-traitement PPM, dont les paramètres W4 ont également été décodés du flux, peut traiter les couches MVX, MVY pour produire l'information de mouvement finale MV pour l'image en cours. Le réseau PPM peut être un réseau convolutif, un MLP ou tout autre réseau de neurones ou traitement conventionnel. Le réseau PPM peut également intégrer le module WARP de compensation, auquel cas il prend en entrée non seulement l'information de mouvement mais encore les images ou cartes de référence.
  • Selon une variante non représentée, des cartes de caractéristiques de prédiction supplémentaires sont introduites. Dans une telle variante, le vecteur Zn est de dimension supérieure à 4.
  • Une telle carte supplémentaire comporte typiquement des données qui peuvent assister le réseau MLPP dans la tâche de reconstruction du mouvement. Ainsi, les cartes ajoutées peuvent être, de manière non limitative, une ou plusieurs parmi :
  • – une carte comportant en chaque point l’abscisse et/ou l'ordonnée de ce point ;
  • – une carte comportant en chaque point un codage positionnel ;
  • – une carte représentant une image distincte des images en cours de traitement, susceptible d’apporter des informations sur le mouvement des images à coder, par exemple une image, une séquence d’images ou des couches de mouvement précédemment traitées ;
  • – une carte contenant une donnée représentative de la différence temporelle entre les images de la vidéo en cours de codage. Par exemple, si la première et la dernière image de la vidéo sont distantes de 8 images, tous les échantillons de la carte contiennent la valeur 8 ;
  • – une carte représentant une carte de caractéristiques d’une image distincte des images en cours de traitement, susceptible d’apporter des informations sur les images à coder, par exemple une carte de mouvement précédemment traitée ;
  • – une carte comportant la valeur d’un vecteur de mouvement déjà décodé de la même carte, par exemple celui de l’échantillon précédent dans l’ordre de décodage.
  • – une carte comportant la précision de quantification des valeurs caractéristiques.
  • etc.

Claims (15)

  1. Procédé de codage d’une séquence d’images (SV) comportant les étapes suivantes pour au moins une image courante (Iv) de la séquence :
    - initialisation (E21) d'au moins une images de correction (IC) ;
    - initialisation (E21) d’un ensemble de paramètres (WP) représentatifs d’un réseau de neurones (MLPP) de prédiction ;
    - initialisation (E21) d’un ensemble de cartes de caractéristiques dites de prédiction (FP) ;
    - obtention (E24) d’un ensemble d'images de référence (FREF), comprenant au moins une image de référence codée puis décodée ;
    - traitement (E24) desdites cartes de caractéristiques de prédiction (FP) et desdites images de référence par un module de synthèse comprenant ledit au moins un réseau de neurones de prédiction à l'entrée duquel sont appliquées lesdites cartes de caractéristiques de prédiction, pour produire au moins une image de prédiction (ICO);
    - reconstruction (E24) de l’image courante (Iv) à partir de ladite au moins une image de prédiction (ICO) et de ladite au moins une image de correction (IC) ;
    - mise à jour (E22, E25) d'au moins une valeur de ladite au moins une carte de caractéristiques et/ou d’au moins un paramètre dudit réseau, en fonction d’une mesure de performance de codage.
    - codage (E26) d'un flux binaire comprenant :
    - codage de ladite au moins une image de correction (IC);
    - codage de l'ensemble de paramètres (WPc) représentatifs du réseau de neurones (MLPP) de prédiction ;
    - codage de l'ensemble de cartes de caractéristiques de prédiction (FPc);
  2. Procédé de décodage d’une séquence d’images (SV) à partir d’un flux binaire, comportant les étapes suivantes pour au moins une image courante (Iv) de la séquence :
    - décodage (E31) d’un ensemble d'images dites de correction (IC) comprenant au moins une image de correction représentative de données de correction de ladite au moins une image courante (Iv) ;
    - décodage (E32) d’un ensemble de cartes de caractéristiques dites de prédiction (FPc) comprenant au moins une carte de caractéristiques représentative d'un mouvement de ladite au moins une image courante ;
    - décodage (E34) d’un ensemble de paramètres (WPc) représentatifs d’un réseau de neurones (MLPP) de prédiction;
    - obtention (E35) d’un ensemble d'images de référence (FREF), comprenant au moins une image de référence décodée ;
    - traitement (E36) desdites cartes de caractéristiques de prédiction (FP) et desdites images de référence (FREF) par un module de synthèse (MPS) comprenant ledit au moins un réseau de neurones de prédiction à l'entrée duquel sont appliquées lesdites cartes de caractéristiques de prédiction, pour produire au moins une image de prédiction (ICO) ;
    - reconstruction (E38) de l’image courante (Iv) à partir de ladite au moins une image de prédiction (ICO) et de ladite au moins une image de correction (IC).
  3. Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que l'étape de traitement comporte les sous-étapes suivantes :
    - application (E33, E34) desdites cartes de caractéristiques de prédiction (FP) à l'entrée dudit au moins un réseau de neurones de prédiction pour produire une information de mouvement (MV) ;
    - compensation (E37) de ladite au moins une image de référence (FREF) à l’aide de ladite information de mouvement pour produire ladite au moins une image de prédiction (ICO).
  4. Procédé de codage ou de décodage selon la revendication précédente, caractérisé en ce que l'étape d'application desdites cartes de caractéristiques de prédiction à l'entrée dudit au moins un réseau de prédiction comporte, pour au moins un échantillon, dit échantillon courant (Pn), de ladite au moins une image courante (Iv), associé à une position (xn, yn) dans l'image :
    - construction (E33) d’un vecteur caractéristique (Zn) à partir de ladite au moins une carte de caractéristiques de prédiction, en fonction de ladite position (xn, yn) dudit au moins un échantillon courant, et :
    - application (E34) dudit vecteur (Zn) à l'entrée dudit réseau de neurones de prédiction (MLPP) pour fournir un vecteur représentatif de la prédiction dudit au moins un échantillon courant (Pn).
  5. Procédé de codage ou de décodage selon l'une des revendications 1 ou 2, caractérisé en ce que l'étape de traitement comporte une étape d'application (E33, E34, E35) desdites cartes de caractéristiques de prédiction (FP) et de ladite au moins une image de référence (FREF) à l'entrée dudit au moins un réseau de neurones de prédiction pour produire ladite au moins une image de prédiction (ICO).
  6. Procédé de codage ou de décodage selon la revendication précédente, caractérisé en ce que l'étape d'application desdites cartes de caractéristiques de prédiction et de ladite au moins une image de référence à l'entrée dudit au moins un réseau de prédiction comporte, pour au moins un échantillon, dit échantillon courant (Pn), de ladite au moins une image courante (Iv), associé à une position (xn, yn) dans l'image :
    - construction (E33) d’un vecteur caractéristique (Zn) à partir de ladite au moins une carte de caractéristiques de prédiction et de ladite au moins une image de référence en fonction de ladite position (xn, yn) dudit au moins un échantillon courant, et :
    - application (E34) dudit vecteur (Zn) à l'entrée dudit réseau de neurones de prédiction (MLPP) pour fournir un vecteur représentatif de la prédiction dudit au moins un échantillon courant (Pn).
  7. Procédé de décodage selon l'une des revendications 2 à 6, caractérisé en ce que l'étape de décodage dudit ensemble d'images de correction comporte en outre les sous-étapes suivantes :
    - décodage (E31) d’un ensemble de paramètres (WCc) représentatifs d’un réseau de neurones (MLPC) de correction ;
    - décodage (E31) d’un ensemble de cartes de caractéristiques dites de correction (FCc) ;
    - application (E31) desdites cartes de caractéristiques de correction décodées (FC) à l'entrée dudit au moins un réseau de neurones de correction pour produire au moins une image de correction (IC).
  8. Procédé de décodage selon la revendication précédente, caractérisé en ce que le réseau de neurones de correction (MLPC) comporte un MLP et/ou un réseau convolutif.
  9. Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que le réseau de neurones de prédiction (MLPP) comporte un MLP et/ou un réseau convolutif.
  10. Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que l'étape de reconstruction (E38) comporte une addition ou une soustraction appliquée sur les images de correction et de prédiction.
  11. Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que l'étape de reconstruction (E38) utilise un réseau de neurones convolutif appliqué sur les images de correction et de prédiction .
  12. Procédé de codage ou de décodage selon la revendication 3 ou 4, caractérisé en ce que ladite information de mouvement est un champ dense de vecteurs de mouvement bidimensionnels.
  13. Dispositif de décodage d'une séquence d’images (SV) à partir d'un flux binaire, ledit dispositif étant configuré pour mettre en œuvre, pour au moins une image courante (Iv) de la séquence :
    - décodage (FCD) d’un ensemble d'images dites de correction (IC) comprenant au moins une image de correction représentatives de données de correction de ladite au moins une image courante (Iv) ;
    - décodage (FPD) d’un ensemble de cartes de caractéristiques dites de prédiction (FPc) comprenant au moins une carte de caractéristiques représentative d'un mouvement de ladite au moins une image courante ;
    - décodage (NND) d’un ensemble de paramètres (WPc) représentatifs d’un réseau de neurones (MLPP) de prédiction ;
    - obtention (REF) d’un ensemble d'images de référence (FREF), comprenant au moins une image de référence décodée ;
    - traitement desdites cartes de caractéristiques de prédiction et desdites images de référence par un module de synthèse comprenant ledit au moins un réseau de neurones de prédiction à l'entrée duquel sont appliquées lesdites cartes de caractéristiques de prédiction, pour produire au moins une image de prédiction ;
    - reconstruction (MIX) de l’image courante (Iv) à partir de ladite au moins une image de prédiction (ICO) et de ladite au moins une image de correction (IC).
  14. Dispositif de codage d’une séquence d’images (SV), ledit dispositif étant configuré pour mettre en œuvre pour au moins une image courante (Iv) de la séquence: - initialisation d’un ensemble d'images dites de correction (IC) ;
    - initialisation d’un ensemble de paramètres (WPc) représentatifs d’un réseau de neurones (MLPP) de prédiction ;
    - initialisation d’un ensemble de cartes de caractéristiques dites de prédiction (FPc); - obtention d’un ensemble d'images de référence (FREF), comprenant au moins une image de référence codée puis décodée ;
    - traitement desdites cartes de caractéristiques de prédiction et desdites images de référence par un module de synthèse comprenant ledit au moins un réseau de neurones de prédiction à l'entrée duquel sont appliquées lesdites cartes de caractéristiques de prédiction pour produire au moins une image de prédiction ;
    - reconstruction de l’image courante (Iv) à partir de ladite au moins une image de prédiction (ICO) et de ladite au moins une image de correction (IC) ;
    - mise à jour d'au moins une valeur de ladite au moins une carte de caractéristiques et/ou d’au moins un paramètre dudit réseau, en fonction d’une mesure de performance de codage.
    - codage d'un flux binaire comprenant :
    - codage (FCC) de ladite au moins une image de correction (IC) ;
    - codage (NNC) de l'ensemble de paramètres (WPc) représentatifs du réseau de neurones (MLPP) de prédiction ;
    - codage (FPC) de l'ensemble de cartes de caractéristiques de prédiction (FPc).
  15. Programme d’ordinateur comportant des instructions pour l’exécution des étapes d'un procédé de codage ou de décodage selon la revendication 1 ou 2 lorsque ledit programme est exécuté par un ordinateur.
EP24769364.1A 2023-09-14 2024-09-12 Procédé et dispositif de codage et décodage de séquences d'images Pending EP4778271A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2309708A FR3153178A1 (fr) 2023-09-14 2023-09-14 Procédé et dispositif de codage et décodage de séquences d’images.
PCT/EP2024/075452 WO2025056651A1 (fr) 2023-09-14 2024-09-12 Procédé et dispositif de codage et décodage de séquences d'images

Publications (1)

Publication Number Publication Date
EP4778271A1 true EP4778271A1 (fr) 2026-07-22

Family

ID=88778890

Family Applications (1)

Application Number Title Priority Date Filing Date
EP24769364.1A Pending EP4778271A1 (fr) 2023-09-14 2024-09-12 Procédé et dispositif de codage et décodage de séquences d'images

Country Status (5)

Country Link
EP (1) EP4778271A1 (fr)
KR (1) KR20260066745A (fr)
CN (1) CN122181134A (fr)
FR (1) FR3153178A1 (fr)
WO (1) WO2025056651A1 (fr)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3298783B1 (fr) * 2016-04-15 2020-11-18 Magic Pony Technology Limited Compensation de mouvement à l'aide d'une interpolation d'image temporelle
US12106528B2 (en) * 2021-03-01 2024-10-01 Waymo Llc Generating scene flow labels for point clouds using object labels
EP4432233A4 (fr) 2021-11-09 2025-11-26 Samsung Electronics Co Ltd Dispositif de codage d'image et dispositif de décodage d'image utilisant une intelligence artificielle (ai) et procédé permettant de coder et de décoder une image au moyen de ce dernier

Also Published As

Publication number Publication date
WO2025056651A1 (fr) 2025-03-20
KR20260066745A (ko) 2026-05-12
CN122181134A (zh) 2026-06-09
FR3153178A1 (fr) 2025-03-21

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20260326

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR