[go: up one dir, main page]

FR3164086A1 - Method and device for encoding and decoding images - Google Patents

Method and device for encoding and decoding images

Info

Publication number
FR3164086A1
FR3164086A1 FR2406994A FR2406994A FR3164086A1 FR 3164086 A1 FR3164086 A1 FR 3164086A1 FR 2406994 A FR2406994 A FR 2406994A FR 2406994 A FR2406994 A FR 2406994A FR 3164086 A1 FR3164086 A1 FR 3164086A1
Authority
FR
France
Prior art keywords
maps
decoding
point
latent
decoded
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
FR2406994A
Other languages
French (fr)
Inventor
Felix Henry
Pierrick Philippe
Theo LADUNE
Gordon Clare
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Priority to FR2406994A priority Critical patent/FR3164086A1/en
Priority to PCT/EP2025/068305 priority patent/WO2026003294A1/en
Publication of FR3164086A1 publication Critical patent/FR3164086A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L’invention concerne un procédé de décodage d’une zone, dite zone à décoder, d’un signal comprenant au moins deux zones, ladite zone à décoder comprenant une pluralité d’échantillons à décoder, ledit procédé de décodage comportant les étapes suivantes : le décodage (F22) d’un groupe de cartes de valeurs latentes représentatives de ladite zone à décoder dudit signal, l’obtention (F20) d’un masque de ladite zone à décoder dans ledit signal,le décodage (F26) d’un ensemble de paramètres représentatifs d’un réseau de neurones, dit réseau de neurones de synthèse comprenant au moins une couche neuronale de synthèse, le traitement (F27) dudit groupe de cartes latentes décodées par ledit réseau de neurone de synthèse pour produire en sortie dudit réseau de neurone de synthèse au moins ladite zone à décoder, ledit traitement comportant l’application de ladite au moins une couche neuronale de synthèse pour transformer au moins un groupe de cartes latentes d’entrée, dite cartes d’entrée, en au moins un groupe de cartes latentes de sortie, dite cartes de sortie, ladite application comprenant l’obtention d’une région caractéristique de ladite zone à décoder dans lesdites cartes d’entrée à partir dudit masque, ladite région caractéristique comprenant les points associés à ladite zone à décoder et pour au moins un point de ladite zone à décoder, dit point à décoder, le traitement  d’un point associé audit point à décoder dans au moins une des cartes latentes d’entrée par ladite couche neuronale en fonction de sa proximité d'une frontière de ladite région caractéristique. Figure pour l’abrégé : Fig. 7 The invention relates to a method for decoding a region, called the decoding region, of a signal comprising at least two regions, said decoding region comprising a plurality of samples to be decoded, said decoding method comprising the following steps: the decoding (F22) of a group of latent value maps representative of said decoding region of said signal, the obtaining (F20) of a mask of said decoding region in said signal, the decoding (F26) of a set of parameters representative of a neural network, called the synthetic neural network comprising at least one synthetic neural layer, the processing (F27) of said group of latent maps decoded by said synthetic neural network to produce at least said decoding region as output of said synthetic neural network, said processing comprising the application of said at least one synthetic neural layer to transform at least one group of input latent maps, called input maps, into at least one group of latent maps of output, referred to as output maps, said application comprising obtaining a characteristic region of said area to be decoded in said input maps from said mask, said characteristic region comprising the points associated with said area to be decoded and, for at least one point of said area to be decoded, referred to as a decode point, the processing of a point associated with said decode point in at least one of the latent input maps by said neural layer as a function of its proximity to a boundary of said characteristic region. Figure for the abbreviation: Fig. 7

Description

Procédé et dispositif de codage et décodage d’imagesMethod and device for encoding and decoding images

L’invention se rapporte au domaine général du codage de signaux mono ou multidimensionnels. Elle concerne plus particulièrement la compression des images ou des vidéos numériques.The invention relates to the general field of coding one-dimensional or multidimensional signals. It relates more particularly to the compression of digital images or videos.

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.). Dans ces approches, l’encodage d’une image est généralement effectué par une prédiction des pixels à 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 ».Digital videos are generally encoded using source code to compress them and reduce the resources required for transmission and/or storage. Numerous encoding standards exist, such as those of the ITU/MPEG organizations (H.264/AVC, H.265/HEVC, H.266/VVC, etc.) and their extensions (MVC, SVC, 3D-HEVC, etc.). In these approaches, image encoding is typically performed by predicting pixels using previously encoded and decoded pixels present in the image being encoded—in which case it is called "intra-prediction"—or previously encoded images—in which case it is called "inter-prediction."

En plus de ces approches classiques, les approches basées sur l’intelligence artificielle, et notamment neuronales, tendent à se développer.In addition to these traditional approaches, approaches based on artificial intelligence, and in particular neural networks, are tending to develop.

Certaines approches neuronales réalisent, à partir du signal d’entrée, par exemple une image, l’entraînement d’un réseau de neurones dit de synthèse sur des vecteurs caractéristiques associés à une position d’un échantillon du signal d’entrée à coder. Ces vecteurs caractéristiques sont construits à partir de cartes de caractéristiques qui peuvent être à la résolution du signal d’entrée, ou à une résolution inférieure. Au cours de l’entraînement, ou construction, les paramètres du réseau de neurones et les valeurs des cartes de caractéristiques sont mis à jour en fonction d’une mesure de performance, par exemple de type débit-distorsion. Lorsque l’entraînement est terminé, c’est-à-dire que la mesure de performance obtenue est satisfaisante, le codage effectif des paramètres du réseau de neurones de synthèse et des valeurs des cartes de caractéristiques peut être effectué et mémorisé ou transmis à destination du décodeur. Le décodage du signal codé s’effectue alors en appliquent le réseau de neurones de synthèse sur les cartes de caractéristiques.Some neural network approaches use an input signal, such as an image, to train a synthetic neural network on characteristic vectors associated with a specific position in a sample of the input signal to be encoded. These characteristic vectors are constructed from feature maps, which can be at the same resolution as the input signal or at a lower resolution. During training, or construction, the neural network parameters and the feature map values are updated based on a performance metric, such as data rate-distortion. Once training is complete, meaning the performance measurement is satisfactory, the actual encoding of the synthetic neural network parameters and feature map values can be performed and stored or transmitted to the decoder. The encoded signal is then decoded by applying the synthetic neural network to the feature maps.

Un inconvénient des approches classiques et des approches neuronales précédemment décrites est qu'elles ne permettent pas de créer des zones indépendamment décodables dans le signal codé ce qui limite non seulement les capacités d’interaction avec le contenu sémantique du signal codé mais également la possibilité de limiter la mémoire nécessaire au niveau du décodeur ou de paralléliser le décodage de ce signal codé.One drawback of classical and previously described neural approaches is that they do not allow the creation of independently decodable areas in the coded signal, which limits not only the ability to interact with the semantic content of the coded signal but also the possibility of limiting the memory required at the decoder level or parallelizing the decoding of this coded signal.

Il existe donc un besoin pour une solution permettant d’améliorer les approches classiques et neuronales précédemment décrites.Therefore, there is a need for a solution that improves upon the classical and neural approaches described above.

L’invention vise un procédé de codage d’une zone d’un signal, dite zone à coder, ladite zone à coder comprenant une pluralité d’échantillons à coder, ledit procédé de codage comportant les étapes suivantes :

  • l’obtention d’un premier groupe d’au moins une carte de valeurs latentes représentatif dudit signal,
  • l’obtention d’un masque dans ledit signal de ladite zone à coder,
  • pour au moins un échantillon de ladite zone à coder, dit échantillon courant, associé à une position dans ledit signal à coder :
    • la construction d’un vecteur caractéristique à partir desdites cartes de valeurs latentes dudit premier groupe, en fonction de ladite position dudit échantillon courant,
    • le traitement dudit vecteur caractéristique par un réseau de neurones artificiels, dit réseau de neurones de synthèse, ledit réseau de neurones de synthèse étant défini par un ensemble de paramètres et comprenant au moins une couche neuronale de synthèse pour obtenir, en sortie dudit réseau de neurone de synthèse, un vecteur représentatif d’une valeur décodée de l’échantillon courant,
    • la mise à jour d'au moins une valeur d’une desdites cartes de valeurs latentes dudit premier groupe et/ou d’au moins un paramètre dudit réseau de neurones de synthèse, en fonction d’une mesure de performance de codage,
  • l’obtention d’un deuxième groupe de cartes de valeurs latentes représentatives d’au moins ladite zone à coder à partir dudit masque,
  • le codage du deuxième groupe de cartes de valeurs latentes,
  • le codage dudit masque, et
  • le codage dudit ensemble de paramètres dudit réseau de neurones de synthèse.
ledit traitement comportant l’application de ladite au moins une couche neuronale de synthèse pour transformer au moins un groupe de cartes latentes d’entrée, dite cartes d’entrée, en au moins un groupe de cartes latentes de sortie, dite cartes de sortie, ladite application comprenant :
  • l’obtention d’une région caractéristique de ladite zone à décoder dans lesdites cartes d’entrée à partir dudit masque, ladite région caractéristique comprenant les points associés audit masque,
  • pour au moins un point de ladite zone à décoder, dit point à décoder :
    • l’obtention d’un point associé audit point à décoder dans au moins une des cartes latentes d’entrée,
    • l’évaluation d'un critère de proximité dudit point associé par rapport à une frontière de ladite région caractéristique,
    • la construction d’un vecteur d’entrée de ladite couche neuronale de synthèse à partir d’un voisinage dudit point associé et de ladite évaluation dudit critère de proximité, et
    • le traitement dudit vecteur d’entrée par ladite couche neuronale de synthèse pour obtenir un point d’au moins une des cartes de sortie,
The invention relates to a method for encoding a region of a signal, called the coding region, said coding region comprising a plurality of samples to be encoded, said coding method comprising the following steps:
  • obtaining a first group of at least one latent value map representative of said signal,
  • obtaining a mask in said signal from said zone to be coded,
  • for at least one sample of said area to be coded, called the current sample, associated with a position in said signal to be coded:
    • the construction of a characteristic vector from said latent value maps of said first group, as a function of said position of said current sample,
    • the processing of said characteristic vector by an artificial neural network, called a synthetic neural network, said synthetic neural network being defined by a set of parameters and comprising at least one synthetic neural layer to obtain, at the output of said synthetic neural network, a vector representing a decoded value of the current sample,
    • the updating of at least one value of one of said latent value maps of said first group and/or of at least one parameter of said synthetic neural network, as a function of a coding performance measure,
  • obtaining a second set of latent value maps representative of at least the said area to be encoded from said mask,
  • the encoding of the second group of latent value maps,
  • the encoding of said mask, and
  • the coding of said set of parameters of said synthetic neural network.
said processing comprising the application of said at least one neural synthesis layer to transform at least one group of input latent maps, referred to as input maps, into at least one group of output latent maps, referred to as output maps, said application comprising:
  • obtaining a characteristic region of said area to be decoded in said entry maps from said mask, said characteristic region comprising the points associated with said mask,
  • for at least one point in said area to be decoded, called point to be decoded:
    • obtaining a point associated with said point to be decoded in at least one of the latent input maps,
    • the evaluation of a proximity criterion of said associated point in relation to a boundary of said characteristic region,
    • the construction of an input vector for said neural synthesis layer from a neighborhood of said associated point and said evaluation of said proximity criterion, and
    • the processing of said input vector by said neural synthesis layer to obtain a point on at least one of the output maps,

L’invention vise aussi un procédé de décodage d’une zone, dite zone à décoder, d’un signal comprenant au moins deux zones, ladite zone à décoder comprenant une pluralité d’échantillons à décoder, ledit procédé de décodage comportant les étapes suivantes :

  • le décodage d’un groupe de cartes de valeurs latentes représentatives de ladite zone à décoder dudit signal,
  • l’obtention d’un masque de ladite zone à décoder dans ledit signal,
  • le décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones, dit réseau de neurones de synthèse comprenant au moins une couche neuronale de synthèse,
  • le traitement dudit groupe de cartes latentes décodées par ledit réseau de neurone de synthèse pour produire en sortie dudit réseau de neurone de synthèse au moins ladite zone à décoder, ledit traitement comportant l’application de ladite au moins une couche neuronale de synthèse pour transformer au moins un groupe de cartes latentes d’entrée, dite cartes d’entrée, en au moins un groupe de cartes latentes de sortie, dite cartes de sortie, ladite application comprenant l’obtention d’une région caractéristique de ladite zone à décoder dans lesdites cartes d’entrée à partir dudit masque, ladite région caractéristique comprenant les points associés à ladite zone à décoder et pour au moins un point de ladite zone à décoder, dit point à décoder, le traitement d’un point associé audit point à décoder dans au moins une des cartes latentes d’entrée par ladite couche neuronale en fonction de sa proximité d'une frontière de ladite région caractéristique.
The invention also relates to a method for decoding a zone, called the zone to be decoded, of a signal comprising at least two zones, said zone to be decoded comprising a plurality of samples to be decoded, said decoding method comprising the following steps:
  • the decoding of a group of latent value maps representative of said area to be decoded of said signal,
  • obtaining a mask of said area to be decoded in said signal,
  • the decoding of a set of parameters representative of a neural network, called a synthetic neural network comprising at least one synthetic neural layer,
  • the processing of said group of latent maps decoded by said synthetic neural network to produce at the output of said synthetic neural network at least said area to be decoded, said processing comprising the application of said at least one synthetic neural layer to transform at least one group of input latent maps, said input maps, into at least one group of output latent maps, said output maps, said application comprising obtaining a characteristic region of said area to be decoded in said input maps from said mask, said characteristic region comprising the points associated with said area to be decoded and for at least one point of said area to be decoded, said decode point, the processing of a point associated with said decode point in at least one of the input latent maps by said neural layer as a function of its proximity to a boundary of said characteristic region.

Au sens de l’invention, on entend par encodage, ou « codage», l’opération qui consiste à représenter un ensemble d’échantillons 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 décodés.For the purposes of this invention, encoding, or "coding " , refers to the operation of representing a set of samples in a compact form, for example, using a digital binary stream. Decoding refers to the operation of processing a digital binary stream to produce decoded samples.

Par « échantillon » du signal, on entend une valeur prélevée dans le signal. L’échantillonnage du 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 par exemple un pixel couleur représenté traditionnellement par un triplet de valeurs, par exemple (R, G, B) ou (Y, U, V). La position de l’échantillon est repérée par ses coordonnées en abscisse (x) et ordonnée (y) dans l’image.By "sample" "Sampling" refers to a value taken from the signal. Sampling the signal produces a sequence of discrete values called samples. In the case of an image signal, the sample is called a pixel, which can be, for example, a color pixel traditionally represented by a triplet of values, such as (R, G, B) or (Y, U, V). The position of the sample is located by its x-coordinate (abscissa) and y-coordinate (ordinate) in the image.

Par « signal comprenant une pluralité d’échantillons » on entend un signal à une (audio, son), deux (image) ou plus de deux (image stéréoscopique, multiscopique, image associée à une carte de profondeur, vidéo, etc.) dimensions. En fonction de cette dimensionnalité, l’échantillon possède une, deux ou plusieurs coordonnées dans le signal. Dans le cas d’un signal d’image, la position de l’échantillon est repérée par ses coordonnées en abscisse (x) et ordonnée (y).A "signal comprising a plurality of samples" refers to a signal with one (audio, sound), two (image), or more than two (stereoscopic, multiscopic, depth-mapped, video, etc.) dimensions. Depending on its dimensionality, the sample has one, two, or more coordinates within the signal. In the case of an image signal, the sample's position is identified by its x-coordinate (abscissa) and y-coordinate (ordinate).

Par « cartes de caractéristiques » ou de façon équivalente par « cartes de valeurs latentes », on entend une représentation abstraite du signal comportant une pluralité de données variables, discrètes ou non, que l’on appelle aussi valeurs, par exemple des nombres réels ou entiers.By "feature maps" or equivalently by "latent value maps", we mean an abstract representation of the signal comprising a plurality of variable data, discrete or not, which are also called values, for example real or integer numbers.

Par « vecteur caractéristique de données 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 de l’échantillon en cours de traitement dans le signal. Ce vecteur caractéristique est celui qui est appliqué à l’entrée du réseau de neurones de synthèse. Par exemple, dans le cas d’un signal audio monodimensionnel, un tel vecteur peut être constitué à partir d’une pluralité de valeurs prélevées dans chacune des cartes de caractéristiques à la même coordonnée que l’échantillon à coder ou dans un voisinage de celui-ci. Dans le cas d’une image, un tel vecteur peut être constitué à 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 l’échantillon à coder (resp. à décoder) ou dans un voisinage de celui-ci. Une fois que ces valeurs sont prélevées dans les cartes de caractéristiques, elles peuvent être traitées pour constituer le vecteur caractéristique, avant l’entrée dans le réseau de neurones de synthèse, par exemple par une quantification, un filtrage, une interpolation, etc.By "characteristic data vector constructed from feature maps as a function of a The term "position" refers to a vector consisting of one or more elements, or data points, preferably discrete. These data points are constructed from feature maps at a position determined by that of the sample being processed within the signal. This feature vector is the one applied to the input of the synthesis neural network. For example, in the case of a one-dimensional audio signal, such a vector can be constructed from a plurality of values taken from each of the feature maps at the same coordinate as the sample to be encoded or in a neighborhood thereof. In the case of an image, such a vector can be constructed from a plurality of values taken from each of the feature maps at the same x and y coordinates as the sample to be encoded (or decoded) or in a neighborhood thereof. Once these values are taken from the feature maps, they can be processed to form the feature vector, before entering the synthesis neural network, for example by quantization, filtering, interpolation, etc.

Par « réseau de neurones de synthèse », on entend un réseau neuronal tel 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, 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).By "synthetic neural network", we mean a neural network such as a convolutional neural network, a multilayer perceptron, an LSTM (for "Long Short Term Memory"), etc. The neural network is defined for example by a plurality of layers of artificial neurons and by a set of activation, weighting and addition functions (for example, a layer can calculate y = f (Ax+b), where y and b are vectors of dimension N, x a vector of dimension M, A is a matrix of dimension MxN, and f is the activation function).

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.)By "neural network parameter" we mean one of the values that characterizes the neural network, for example a weight associated with one of the neurons (filter coefficient, weighting, bias, value affecting the functioning of non-linearity, etc.)

Par « traitement par un réseau de neurones de synthèse », on entend l’application d’une fonction exprimée par un réseau de neurones de synthèse au vecteur caractéristique d’entrée pour produire un vecteur de sortie représentatif de l’échantillon à coder (resp. décoder). Ce vecteur de sortie peut comporter une ou plusieurs données représentatives de l’échantillon.By "treatment" By "synthetic neural network," we mean the application of a function expressed by a synthetic neural network to the input characteristic vector to produce an output vector representative of the sample to be encoded (or decoded). This output vector may contain one or more data points representative of the sample.

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, un échantillon courant, ou l’image courante, etc.). La mesure peut comporter aussi une mesure du débit, notamment associé au codage du réseau de neurones de synthèse et/ou au codage des cartes de caractéristiques du premier groupe. 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 jusqu’à atteindre une valeur cible.A "performance measure" is defined as a measurement between at least one value of a sample to be encoded and a decoded value of that sample. The measure might assess, for example, distortion or perceptual error. It can be performed on one or more samples (e.g., a running sample, the current image, etc.). The measure may also include a measurement of throughput, particularly associated with the encoding of the synthetic neural network and/or the encoding of the feature maps in the first group. The measure may be a combined measurement of throughput and distortion through their weighting. As is well known in the state of the art, the value of this measure is generally minimized until a target value is reached.

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.Generally, the steps of an encoding or decoding process should not be interpreted as being linked to a notion of temporal succession. In other words, the steps can be carried out in a different order than that indicated in the independent encoding or decoding claim, or even in parallel.

Le procédé de codage selon l’invention réalise le codage d’une zone d’un signal à partir d’une représentation de ce signal sous forme de cartes de caractéristiques. Ces cartes de caractéristiques sont segmentées en zones caractéristiques dont les valeurs sont ultérieurement codées de façon entropique les unes indépendamment des autres. En outre, un réseau de neurone de synthèse est entraîné sur l’ensemble de ces zones tout en tenant compte de la segmentation en zones caractéristiques. Ainsi, il est possible d’obtenir une représentation codée d’une zone du signal d’origine qui peut être ultérieurement décodée par le réseau de neurones de synthèse indépendamment de tout autre partie de ce signal.The coding method according to the invention encodes a region of a signal from a representation of that signal in the form of feature maps. These feature maps are segmented into characteristic regions whose values are subsequently encoded entropically, independently of one another. Furthermore, a synthetic neural network is trained on all of these regions, taking into account the segmentation into characteristic regions. Thus, it is possible to obtain a coded representation of a region of the original signal that can subsequently be decoded by the synthetic neural network independently of any other part of that signal.

Le procédé de décodage (et de façon symétrique le procédé de codage) peut en outre comporter une ou plusieurs des caractéristiques optionnelles suivantes, prises isolément ou bien selon n’importe quelle combinaison techniquement possible.The decoding process (and symmetrically the encoding process) may further include one or more of the following optional features, taken individually or in any technically possible combination.

Selon une première caractéristique l'étape de traitement dudit point associé (Pan) comporte :

  • l’obtention d’un point associé audit point à décoder dans au moins une des cartes latentes d’entrée,
  • l’évaluation d'un critère de proximité dudit point associé par rapport à une frontière de ladite région caractéristique,
  • la construction d’un vecteur d’entrée de ladite couche neuronale de synthèse à partir d’un voisinage dudit point associé et de ladite évaluation dudit critère de proximité, et
  • le traitement dudit vecteur d’entrée par ladite couche neuronale de synthèse pour obtenir un point d’au moins une des cartes de sortie.
According to a first characteristic, the processing step of said associated point (Pa n ) comprises:
  • obtaining a point associated with said point to be decoded in at least one of the latent input maps,
  • the evaluation of a proximity criterion of said associated point in relation to a boundary of said characteristic region,
  • the construction of an input vector for said neural synthesis layer from a neighborhood of said associated point and said evaluation of said proximity criterion, and
  • the processing of said input vector by said neural synthesis layer to obtain a point of at least one of the output maps.

Selon une autre caractéristique, le voisinage du point associé est indépendant de l’évaluation du critère de proximité.According to another characteristic, the neighborhood of the associated point is independent of the evaluation of the proximity criterion.

Selon une autre caractéristique, le voisinage du point associé est sélectionné en fonction de l’évaluation du critère de proximité.According to another characteristic, the neighborhood of the associated point is selected based on the evaluation of the proximity criterion.

Selon une autre caractéristique, le voisinage du point associé est sélectionné en fonction du point associé.According to another characteristic, the neighborhood of the associated point is selected based on the associated point.

Selon une autre caractéristique, lors de la construction du vecteur d’entrée, une composante du vecteur d’entrée est associée à un point du voisinage, la valeur de la composante étant égale à la valeur du point associé si le point associé est un point de la région caractéristique et à une valeur de remplacement, sinon.According to another feature, during the construction of the input vector, a component of the input vector is associated with a point in the neighborhood, the value of the component being equal to the value of the associated point if the associated point is a point in the characteristic region and to a replacement value otherwise.

Selon une autre caractéristique, la valeur de remplacement est dépendante des points de la région caractéristique ou des points associés au voisinage appartenant à la région caractéristique.According to another characteristic, the replacement value is dependent on points in the characteristic region or on points associated with the neighborhood belonging to the characteristic region.

Selon une autre caractéristique, la valeur de remplacement ne dépend pas des points de la région caractéristique.According to another characteristic, the replacement value does not depend on the points of the characteristic region.

Selon une autre caractéristique, le critère de proximité est une distance, par exemple une distance euclidienne.According to another characteristic, the proximity criterion is a distance, for example a Euclidean distance.

Selon une autre caractéristique, la couche neuronale de synthèse est une couche neuronale convolutive.According to another characteristic, the synthetic neuronal layer is a convolutional neuronal layer.

Corrélativement, l’invention vise aussi un dispositif de codage. d’un signal comprenant une pluralité d’échantillons à coder caractérisé en ce que ledit dispositif de codage est configuré pour mettre en œuvre :

  • l’obtention d’un premier groupe d’au moins une carte de valeurs latentes représentatif dudit signal,
  • l’obtention d’un masque dans ledit signal de ladite zone à coder,
  • pour au moins un échantillon de ladite zone à coder, dit échantillon courant, associé à une position dans ledit signal à coder :
    • la construction d’un vecteur caractéristique à partir desdites cartes de valeurs latentes dudit premier groupe, en fonction de ladite position dudit échantillon courant,
    • le traitement dudit vecteur caractéristique par un réseau de neurones artificiels, dit réseau de neurones de synthèse, ledit réseau de neurones de synthèse étant défini par un ensemble de paramètres et comprenant au moins une couche neuronale de synthèse pour obtenir, en sortie dudit réseau de neurone de synthèse, un vecteur représentatif d’une valeur décodée de l’échantillon courant,
    • la mise à jour d'au moins une valeur d’une desdites cartes de valeurs latentes dudit premier groupe et/ou d’au moins un paramètre dudit réseau de neurones de synthèse, en fonction d’une mesure de performance de codage,
  • l’obtention d’un deuxième groupe de cartes de valeurs latentes représentatives d’au moins ladite zone à coder à partir dudit masque,
  • le codage du deuxième groupe de cartes de valeurs latentes,
  • le codage dudit masque, et
  • le codage dudit ensemble de paramètres dudit réseau de neurones de synthèse.
ledit traitement comportant l’application de ladite au moins une couche neuronale de synthèse pour transformer au moins un groupe de cartes latentes d’entrée, dite cartes d’entrée, en au moins un groupe de cartes latentes de sortie, dite cartes de sortie, ladite application comprenant :
  • l’obtention d’une région caractéristique de ladite zone à décoder dans lesdites cartes d’entrée à partir dudit masque, ladite région caractéristique comprenant les points associés audit masque,
  • pour au moins un point de ladite zone à décoder, dit point à décoder :
    • l’obtention d’un point associé audit point à décoder dans au moins une des cartes latentes d’entrée,
    • l’évaluation d'un critère de proximité dudit point associé par rapport à une frontière de ladite région caractéristique,
    • la construction d’un vecteur d’entrée de ladite couche neuronale de synthèse à partir d’un voisinage dudit point associé et de ladite évaluation dudit critère de proximité, et
    • le traitement dudit vecteur d’entrée par ladite couche neuronale de synthèse pour obtenir un point d’au moins une des cartes de sortie,
Correspondingly, the invention also relates to a coding device for a signal comprising a plurality of samples to be coded, characterized in that said coding device is configured to implement:
  • obtaining a first group of at least one latent value map representative of said signal,
  • obtaining a mask in said signal from said zone to be coded,
  • for at least one sample of said area to be coded, called the current sample, associated with a position in said signal to be coded:
    • the construction of a characteristic vector from said latent value maps of said first group, as a function of said position of said current sample,
    • the processing of said characteristic vector by an artificial neural network, called a synthetic neural network, said synthetic neural network being defined by a set of parameters and comprising at least one synthetic neural layer to obtain, at the output of said synthetic neural network, a vector representing a decoded value of the current sample,
    • the updating of at least one value of one of said latent value maps of said first group and/or of at least one parameter of said synthetic neural network, as a function of a coding performance measure,
  • obtaining a second set of latent value maps representative of at least the said area to be encoded from said mask,
  • the encoding of the second group of latent value maps,
  • the encoding of said mask, and
  • the coding of said set of parameters of said synthetic neural network.
said processing comprising the application of said at least one neural synthesis layer to transform at least one group of input latent maps, referred to as input maps, into at least one group of output latent maps, referred to as output maps, said application comprising:
  • obtaining a characteristic region of said area to be decoded in said entry maps from said mask, said characteristic region comprising the points associated with said mask,
  • for at least one point in said area to be decoded, called point to be decoded:
    • obtaining a point associated with said point to be decoded in at least one of the latent input maps,
    • the evaluation of a proximity criterion of said associated point in relation to a boundary of said characteristic region,
    • the construction of an input vector for said neural synthesis layer from a neighborhood of said associated point and said evaluation of said proximity criterion, and
    • the processing of said input vector by said neural synthesis layer to obtain a point on at least one of the output maps,

L’invention vise aussi un dispositif de décodage d’une zone d’un signal comportant au moins deux zones, dite zone à décoder, ladite zone à décoder comprenant une pluralité d’échantillons à décoder caractérisé en ce que le dispositif de décodage est configuré pour mettre en œuvre :

  • le décodage d’un groupe de cartes de valeurs latentes représentatives de ladite zone à décoder dudit signal,
  • l’obtention d’un masque de ladite zone à décoder dans ledit signal,
  • le décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones, dit réseau de neurones de synthèse comprenant au moins une couche neuronale de synthèse,
  • le traitement dudit groupe de cartes latentes décodées par ledit réseau de neurone de synthèse pour produire en sortie dudit réseau de neurone de synthèse au moins ladite zone à décoder, ledit traitement comportant l’application de ladite au moins une couche neuronale de synthèse pour transformer au moins un groupe de cartes latentes d’entrée, dite cartes d’entrée, en au moins un groupe de cartes latentes de sortie, dite cartes de sortie, ladite application comprenant l’obtention d’une région caractéristique de ladite zone à décoder dans lesdites cartes d’entrée à partir dudit masque, ladite région caractéristique comprenant les points associés à ladite zone à décoder et pour au moins un point de ladite zone à décoder, dit point à décoder, le traitement d’un point associé audit point à décoder dans au moins une des cartes latentes d’entrée par ladite couche neuronale en fonction de sa proximité d'une frontière de ladite région caractéristique.
The invention also relates to a device for decoding a region of a signal comprising at least two regions, referred to as the region to be decoded, said region to be decoded comprising a plurality of samples to be decoded, characterized in that the decoding device is configured to implement:
  • the decoding of a group of latent value maps representative of said area to be decoded of said signal,
  • obtaining a mask of said area to be decoded in said signal,
  • the decoding of a set of parameters representative of a neural network, called a synthetic neural network comprising at least one synthetic neural layer,
  • the processing of said group of latent maps decoded by said synthetic neural network to produce at the output of said synthetic neural network at least said area to be decoded, said processing comprising the application of said at least one synthetic neural layer to transform at least one group of input latent maps, said input maps, into at least one group of output latent maps, said output maps, said application comprising obtaining a characteristic region of said area to be decoded in said input maps from said mask, said characteristic region comprising the points associated with said area to be decoded and for at least one point of said area to be decoded, said decode point, the processing of a point associated with said decode point in at least one of the input latent maps by said neural layer as a function of its proximity to a boundary of said characteristic region.

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.The characteristics and advantages of the coding or decoding process apply in the same way to the coding or decoding device according to the invention and 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.The invention also relates to a computer program on a recording medium, this program being capable of being implemented in a computer or an encoding or decoding device according to the invention. This program includes instructions adapted to the implementation of the corresponding method. This program may use any programming language and be in the form of source code, object code, or code intermediate between source and object code, such as in a partially compiled form, or in any other desirable form.

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.The invention also relates to a computer-readable information or recording medium containing the aforementioned computer program instructions. The information or recording medium can be any entity or device capable of storing programs. For example, the medium may include a storage means, such as a ROM (e.g., a CD-ROM or a microelectronic circuit ROM), or a magnetic recording means, such as a floppy disk or hard drive, a DNA sequence, or flash memory. Furthermore, the information or recording medium may be a transmissible medium, such as an electrical or optical signal, which can be transmitted via an electrical or optical cable, by radio link, wireless optical link, or by other means.

Le programme selon l’invention peut être en particulier téléchargé sur un réseau de type Internet.The program according to the invention can in particular be downloaded onto an Internet-type network.

Alternativement, chaque support d’information 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.Alternatively, each information or recording medium can be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of a process according to the invention.

Brève description des figuresBrief description of the figures

L’invention sera mieux comprise à l’aide de la description qui va suivre, donnée uniquement à titre d’exemple et faite en se référant aux dessins annexés dans lesquels :

  • laFIG. 1représente schématiquement un dispositif de codage selon un mode de réalisation de l’invention,
  • laFIG. 2représente schématiquement un dispositif de décodage selon un mode de réalisation de l’invention,
  • laFIG. 3illustre un exemple de réseau de neurones artificiels de synthèse utilisé dans le cadre de l’invention,
  • laFIG. 4illustre schématiquement un exemple de traitement opéré par une couche neuronale de synthèse du réseau de neurones de laFIG. 3,
  • laFIG. 5illustre schématiquement un deuxième exemple de traitement opéré par une couche neuronale de synthèse du réseau de neurones de laFIG. 3.
  • laFIG. 6illustre schématiquement un troisième exemple de traitement opéré par une couche neuronale de synthèse du réseau de neurones de laFIG. 3.
  • laFIG. 7est un logigramme représentant un exemple de procédé de codage qui peut être mis en œuvre par le dispositif de codage de laFIG. 1,
  • laFIG. 8représente de manière illustrée un procédé de codage utilisé dans un mode de réalisation de l’invention,
  • laFIG. 9est 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 laFIG. 2,
  • laFIG. 10représente de manière illustrée un procédé de décodage utilisé dans un mode de réalisation de l’invention,
  • laFIG. 11est un logigramme représentant une méthode de codage de cartes de caractéristiques qui peut être mis en œuvre par le dispositif de codage de laFIG. 1et par le procédé de codage de laFIG. 7,
  • laFIG. 12est un logigramme représentant une méthode de décodage de cartes de caractéristiques qui peut être mis en œuvre par le dispositif de décodage de laFIG. 2et par le procédé de décodage de laFIG. 9.
The invention will be better understood with the aid of the following description, given solely by way of example and made with reference to the accompanying drawings in which:
  • there FIG. 1 schematically represents a coding device according to one embodiment of the invention,
  • there FIG. 2 schematically represents a decoding device according to one embodiment of the invention,
  • there FIG. 3 illustrates an example of a synthetic artificial neural network used in the context of the invention,
  • there FIG. 4 schematically illustrates an example of processing performed by a neural synthesis layer of the neural network of the FIG. 3 ,
  • there FIG. 5 schematically illustrates a second example of processing performed by a neural synthesis layer of the neural network of the FIG. 3 .
  • there FIG. 6 schematically illustrates a third example of processing performed by a neural synthesis layer of the neural network of the FIG. 3 .
  • there FIG. 7 is a flowchart representing an example of a coding process that can be implemented by the coding device of the FIG. 1 ,
  • there FIG. 8 represents, in an illustrated manner, a coding method used in one embodiment of the invention,
  • there FIG. 9 is a flowchart representing an example of a decoding process that can be implemented by the decoding device of the FIG. 2 ,
  • there FIG. 10 represents, in an illustrated manner, a decoding process used in one embodiment of the invention,
  • there FIG. 11 is a flowchart representing a method for encoding feature cards that can be implemented by the encoding device of the FIG. 1 and by the coding process of the FIG. 7 ,
  • there FIG. 12 is a flowchart representing a method for decoding feature cards that can be implemented by the decoding device of the FIG. 2 and by the decoding process of the FIG. 9 .

Description détaillée de l’inventionDetailed description of the invention

LaFIG. 1représente schématiquement, selon un premier mode de réalisation, un dispositif de codage ENC d’au moins une zone d’un signal (I(Pn)). Dans l’exemple décrit ici, le signal I(Pn) est segmenté en un ensemble de J zones et toutes les zones sont codées de façon indépendantes. Bien évidemment, en variante, seule une zone ou seulement quelques zones peuvent être codées de façon indépendante.There FIG. 1 This schematically represents, according to a first embodiment, an ENC coding device for at least one region of a signal (I(P n )). In the example described here, the signal I(P n ) is segmented into a set of J regions, and all regions are coded independently. Alternatively, only one region or just a few regions can be coded independently.

Ce dispositif de codage ENC comprend un module de segmentation SEG, un module d’encodage SEGC de la segmentation fournie par le module de segmentation SEG, un module GEN de génération de cartes de caractéristiques, un module SE de transformation de cartes de caractéristiques, un module XTR d’extraction de données des cartes de caractéristiques, un module TT de traitement et quantification, un module NNSYN correspondant à un réseau de neurones artificiels de synthèse, un module NNC de codage de réseau de neurones apte à coder le réseau de neurones de synthèse, un module FMC de codage des cartes de caractéristiques, un module EVAL d’évaluation d’une performance de codage, un module MAJ de mise à jour.This ENC coding device includes a SEG segmentation module, an SEGC encoding module of the segmentation provided by the SEG segmentation module, a GEN module for generating feature maps, an SE module for transforming feature maps, an XTR module for extracting data from feature maps, a TT module for processing and quantification, an NNSYN module corresponding to a synthetic artificial neural network, an NNC module for coding a neural network capable of encoding the synthetic neural network, an FMC module for coding feature maps, an EVAL module for evaluating coding performance, and a MAJ module for updating.

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.The ENC coding device can be implemented by means of an electronic device comprising a processor and a memory, not shown; each of the modules mentioned above can then be realized by the cooperation of the processor and computer program instructions stored in the aforementioned memory and designed to perform the functionalities of the module concerned, in particular as described below, when these instructions are executed by the processor.

Le dispositif de codage ENC de laFIG. 1reçoit en entrée un signal formée d’une succession d’échantillons à coder, notés Pn, par exemple une succession temporelle d’échantillons sonores, ou un ensemble de données d’image noté I(Pn). Dans ce second cas, le signal d’image I(Pn) peut représenter une image bidimensionnelle, ou une pluralité d’images bidimensionnelles (vidéo, composantes de couleur, composantes stéréoscopiques, multiscopiques, etc.). Pndésigne un échantillon n du signal d’entrée comportant N échantillons. Dans un mode de réalisation, le signal est un signal d’image couleur représentée au moyen d’au moins une représentation bidimensionnelle, telle qu’une matrice de pixels, chaque pixel comportant une composante rouge R, verte G, bleue B, ou, en variante, une composante de luminance Y et au moins une composante de chrominance U, V. L'emplacement de chaque pixel est défini par ses coordonnées en abscisse x et ordonnée y dans l'image. Dans un mode de réalisation, l’image est en niveau de gris représentée au moyen d’une représentation bidimensionnelle, telle qu’une matrice de pixels, chaque pixel comportant une composante de niveaux de gris, ou luminance. Dans ce cas, le vecteur représentatif du pixel est réduit à une seule composante.The ENC coding device of the FIG. 1 The system receives as input a signal consisting of a succession of samples to be encoded, denoted P<sub>n</sub> , for example, a temporal sequence of sound samples, or a set of image data denoted I(P <sub>n</sub> ). In this second case, the image signal I(P <sub>n </sub>) can represent a two-dimensional image, or a plurality of two-dimensional images (video, color components, stereoscopic components, multiscopic components, etc.). P <sub>n</sub> designates a sample n of the input signal comprising N samples. In one embodiment, the signal is a color image signal represented by means of at least one two-dimensional representation, such as a pixel matrix, each pixel having a red component R, a green component G, a blue component B, or, alternatively, a luminance component Y and at least one chrominance component U, V. The location of each pixel is defined by its abscissa x and ordinate y coordinates in the image. In one embodiment, the image is in greyscale represented by means of a two-dimensional representation, such as a pixel matrix, each pixel having a greyscale component, or luminance. In this case, the vector representing the pixel is reduced to a single component.

Le module SEG réalise une segmentation Sg de la succession d’échantillons à coder Pnen J (supérieur ou égal à 2) zones Zoj. Cette opération de segmentation permet de rassembler les échantillons en J différents ensembles homogènes en fonction d’un ou plusieurs critères prédéfinis. Par exemple, dans le cas d’une succession temporelle d’échantillons sonores, l’opération de segmentation permet d’obtenir des successions d’unités correspondant à des silences, des bruits, des phonèmes, des mots, etc. De même, dans le cas d’un signal d’image I(Pn), l’opération de segmentation permet de rassembler les pixels Pndu signal d’image en J zones homogènes suivant des critères, notamment d'intensité ou spatiaux. Par exemple, l’opération de segmentation peux permettre d’identifier dans le signal d’image I(Pn) deux zones différentes (J=2) correspond l’une à l’arrière-plan de l’image et l’autre au premier plan de l’image. La segmentation Sg est par exemple représentée comme un ensemble de J masques MZojpermettant chacun d’identifier une zone Zoj, chacun des masques étant associé à une valeur différente de celle associée aux autres masques.The SEG module performs a segmentation Sg of the sequence of samples to be encoded P <sub>n </sub> into J (greater than or equal to 2) zones Z<sub>o</sub> j . This segmentation operation allows the samples to be grouped into J different homogeneous sets based on one or more predefined criteria. For example, in the case of a temporal sequence of sound samples, the segmentation operation allows the results to be obtained from sequences of units corresponding to silences, noises, phonemes, words, etc. Similarly, in the case of an image signal I(P <sub>n</sub> ), the segmentation operation allows the pixels P <sub>n</sub> of the image signal to be grouped into J homogeneous zones according to criteria, notably intensity or spatial ones. For example, the segmentation operation can allow the identification in the image signal I(P <sub>n</sub> ) of two different zones (J=2), one corresponding to the background of the image and the other to the foreground of the image. The segmentation Sg is for example represented as a set of J masks MZo j each allowing to identify a zone Zo j , each of the masks being associated with a value different from that associated with the other masks.

Le module SEGC réalise le codage sans perte de la segmentation Sg. Ce codage peut être réalisé en codant la carte de segmentation correspondant aux J masques MZoj(par exemple en utilisant l’algorithme JPEG-LS défini par la norme internationale ISO/CEI 14495-1) ou en variante en codant indépendamment chaque masque MZoj, ou dans encore une autre variante, en codant indépendamment les contours des J masques MZoj. La segmentation codée est notée Sgc.The SEGC module performs lossless encoding of the Sg segmentation. This encoding can be achieved by encoding the segmentation map corresponding to the J MZo j masks (for example, using the JPEG-LS algorithm defined by the international standard ISO/IEC 14495-1), or alternatively by independently encoding each MZo j mask, or in yet another variant, by independently encoding the contours of the J MZo j masks. The encoded segmentation is denoted Sgc.

le module NNC réalise une simulation de codage, suivi d’un décodage, à destination du module d’évaluationThe NNC module performs a coding simulation, followed by decoding, for the evaluation module.

Le module GEN de génération de cartes de caractéristiques est configuré pour générer une pluralité de M cartes de caractéristiques, notées FMi.The GEN feature map generation module is configured to generate a plurality of M feature maps, denoted FM i .

Dans un mode de réalisation, le module SE réalise une transformation du premier groupe de cartes de caractéristiques FMipour générer un second groupe de cartes de caractéristiques FMSià la même résolution que le signal d’entrée.In one embodiment, the SE module performs a transformation of the first group of FM i characteristic maps to generate a second group of FMS i characteristic maps at the same resolution as the input signal.

Le module SE, optionnel, peut réaliser une quantification des données extraites de cet ensemble de M cartes FMi. On rappelle que la quantification d'une valeur fait référence à la mise en correspondance de cette valeur avec un membre d'un ensemble discret de symboles de code possibles. Par exemple, l'ensemble de symboles de code possibles peut être constitué de valeurs entières, et le système de quantification réalise un simple arrondi d’une valeur réelle à une valeur entière. Selon un autre exemple, la quantification consiste en une multiplication par une valeur donnée puis un arrondi. Puis le module SE effectue 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 du second groupe est de même résolution que les images de la séquence d’entrée. Avantageusement selon ce mode, les cartes de caractéristiques qui sont codées peuvent être de résolution inférieure à celle des images à coder, alors que les cartes du second groupe, 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.The optional SE module can perform quantization of the data extracted from this set of M FM i maps. Recall that quantizing a value refers to mapping that value to a member of a discrete set of possible code symbols. For example, the set of possible code symbols might consist of integers, and the quantization system would simply round a real value to an integer. Alternatively, quantization could involve multiplying by a given value and then rounding. The SE module then performs a transformation of the values in at least one of the feature maps, such as oversampling, interpolation, filtering, etc. After the transformation, a transformed feature map from the second group has the same resolution as the images in the input sequence. Advantageously, according to this method, the feature maps that are coded can be of lower resolution than the images to be coded, while the maps of the second group, which are used to construct the feature vectors, are at the same resolution as the image sequence, which facilitates the extraction of values.

Dans un mode de réalisation, le module SE est absent, dans ce cas les valeurs qui serviront à construire le vecteur caractéristique sont extraites du premier groupe de cartes de caractéristiques.In one embodiment, the SE module is absent; in this case, the values that will be used to construct the characteristic vector are extracted from the first group of characteristic maps.

Le module XTR réalise une extraction de valeurs dans les cartes de caractéristiques FMSi(ou FMiselon l’un des modes de réalisation décrits précédemment), pour un échantillon courant Pnà coder, en fonction de ses coordonnées dans le signal d’entrée et éventuellemenet de la segmentation Sg réalisée par le module SEG. Par exemple, si l’on cherche à coder l’échantillon Pnaux coordonnées (xn, yn) dans une zone Zojd’une image d’entrée, le module XTR réalise une extraction de valeurs dans les cartes à des positions imposées par les coordonnées (xn, yn) et par le masque MZojde la zone Zoj.The XTR module performs value extraction from the feature maps FMS i (or FM i depending on one of the embodiments described previously), for a current sample P n to be encoded, based on its coordinates in the input signal and possibly the segmentation Sg performed by the SEG module. For example, if we want to encode the sample P n at coordinates (x n , y n ) in a region Zo j of an input image, the XTR module performs value extraction from the maps at positions imposed by the coordinates (x n , y n ) and by the mask MZo j of the region Zo j .

Dans un mode de réalisation, les valeurs extraites constituent le vecteur Zn. Znest un L-uplet, c’est-à-dire qu’il comporte L éléments, ou données zi. Par exemple, dans un mode de réalisation, L=M, c’est-à-dire par exemple qu’une seule valeur est extraite pour chaque carte de caractéristiques FMi. Dans un autre mode de réalisation, L>M, c’est-à-dire par exemple que plusieurs valeurs sont extraites pour au moins une carte de caractéristiques FMi. La dimension L du vecteur dépend de la topologie du réseau de neurones de synthèse NNSYN et plus particulièrement de la topologie de la couche d’entrée de ce réseau de neurones de synthèse NNSYN.In one embodiment, the extracted values constitute the vector Z <sub>n</sub> . Z <sub>n</sub> is an L-tuple, meaning it contains L elements, or data z<sub>i</sub> . For example, in one embodiment, L=M, meaning that only one value is extracted for each feature map FM <sub>i</sub> . In another embodiment, L>M, meaning that several values are extracted for at least one feature map FM <sub>i </sub>. The dimension L of the vector depends on the topology of the NNSYN synthesis neural network and, more specifically, on the topology of the input layer of this NNSYN synthesis neural network.

Le vecteur Znd’indice n réfère au vecteur caractéristique du pixel P’n.The vector Z n of index n refers to the characteristic vector of the pixel P' n .

Dans un mode de réalisation, le module TT, optionnel, réalise un traitement des valeurs extraites, pour générer le vecteur Zn. Le module TT peut réaliser une quantification 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 le module SE n’est pas utilisé et si les cartes de caractéristiques du premier groupe sont à des résolutions inférieures à celle des images de la séquence, le module TT peut prendre en compte les coordonnées des valeurs dans les cartes de résolutions inférieures.In one embodiment, the optional TT module processes the extracted values to generate the vector Z <sub>n</sub> . The TT module can quantify the data extracted from the set of feature maps. This processing may include other operations, such as filtering, scaling, etc. In particular, if the SE module is not used and the feature maps in the first group have lower resolutions than the images in the sequence, the TT module can take into account the coordinates of the values in the lower-resolution maps.

On notera que l’un au moins des modules SE ou TT doit effectuer une quantification des cartes de caractéristiques.Note that at least one of the SE or TT modules must perform a quantification of the feature maps.

Le module NNSYN est un réseau de neurones de synthèse défini par K paramètres Wk, apte à traiter le vecteur Zn, ou L-Uplet, en entrée, pour générer en sortie un second vecteur représentatif de l’échantillon Pnà coder.The NNSYN module is a synthetic neural network defined by K parameters W k , capable of processing the input vector Z n , or L-Tuple, to generate as output a second vector representative of the sample P n to be coded.

Un exemple de réseau de neurones de synthèse est présenté ultérieurement en référence à laFIG. 3.An example of a synthetic neural network is presented later with reference to the FIG. 3 .

Il est à noter que le comportement du réseau de neurone de synthèse peut dépendre de la segmentation Sg comme cela sera présenté plus en détail ultérieurement en référence aux figures 4 à 6.It should be noted that the behavior of the synthesis neural network may depend on the Sg segmentation as will be presented in more detail later with reference to figures 4 to 6.

Le module NNC réalise le codage du réseau de neurones de synthèse, notamment de ses paramètres Wk. 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 NNC réalise une simulation de codage, suivi d’un décodage, à destination du module d’évaluation. Par la suite, il effectue le codage effectif des paramètres du réseau de neurones de synthèse Wk,. Les paramètres codés sont notés Wck. De manière connue, la simulation de codage peut être identique au codage effectif, ou en réaliser une approximation.The NNC module performs the encoding of the synthetic neural network, specifically its parameters W<sub>k</sub> . During the training, or construction, process of the encoding—that is, until the performance evaluation stage is satisfactory—the NNC module performs a coding simulation, followed by decoding, for the evaluation module. Subsequently, it performs the actual encoding of the synthetic neural network parameters W <sub>k</sub> . The encoded parameters are denoted W<sub>c </sub>k . As is known, the coding simulation can be identical to the actual encoding, or it can approximate it.

Le module FMC réalise le codage des cartes FMi, c’est-à-dire des valeurs des cartes de caractéristiques du premier groupe (à l’exclusion des cartes du second groupe, résultant optionnellement d’un suréchantillonnage par le module SE). 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 FMC réalise une simulation de codage, suivi d’un décodage, à destination du module d’évaluation. Par la suite, il effectue le codage effectif des valeurs des cartes FMi.The FMC module performs the encoding of the FM i maps, that is, the values of the characteristic maps in the first group (excluding the maps in the second group, which may optionally result from oversampling by the SE module). During the encoding training, or construction, process—that is, until the performance evaluation step is satisfactory—the FMC module performs a coding simulation, followed by decoding, for the evaluation module. Subsequently, it performs the actual encoding of the FM i map values.

Le module FMC détermine, en prenant en compte la segmentation Sg réalisée par le module SEG, une segmentation SgL de chacune des cartes de caractéristiques FMien J zones . Ainsi, le module FMC utilise la segmentation Sg définie dans le domaine du signal à coder pour obtenir une segmentation dans le domaine latent des cartes de caractéristiques FMi. L’obtention de cette segmentation dans le domaine latent dépend de la transformée de passage permettant de passer du domaine du signal à coder au domaine latent. Ainsi, la segmentation SgL dans les latentes est issue d’un calcul prenant en compte simultanément la localisation des zones de la segmentation Sg dans le signal à coder et la transformée de passage. Par exemple, si les latentes et le signal à coder ont la même résolution, alors la segmentation dans le domaine latent est identique à la segmentation dans le domaine du signal à coder. Selon un autre exemple, si une latente à une résolution inférieure à celle du signal à coder, alors la frontière entre deux zones de la segmentation dans le domaine de cette latente se situe entre les points dans le domaine latent dont les échantillons colocalisés dans le signal à coder appartiennent à deux zones différentes de la segmentation Sg. Chacune des cartes est représentée sous la forme d’un ensemble de J zones caractéristiques , chacune des zones caractéristiques correspondant dans la carte FMià la région j de la segmentation SgL. Il est possible que certaines zones caractéristique soient vides. Le codage des valeurs des cartes FMiest réalisé en prenant en compte la segmentation SgL. Plus précisément, chacune des J zones caractéristiques est codée successivement, par exemple dans l’ordre de leur indexation. Ainsi chacune des zones caractéristiques est codée indépendamment des autres zones caractéristiques. Les données codées de chaque zone codée dans chacune des cartes de caractéristiques FMiest notée . Chaque zone subit un codage entropique. Ainsi, le codage des M cartes FMicorrespond au codage indépendant des J zones caractéristique des M cartes FMi.The FMC module determines, taking into account the Sg segmentation performed by the SEG module, an SgL segmentation of each of the FM i feature maps into J zones Thus, the FMC module uses the Sg segmentation defined in the domain of the signal to be encoded to obtain a latent domain segmentation of the FM i feature maps. Obtaining this latent domain segmentation depends on the transformation transform used to go from the domain of the signal to be encoded to the latent domain. Therefore, the SgL segmentation in the latents results from a calculation that simultaneously considers the location of the Sg segmentation zones in the signal to be encoded and the transformation transform. For example, if the latents and the signal to be encoded have the same resolution, then the latent domain segmentation is identical to the segmentation in the domain of the signal to be encoded. As another example, if a latent has a lower resolution than the signal to be encoded, then the boundary between two zones of the segmentation in the domain of that latent lies between the points in the latent domain whose co-located samples in the signal to be encoded belong to two different Sg segmentation zones. Each of the maps is represented as a set of J characteristic zones , each of the characteristic zones corresponding in the FM map i to region j of the SgL segmentation. It is possible that certain characteristic areas are empty. The FM i card values are encoded taking into account SgL segmentation. More precisely, each of the J characteristic zones is coded sequentially, for example in the order of their indexing. Thus, each of the characteristic areas is coded independently of the other characteristic areas. The coded data of each coded area in each of the FM characteristic charts i is noted Each area undergoes entropic coding. Thus, the coding of the M FM i cards corresponds to the independent coding of the J zones characteristic of the M FM i cards.

Dans un premier exemple de réalisation, le module FMC code seulement les valeurs des points de la zone caractéristique ZoLjà l’exception de tout autre point des cartes de caractéristiques FMi. Ainsi, le codage d’une zone caractéristique comprend le codage successif pour chaque carte FMides valeurs des points de la zone caractéristique dans la carte FMi.In a first implementation example, the FMC module only encodes the values of points in the characteristic zone ZoL j , excluding any other points in the characteristic maps FM i . Thus, the encoding of a characteristic zone includes the successive coding for each FM card i of the values of the points in the characteristic zone in the FM i card.

En variante, le module FMC crée une carte secondaire de caractéristiques pour chaque zone caractéristique ZoLj. La valeur d’un point de la carte secondaire de caractéristiques étant égale à la valeur du point de la carte FMisi ce point appartient à la zone caractéristique ZoLjet à une valeur prédéterminée, par exemple zéro, sinon. Le module FMC code alors la totalité de la carte de caractéristique pour obtenir les données codées différentes pour chaque zone caractéristique ZoLj.Alternatively, the FMC module creates a secondary feature map. for each characteristic zone ZoL j . The value of a point on the secondary characteristic map being equal to the value of point i on the FM chart if that point belongs to characteristic zone ZoL j , and to a predetermined value, for example zero, otherwise. The FMC module then encodes the entire characteristic chart to obtain the encoded data different for each characteristic zone ZoL j .

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 du premier groupe 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, en utilisant un codage prenant en compte le voisinage d’une valeur à coder de la carte de caractéristiques.As is known, the coding simulation can be identical to the actual coding, or it can approximate it. The coding module quantifies, if necessary, the latent representation of the values in the first group of maps using a quantifier to generate an ordered collection of quantized values. The coding module then compresses the quantized data, using a coding method that takes into account the neighborhood of a value to be coded in the feature map.

Le module EVAL 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é à la portée de l’homme du métier.The EVAL module performs an evaluation and minimization of coding performance. The evaluation function is, for example, of the rate-distortion type. Minimization can be performed by gradient descent, or any other method within the grasp of a person skilled in the art.

Le module MAJ réalise une mise à jour des valeurs des cartes FMiet/ou des paramètres du réseau de neurones à encoder, en fonction des résultats de la fonction de performance.The MAJ module performs an update of the values of the FM i cards and/or the parameters of the neural network to be encoded, according to the results of the performance function.

LaFIG. 2représente schématiquement un dispositif de décodage DEC d’une zone à décoder Zodjd’un signal, dite zone à décoder, ladite zone à décoder Zodjcomprenant une pluralité d’échantillons Pdnà décoder.There FIG. 2 schematically represents a decoding device DEC of a zone to be decoded Zod j of a signal, called zone to be decoded, said zone to be decoded Zod j comprising a plurality of samples Pd n to be decoded.

Ce dispositif de décodage DEC comprend un module NND de décodage de réseau(x) de neurones apte à décoder le réseau de neurones de synthèse NNSYN’, un module SEGD de décodage d’une segmentation, un module FMD de décodage de cartes de caractéristiques, un module XTR’ d’extraction de données, un module SE’ de transformation inverse, un module TT’ de traitement et quantification inverse.This DEC decoding device includes an NND module for decoding neural network(s) capable of decoding the NNSYN’ synthesis neural network, a SEGD module for decoding a segmentation, an FMD module for decoding feature maps, an XTR’ module for data extraction, an SE’ module for inverse transformation, and a TT’ module for inverse processing and quantization.

Le dispositif de décodage DEC produit en sortie une image décodée comprenant au moins la zone décodée, notée Zodj(Pdn), comportant une pluralité d’échantillons décodés Pdn.The DEC decoding device produces at output a decoded image including at least the decoded area, denoted Zod j (Pd n ), comprising a plurality of decoded samples Pd n .

Le dispositif de décodage DEC de la figure 2 reçoit en entrée la segmentation encodée Sgc et un groupe de données encodées .The DEC decoding device in Figure 2 receives as input the Sgc encoded segmentation and a group of encoded data .

Le dispositif de décodage DEC de laFIG. 2reçoit également en entrée les paramètres encodés Wckdu réseau de neurones de synthèse NNSYN’.The DEC decoding device of the FIG. 2 also receives as input the Wc k encoded parameters of the NNSYN' synthesis neural network.

Les paramètres du réseau de neurones de synthèse NNSYN’ décodés par le module NND sont notés Wdk.The parameters of the NNSYN' synthesis neural network decoded by the NND module are noted Wd k .

Le module SEGD décode le masque MZojà partir des données encodées Sgc.The SEGD module decodes the MZo j mask from the Sgc encoded data.

Selon des modes de réalisation tels que décrits pour le codeur :

  • La carte de segmentation correspondant aux J masques MZojest décodée à partir des données Sgc et le masque MZojest extrait de la carte de segmentation.
  • Le masque MZojest décodé directement lorsqu’il a été précédemment encodé dans les données encodées Sgc indépendamment des autres masques.
According to embodiments as described for the encoder:
  • The segmentation map corresponding to the J MZo masks j is decoded from the Sgc data and the MZo mask j is extracted from the segmentation map.
  • The MZo mask j is decoded directly when it has been previously encoded in the Sgc-encoded data independently of other masks.

Le module FMD construit M cartes décodées en utilisant le masque MZojet les données encodées . En fonction du mode de réalisation de l’encodage des données mis en œuvre par l’encodeur ENC et à partir du masque MZojdans le domaine du signal à décoder, le module FMD détermine la zone caractéristique ZoLjcorrespondante dans le domaine latent, puis le module FMD décode les données pour obtenir les valeurs des points de cette zone caractéristique ZoLjdans chacune des cartes .The FMD module builds M decoded maps using the MZo j mask and encoded data Depending on how the data is encoded Implemented by the ENC encoder and using the MZo j mask in the signal domain to be decoded, the FMD module determines the corresponding ZoL j characteristic area in the latent domain, and then the FMD module decodes the data to obtain the point values for this characteristic zone ZoL j in each of the maps .

Dans un mode de réalisation, le module SE’ réalise une transformation du premier groupe de cartes de caractéristiques décodées pour générer un second groupe de cartes de caractéristiques à la même résolution que le signal à décoder, notées ou . Le module SE’ effectue optionnellement une quantification inverse correspondant à la quantification effectuée au codeur. La quantification inverse n’est pas nécessaire si le quantificateur Q du codeur a réalisé un simple arrondi des valeurs réelles qui lui sont soumises. La quantification inverse n’est pas nécessaire non plus si le réseau de neurones est apte à prendre en compte une quantification de ses données d’entrée. Sinon, le décodeur réalise l’opération inverse du quantificateur Q. Puis le module SE’ effectue une transformation des valeurs des cartes de caractéristiques, comprenant par exemple un suréchantillonnage, une interpolation, un filtrage, etc., similaire à celle effectuée par le codeur. À l’issue de la transformation, une carte de caractéristiques transformée du second groupe est de même résolution que les images de la séquence à décoder.In one embodiment, the SE' module performs a transformation of the first group of feature cards decoded to generate a second set of feature maps at the same resolution as the signal to be decoded, noted or The SE' module optionally performs inverse quantization, corresponding to the quantization performed by the encoder. Inverse quantization is not necessary if the encoder's quantizer Q simply rounded the input values. Inverse quantization is also unnecessary if the neural network is capable of handling quantization of its input data. Otherwise, the decoder performs the inverse operation of quantizer Q. The SE' module then transforms the feature map values, including, for example, oversampling, interpolation, filtering, etc., similar to the transformation performed by the encoder. After the transformation, a transformed feature map from the second group has the same resolution as the images in the sequence to be decoded.

Dans un mode de réalisation, le module SE’ est absent, dans ce cas les valeurs qui serviront à construire le vecteur caractéristique sont extraites du premier groupe de cartes de caractéristiques.In one embodiment, the SE’ module is absent; in this case, the values that will be used to construct the characteristic vector are extracted from the first group of characteristic maps.

Le module XTR’ est identique au module XTR de la figure 1. Il réalise une extraction de valeurs des M cartes de caractéristiques (ou selon l’un des modes de réalisation décrits précédemment), pour un échantillon Pdnà décoder, en fonction de ses coordonnées dans le signal à décoder et du masque MZoj.The XTR' module is identical to the XTR module in Figure 1. It performs value extraction from the M feature maps. (Or according to one of the embodiments described above), for a sample Pd n to be decoded, as a function of its coordinates in the signal to be decoded and of the mask MZo j .

Dans un mode de réalisation, les valeurs extraites constituent le vecteur Zdn. Zdnest un L-uplet, c’est-à-dire qu’il comporte L éléments, ou données zdi. In one embodiment, the extracted values constitute the vector Zd n . Zd n is an L-tuple, that is, it contains L elements, or data zd i.

Dans un mode de réalisation, le module TT’, optionnel, réalise un traitement des valeurs extraites, pour générer le vecteur Zdn. Le module TT’ 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., similaires à ceux effectués par le codeur.In one embodiment, the optional TT' module processes the extracted values to generate the vector Zd n . The TT' module can perform inverse quantization of the data extracted from the feature set. The processing may include other operations, such as filtering, scaling, etc., similar to those performed by the encoder.

Le module NNSYN’ est un réseau de neurones dit de synthèse, défini par K paramètres Wdk, apte à traiter le vecteur Zdn, ou L-Uplet, en entrée, pour générer en sortie un second vecteur représentatif de l’échantillon Pdnà décoder, de manière générale un vecteur comportant A éléments. Selon un mode de réalisation, K=3 et le vecteur de sortie est le triplet (R, G, B) du pixel Pdndécodé. Le module NNSYN’ est de structure identique au module NNSYN, et ses paramètres sont soit identiques si le codage de ses paramètres Wk, soit différents si le codage est réalisé avec pertes.The NNSYN' module is a synthetic neural network, defined by K parameters Wd k , capable of processing the input vector Zd n , or L-tuple, to generate as output a second vector representing the sample Pd n to be decoded, generally a vector containing A elements. In one embodiment, K=3 and the output vector is the triplet (R, G, B) of the decoded pixel Pd n . The NNSYN' module has the same structure as the NNSYN module, and its parameters are either identical if the encoding of its parameters W k , or different if the encoding is lossy.

Lorsque tous les échantillons Pdndu signal ont été décodés, on dispose d’un signal reconstruit Zodj(Pdn) de la zone Zoj.When all the samples Pdnsignal have been decoded, we have a reconstructed Zod signalj(Pdn) of the Zo zonej.

Par ailleurs, le dispositif de décodage DEC peut successivement être mis en œuvre pour décoder toute les zones Zodjafin de reconstituer tous les échantillons à décoder du signal, i.e. de l’image I(Pdn).Furthermore, the DEC decoding device can successively be implemented to decode all the Zod j areas in order to reconstruct all the samples to be decoded of the signal, i.e. of the image I(Pd n ).

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. Le dispositif DEC peut aussi comporter une pluralité de processeurs, les processeurs étant dédiés au décodage parallèle des zones de l'image.The DEC decoding device can be implemented using an electronic device comprising a processor and memory, not shown. Each of the modules mentioned above can then be implemented through the cooperation of the processor and computer program instructions stored in the aforementioned memory and designed to perform the functionalities of the module in question, particularly as described below, when these instructions are executed by the processor. The DEC device can also include multiple processors, with each processor dedicated to the parallel decoding of image areas.

LaFIG. 3illustre un exemple de réseau de neurones artificiels de synthèse utilisé au codage et au décodage dans le cadre de modes de réalisation de l’invention.There FIG. 3 illustrates an example of a synthetic artificial neural network used for encoding and decoding in the context of embodiments of the invention.

Le réseau de neurones artificiels de synthèse utilisé au codage, NNSYN, et le réseau de neurones artificiels de synthèse utilisé au décodage, NNSYN’, 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é.The synthetic artificial neural network used for encoding, NNSYN, and the synthetic artificial neural network used for decoding, NNSYN’, are defined by an identical structure, including for example a plurality of layers of artificial neurons, and by a set of weights and activation functions associated respectively with the artificial neurons of the network concerned.

Le réseau de neurones de synthèse est selon un mode de réalisation un MLP, ou Multi Layer Perceptron, suivi d’une ou plusieurs couches(x) de neurones convolutive(s) C1, … Cn, chacune des couches de neurones convolutives étant associé à un masque de filtrage de taille prédéfinie, par exemple de taille 3x3.The synthetic neural network is, according to one embodiment, an MLP, or Multi Layer Perceptron, followed by one or more layers of convolutional neurons C1 , … Cn , each of the layers of convolutional neurons being associated with a filtering mask of predefined size, for example of size 3x3.

Le MLP est constitué d’une couche d’entrée adaptée au format d’entrée (le L-uplet), optionnellement une ou plusieurs couche(s) cachée(s), et une couche de sortie fournissant un vecteur de sortie intermédiaire Vsn, de manière générale un vecteur comportant A’ éléments.MLP consists of an input layer adapted to the input format (the L-tuple), optionally one or more hidden layer(s), and an output layer providing an intermediate output vector Vs n , generally a vector containing A' elements.

Ainsi, une représentation vectorielle d’un échantillon courant (un vecteur Znou Zdnissu des cartes de caractéristiques FMi/FMSiau codeur ou / au décodeur) est appliquée en entrée (c’est-à-dire sur la couche d’entrée) du MLP qui produit en sortie le vecteur de sortie intermédiaire Vsn.Thus, a vector representation of a current sample (a vector Zn or Zdn from the FMi / FMSi feature maps to the encoder or / to the decoder) is applied to the input (i.e., to the input layer) of the MLP which produces at the output the intermediate output vector Vs n .

La concaténation de tous ces vecteurs de sortie intermédiaire constitue des cartes intermédiaires de valeurs latentes qui sont ensuite traité successivement par le ou les couche(s) de neurones convolutive(s) pour fournir en sortie un ensemble de vecteurs de sortie comportant également A éléments.The concatenation of all these intermediate output vectors constitutes intermediate latent value maps which are then successively processed by the convolutional neuron layer(s) to provide as output a set of output vectors also containing A elements.

Selon un mode de réalisation, A est égale à 3, le vecteur de sortie intermédiaire est un triplet et le vecteur de sortie est le triplet (R, G, B) du pixel P’ncodé puis décodé.According to one embodiment, A is equal to 3, the intermediate output vector is a triplet and the output vector is the triplet (R, G, B) of the pixel P' n encoded then decoded.

La concaténation de tous ces triplets dans une image constitue le signal reconstruit I(Pdn),selon un exemple une image I, ou Zodj(Pdn), selon un exemple la zone décodée Zodj.The concatenation of all these triplets in an image constitutes the reconstructed signal I(Pd n ), according to an example an image I, or Zod j (Pd n ), according to an example the decoded area Zod j .

Au codeur, le réseau de neurones artificiels de synthèse NNSYN est entraîné sur l’image, de sorte à minimiser les différences entre la représentation en entrée de l’image courante I(Pn) et sa représentation I(P’n) en sortie, tout en minimisant également la quantité de données à encoder. Le module EVAL effectue une mesure de performance en ce sens.At the encoder, the NNSYN synthetic artificial neural network is trained on the image, minimizing the differences between the input representation of the current image I(P n ) and its output representation I(P' n ), while also minimizing the amount of data to be encoded. The EVAL module performs a performance measurement in this regard.

Une fois que l’entraînement du codeur est terminé, les paramètres du réseau sont encodés, soit sans pertes, auquel cas le réseau de neurones NNSYN’ est identique à NNSYN, soit avec pertes, auquel cas le réseau NNSYN’ peut être légèrement différent de NNSYN.Once the encoder training is complete, the network parameters are encoded, either losslessly, in which case the NNSYN’ neural network is identical to NNSYN, or lossily, in which case the NNSYN’ network may be slightly different from NNSYN.

En référence à laFIG. 4et à laFIG. 5, nous allons maintenant présenter l’application d’une couche neuronale convolutive Ckdu réseau de neurones de synthèse NNSYN/NNSYN’ à un groupe de cartes de valeurs latentes d’entrée CCE1, CCE2, CCE3, pour obtenir en sortie de la couche neuronale convolutive Ckun groupe de cartes de valeurs latentes de sortie CCS1, CCS2, CCS3.With reference to the FIG. 4 and to the FIG. 5 , we will now present the application of a convolutional neural layer C k of the synthesis neural network NNSYN/NNSYN' to a group of input latent value maps CCE 1 , CCE 2 , CCE 3 , to obtain at the output of the convolutional neural layer C k a group of output latent value maps CCS 1 , CCS 2 , CCS 3 .

Dans l’exemple décrit ici, la couche neuronale convolutive Ckest associée à un noyau de convolution de taille prédéfinie, par exemple de taille 3x3. Cette couche neuronale convolutive Cktransforme trois cartes de valeurs latentes d’entrée CCE1, CCE2, CCE3en trois cartes de valeurs latentes de sortie CCS1, CCS2, CCS3.In the example described here, the convolutional neural layer C k is associated with a convolutional kernel of predefined size, for example of size 3x3. This convolutional neural layer C k transforms three input latent value maps CCE 1 , CCE 2 , CCE 3 into three output latent value maps CCS 1 , CCS 2 , CCS 3 .

L’application de cette couche neuronale convolutive Ckaux trois cartes de valeurs latentes d’entrée CCE1, CCE2, CCE3comprend, lors d’une étape (1), l’obtention d’une région caractéristique Rjcomprenant tous les points des cartes CCE1, CCE2, CCE3colocalisés avec des échantillons appartenant au masque MZojde la zone Zodj. Les points de cette région caractéristique Rjsont appelés points déterminés.The application of this convolutional neural layer C k to the three input latent value maps CCE 1 , CCE 2 , CCE 3 includes, in a step (1), obtaining a characteristic region R j comprising all the points of the maps CCE 1 , CCE 2 , CCE 3 colocalized with samples belonging to the mask MZo j of the Zod j area. The points of this characteristic region R j are called determined points.

Puis, lors d’une étape (2), pour un point des cartes CCS1, CCS2, CCS3colocalisés avec un échantillon Ptnappartenant au masque MZojde la zone à décoder Zodj, un vecteur d’entrée Vconde la couche neuronale convolutive Ckest construit.Then, during a step (2), for a point CCS 1 , CCS 2 , CCS 3 maps colocalized with a sample Pt n belonging to the mask MZo j of the area to be decoded Zod j , an input vector Vco n of the convolutional neural layer C k is constructed.

Ce vecteur d’entrée Vcondépend du point Pandes cartes CCE1, CCE2, CCE3colocalisé avec le point des cartes CCS1, CCS2, CCS3et d’une information contextuelle de ce point Pan. Cette information contextuelle est représentée par un voisinage du point Pan, ce voisinage incluant par définition le point Panlui-même. Dans l’exemple présenté ici, le voisinage utilisé comprend 9 points associés à un masque carré de taille 3x3 centré sur le point Pan.This input vector Vco n depends on the point Pa n of the CCE 1 , CCE 2 , CCE 3 maps co-located with the point CCS 1 , CCS 2 , and CCS 3 maps, along with contextual information about point Pa n, are used. This contextual information is represented by a neighborhood of point Pa n , which by definition includes point Pa n itself. In the example presented here, the neighborhood used comprises 9 points associated with a 3x3 square mask centered on point Pa n .

Cette information contextuelle est également conditionnée par la région caractéristique Rjdans les cartes d’entrée CCE1, CCE2, CCE3. Plus précisément, l’information contextuelle dépend de la localisation du point Panpar rapport à la frontière de la zone Rj. Cette localisation est obtenue par évaluation d'un critère de proximité Cp(Pan) du point Panpar rapport à la frontière de la région caractéristique Rj. Dans l’exemple décrit ici, le critère de proximité Cp(Pan) est la distance euclidienne entre le point Panet la frontière de la région caractéristique Rj. En variante, le critère de proximité Cp(Pan) peut être une distance de Manhattan, de Minkowski ou de Tchebychev. Dans une autre variante, la distance peut être simplement mesurée en nombre de pixels, par exemple en comptant le nombre de pixels suivant les deux directions d’un repère associés à la carte courante. Dans encore une autre variante, le critère de proximité Cp(Pan) peut-être également une quasi-distance ou un écart ou toute autre mesure pertinente indiquant la proximité du point Panà la frontière de la région caractéristique Rj.This contextual information is also conditioned by the feature region R<sub>j</sub> in the input maps CCE<sub>1</sub> , CCE<sub>2</sub> , and CCE<sub> 3 </sub>. More precisely, the contextual information depends on the location of point P<sub>n</sub> relative to the boundary of area R<sub>j</sub> . This location is obtained by evaluating a proximity criterion C<sub>p</sub>(P<sub>n</sub> ) of point P<sub>n</sub> relative to the boundary of feature region R<sub>j</sub> . In the example described here, the proximity criterion C<sub>p</sub>(P<sub>n </sub> ) is the Euclidean distance between point P <sub>n</sub> and the boundary of feature region R<sub> j </sub>. Alternatively, the proximity criterion C<sub>p</sub>(P<sub>n</sub> ) could be a Manhattan, Minkowski, or Chebyshev distance. In another variant, the distance can simply be measured in pixels, for example, by counting the number of pixels along the two directions of a coordinate system associated with the current map. In yet another variant, the proximity criterion Cp(Pa n ) may also be a quasi-distance or a gap or any other relevant measure indicating the proximity of the point Pa n to the boundary of the characteristic region R j .

Deux cas sont alors à distinguer :

  • Dans le premier cas, illustré à laFIG. 4, le critère de proximité Cp(Pan) est supérieur (éventuellement égal) à une distance d (par exemple prédéfinie) et les valeurs de voisinage des cartes d’entrées CCE1, CCE2, CCE3 sont utilisées pour former le vecteur d’entrée Vcon.
  • Dans le deuxième cas, illustré à laFIG. 5, le critère de proximité Cp(Pan) est inférieur à cette distance d (dans l’exemple décrit ici, le point Panest localisé à une distance nulle de la frontière de la région caractéristique Rj). Dans ce cas, le vecteur d’entrée Vconest défini composante par composante. La valeur d’une composante du vecteur d’entrée Vconest égale à la valeur du point associé de la carte d’entrée si ce point appartient à la région caractéristique Rjet à une valeur de remplacement sinon.
Two cases must then be distinguished:
  • In the first case, illustrated in theFIG. 4, the proximity criterion Cp(Pan) is greater than (or possibly equal to) a distance d (for example, predefined) and the neighborhood values of the CCE input maps1, CCE2, CCE3 are used to form the input vector Vcon.
  • In the second case, illustrated in the FIG. 5 The proximity criterion Cp(Pa n ) is less than this distance d (in the example described here, point Pa n is located at zero distance from the boundary of characteristic region R j ). In this case, the input vector Vco n is defined component by component. The value of a component of the input vector Vco n is equal to the value of the associated point on the input map if that point belongs to characteristic region R j , and to a replacement value otherwise.

Lors d’une étape (3), le vecteur d’entrée est traité par la couche neuronale convolutive Ckpour générer en sortie le point des cartes CCS1, CCS2, CCS3. In step (3), the input vector is processed by the convolutional neural layer C k to generate the point as output CCS 1 , CCS 2 , CCS 3 cards.

Dans laFIG. 4et laFIG. 5, les valeurs représentées en gris font partie de la région caractéristique Rjet sont utilisées pour déterminer des composantes du vecteur d’entrée Vcon. Les valeurs représentées en blanc (FIG. 5) n’appartiennent pas à la région caractéristique Rjmais à une autre région Rxet ne pouvant être utilisées pour définir le vecteur d’entrée Vcon, elles sont remplacées par une valeur de remplacement Rp.In the FIG. 4 and the FIG. 5 The values shown in gray are part of the characteristic region R<sub>j</sub> and are used to determine components of the input vector V<sub>co </sub>n . The values shown in white ( FIG. 5 ) do not belong to the characteristic region R j but to another region R x and cannot be used to define the input vector Vco n , they are replaced by a replacement value Rp.

Dans un mode de réalisation, la valeur de remplacement est une valeur constante prédéterminée, par exemple égale à 0.In one embodiment, the replacement value is a predetermined constant value, for example equal to 0.

Dans un autre mode de réalisation, la valeur de remplacement est fonction de la valeur des points du voisinage appartenant à la région caractéristique Rj, par exemple la valeur de remplacement est égale à la valeur du point Pan.Dans un autre mode de réalisation, un ensemble de valeurs de remplacement est calculé en fonction de la valeur des points du voisinage appartenant la région caractéristique Rj. Un réseau de neurone peut être mis en œuvre pour calculer un nombre donné de valeurs de remplacement en fonction des points du voisinage de la région caractéristique Rj.In another embodiment, the replacement value is a function of the values of the neighborhood points belonging to the characteristic region R<sub> j </sub>; for example, the replacement value is equal to the value of point P<sub> n </sub>. In yet another embodiment, a set of replacement values is calculated based on the values of the neighborhood points belonging to the characteristic region R<sub> j </sub>. A neural network can be implemented to calculate a given number of replacement values based on the neighborhood points of the characteristic region R<sub> j </sub>.

Dans les modes de réalisation précédent, la définition du voisinage du point Panest indépendante du critère de proximité Cp(Pan). Dans un autre mode de réalisation et comme cela est représenté à laFIG. 6, la définition du voisinage du point Panpeut dépendre du critère de proximité Cp(Pan).In the preceding embodiments, the definition of the neighborhood of point Pa n is independent of the proximity criterion Cp(Pa n ). In another embodiment, and as represented in the FIG. 6 , the definition of the neighborhood of the point Pa n can depend on the proximity criterion Cp(Pa n ).

Deux cas sont de nouveau à distinguer :

  • Dans le premier cas, le critère de proximité Cp(Pan) est supérieur (éventuellement égal) à la distance d et les valeurs associé à un premier voisinage du point Pan(par exemple identique à celui défini précédemment en lien avec laFIG. 4) des cartes d’entrées CCE1, CCE2, CCE3 sont utilisées pour former le vecteur d’entrée Vcon.
  • Dans le deuxième cas, le critère de proximité Cp(Pan) est inférieur à cette distance d. Dans ce cas un deuxième voisinage du point Panest utilisé. De façon préférentielle, pour respecter la topologie de la couche neuronale convolutive Ck, le nombre de points du premier voisinage est égal au nombre de points du deuxième voisinage. Dans l’exemple présenté à laFIG. 6, le deuxième voisinage est par exemple obtenu à partir du premier voisinage en adaptant la forme de ce dernier à la frontière de la région caractéristique Rjde sorte que les points du deuxième voisinage appartiennent tous à la région caractéristique Rj.
Two cases must again be distinguished:
  • In the first case, the proximity criterion Cp(Pan) is greater than (possibly equal to) the distance d and the values associated with a first neighborhood of point Pan(for example, identical to that defined previously in connection with theFIG. 4) CCE entry cards1, CCE2, CCE3 are used to form the input vector Vcon.
  • In the second case, the proximity criterion Cp(Pa n ) is less than this distance d. In this case, a second neighborhood of the point Pa n is used. Preferably, to respect the topology of the convolutional neural layer C k , the number of points in the first neighborhood is equal to the number of points in the second neighborhood. In the example presented at the FIG. 6 , the second neighborhood is obtained for example from the first neighborhood by adapting the shape of the latter to the boundary of the characteristic region R j so that the points of the second neighborhood all belong to the characteristic region R j .

Une fois déterminé, le vecteur d’entrée est traité, lors d’une étape (3), par la couche neuronale convolutive Ckpour générer en sortie le point des cartes CCS1, CCS2, CCS3 . Once determined, the input vector is processed, in step (3), by the convolutional neural layer C k to generate the point as output CCS 1 , CCS 2 , CCS 3 cards .

LaFIG. 7est un logigramme représentant un exemple de procédé de codage qui peut être mis en œuvre par le dispositif de codage de laFIG. 1lorsque le réseau de neurone de synthèse NNSYN est par exemple celui présenté à laFIG. 3.There FIG. 7 is a flowchart representing an example of a coding process that can be implemented by the coding device of the FIG. 1 when the NNSYN synthesis neural network is, for example, the one presented at the FIG. 3 .

Selon ce mode de réalisation, le signal est une image bidimensionnelle, chaque échantillon à coder est donc un pixel Pnde coordonnées (xn, yn).According to this embodiment, the signal is a two-dimensional image, each sample to be coded is therefore a pixel P n with coordinates (x n , y n ).

L’encodage se déroule en trois phases principales :The encoding process takes place in three main phases:

Dans une première phase, dite phase de segmentation, la segmentation Sg du signal d’entrée I(Pn) en J (supérieur ou égal à 2) zones Zojest réalisée.In a first phase, called the segmentation phase, the segmentation Sg of the input signal I(P n ) into J (greater than or equal to 2) zones Zo j is carried out.

Selon un premier exemple de segmentation, l’image est divisée en J zones régulières, par exemple de taille et de forme identiques (sauf éventuellement sur les bords de l’image). Par exemple, l’image peut être divisée en zones rectangulaires dont les frontières sont horizontales et verticales. Une telle division correspond au concept de « tiles » mis en œuvre par les standards de codage tels que H.264/AVC, H.265/HEVC et H.266/VVC.In a first example of segmentation, the image is divided into J regular zones, for example, of identical size and shape (except possibly at the edges of the image). For example, the image can be divided into rectangular zones with horizontal and vertical boundaries. Such a division corresponds to the concept of "tiles" implemented by encoding standards such as H.264/AVC, H.265/HEVC, and H.266/VVC.

Selon un deuxième exemple de segmentation, l’image est divisée en J zones correspondant à des échantillons (ou des blocs) parcourus dans un ordre lexicographique. Une telle division correspond au concept de « slices » mis en œuvre par les standards de codage tels que H.264/AVC, H.265/HEVC et H.266/VVC.According to a second example of segmentation, the image is divided into J zones corresponding to samples (or blocks) scanned in a lexicographical order. Such a division corresponds to the concept of "slices" implemented by coding standards such as H.264/AVC, H.265/HEVC and H.266/VVC.

Selon un troisième exemple de segmentation, l’image est divisée en zones sémantiques, par exemple un arrière-plan et un premier plan. Pour ce faire, une définition manuelle peut être réalisée par un opérateur. La segmentation peut également être automatique ou semi-automatique selon l’algorithme de segmentation utilisée. Il est à noter qu’il n’existe aucune restriction liée au type d’algorithme de segmentation utilisé.In a third segmentation example, the image is divided into semantic zones, such as a background and a foreground. This can be done manually by an operator. Segmentation can also be automatic or semi-automatic, depending on the segmentation algorithm used. It's worth noting that there are no restrictions related to the type of segmentation algorithm used.

Avantageusement, une telle division en zones permet lors du décodage ultérieur du signal I(Pdn) de paralléliser le décodage des zones à décoder Zodjen répartissant équitablement la charge de décodage sur chacun des décodeurs et/ou processeurs.Advantageously, such a division into zones allows, during the subsequent decoding of the signal I(Pd n ) to parallelize the decoding of the zones to be decoded Zod j by distributing the decoding load equally on each of the decoders and/or processors.

Dans une deuxième phase, dite phase de construction, un apprentissage est réalisé, afin de déterminer, pour un signal d’entrée I(Pn), les valeurs des cartes FMiet des paramètres Wkpour optimiser une fonction de coût globale. L’apprentissage est par exemple réalisé par une descente de gradient, suivie d’une mise à jour des paramètres du réseau de neurones de synthèse NNSYN, des valeurs des cartes de caractéristiques FMi. Comme il est connu dans l’état de l’art, la fonction de coût peut être de type débit-distorsion, ou débit, ou distorsion, ou perceptuelle. Pour mesurer le débit R, il est nécessaire de simuler le codage des J zones ZoLjdes cartes , puis de mesurer le débit de codage associé (la taille du flux B2). Selon un mode de réalisation, on ne simule pas le codage des paramètres Wkcar leur influence est moins importante que celle des cartes de caractéristiques. Selon un mode de réalisation, on simule aussi le codage des paramètres Wket on mesure le débit associé (la taille du flux B1). Pour mesurer la distorsion D, il est nécessaire de simuler le codage puis le décodage d’une partie au moins de l'image I, pour obtenir au moins un pixel P’nrésultant d’une simulation de codage puis de décodage, puis de mesurer l'écart entre cette partie de l'image I(Pn) en entrée et une partie correspondante de l'image I(P’n) codée puis décodée.In a second phase, called the construction phase, a learning process is performed to determine, for an input signal I(P<sub>n</sub> ), the values of the FM <sub>i</sub> maps and the parameters W <sub>k </sub> to optimize an overall cost function. This learning is, for example, carried out by gradient descent, followed by updating the parameters of the NNSYN synthesis neural network and the values of the FM<sub>i</sub> feature maps. As is known in the state of the art, the cost function can be of the rate-distortion type, or rate-distortion type, or perceptual type. To measure the rate R, it is necessary to simulate the encoding of the J ZoL<sub>j</sub> zones of the maps. and then measure the associated coding rate (the size of the B2 stream). In one embodiment, the coding of the Wk parameters is not simulated because their influence is less significant than that of the feature maps. In another embodiment, the coding of the Wk parameters is also simulated, and the associated rate (the size of the B1 stream) is measured. To measure the distortion D, it is necessary to simulate the coding and then the decoding of at least a portion of the image I, to obtain at least one pixel P'n resulting from a coding and then decoding simulation, and then measure the difference between this portion of the input image I( Pn ) and a corresponding portion of the encoded and then decoded image I( P'n ).

Puis lors d’une troisième phase, dite phase de codage, la segmentation Sg, les données de chaque zone et les paramètres Wksont encodés pour produire les valeurs codées Sgc, et Wckavant transmission ou stockage. Ils constituent la représentation compressée du signal d’entrée I(Pn), ce signal compressé pouvant être décodé zone par zone.Then, during a third phase, called the coding phase, the Sg segmentation, the data from each zone and the W k parameters are encoded to produce the Sgc-encoded values, and Wc k before transmission or storage. They constitute the compressed representation of the input signal I(P n ), this compressed signal being able to be decoded zone by zone.

On va maintenant décrire les étapes d’un procédé de codage selon un mode de réalisation de l’invention.We will now describe the steps of a coding process according to one embodiment of the invention.

Lors d’une étape E20, un signal I(Pn) à coder, comportant une pluralité de N échantillons Pn, est fourni en entrée du procédé.During an E20 step, a signal I(P n ) to be coded, comprising a plurality of N samples P n , is provided as input to the process.

Lors d’une étape E21, la segmentation Sg du signal d’entrée I (Pn) en J (supérieur ou égal à 2) zones Zojest réalisée.During an E21 step, the segmentation Sg of the input signal I (P n ) into J (greater than or equal to 2) zones Zo j is carried out.

Lors d’une étape E22, les M cartes FMidu premier groupe sont initialisées. Par la suite, les paramètres Wkdu réseau de neurones de synthèse NNSYN et les valeurs des cartes FMidoivent être optimisés durant la phase de construction.During step E22, the M FM i maps of the first group are initialized. Subsequently, the parameters W k of the NNSYN synthesis neural network and the values of the FM i maps must be optimized during the construction phase.

Selon un mode de réalisation, les cartes FMisont de même résolution que le signal d’entrée I (Pn) et comportent donc chacune le même nombre de valeurs N qu’il y a d’échantillons Pnà coder.According to one embodiment, the FM i cards have the same resolution as the input signal I (P n ) and therefore each have the same number of values N as there are samples P n to be coded.

Selon un mode de réalisation, les cartes FMisont de résolution inférieure ou égale à celle du signal d’entrée I(Pn) et comportent donc, pour au moins l’une d’entre elles, un nombre N’ de valeurs à coder inférieur à N. Selon une variante, la première carte FMiest à la résolution des images et chaque carte suivante est à une résolution moitié de la précédente.According to one embodiment, the FM i cards have a resolution less than or equal to that of the input signal I(P n ) and therefore include, for at least one of them, a number N' of values to be coded less than N. According to a variant, the first FM i card has the resolution of the images and each subsequent card has half the resolution of the previous one.

Selon un mode de réalisation, plusieurs cartes FMisont de même résolution, inférieure à celle du signal d’entrée I(Pn).According to one embodiment, several FM i cards have the same resolution, lower than that of the input signal I(P n ).

Selon un mode de réalisation, les cartes FMisont transformées pour fournir un second groupe de cartes de caractéristiques transformées FMSi. Dans ce mode, les vecteurs caractéristiques sont extraits de préférence des cartes transformées du second groupe, et non directement des cartes du premier groupe. Dans ce mode, les vecteurs caractéristiques sont donc extraits indirectement des cartes du premier groupe. Les cartes du second groupe ne sont pas codées, elles servent uniquement à la construction des vecteurs caractéristiques.In one embodiment, the FM i maps are transformed to provide a second group of transformed feature maps, FMS i . In this embodiment, the feature vectors are preferably extracted from the transformed maps of the second group, and not directly from the maps of the first group. Thus, in this embodiment, the feature vectors are indirectly extracted from the maps of the first group. The maps of the second group are not coded; they are used solely for constructing the feature vectors.

Selon un mode de réalisation, les cartes FMisont initialisées par des valeurs constantes prédéfinies.According to one embodiment, the FM i cards are initialized with predefined constant values.

Selon un autre mode de réalisation, les cartes de caractéristiques sont initialisées par un ensemble de valeurs réelles aléatoires.According to another embodiment, the feature maps are initialized by a set of random real values.

Les cartes de caractéristiques FMidu premier groupe sont par la suite mises à jour, ou raffinées, lors d’une étape E23,par le module de mise à jour MAJ du codeur au cours de son apprentissage.The FM i feature maps of the first group are subsequently updated, or refined, during an E23 step , by the encoder update module during its learning.

Lors d’une étape E24, les J zones des cartes FMidu premier groupe sont codées par le module FMC du codeur. Durant la phase de construction, cette opération est une simulation de codage. Durant la phase de codage, cette opération est un codage effectif et les valeurs codées constituent le flux B2. La simulation peut être identique au codage effectif mais elle peut aussi être différente (par exemple, simplifiée). Pour ce codage, on utilise une technique de prédiction d’une valeur de carte de caractéristiques par son voisinage, comme il sera décrit par exemple à l’appui de laFIG. 11.During an E24 stage, the J zones FM i cards from the first group are encoded by the FMC module of the encoder. During the construction phase, this operation is a coding simulation. During the encoding phase, this operation is the actual encoding, and the encoded values constitute the B2 stream. The simulation can be identical to the actual encoding, but it can also be different (for example, simplified). For this encoding, a technique for predicting a feature card value based on its neighborhood is used, as will be described, for example, in support of the FIG. 11 .

Dans un mode de réalisation, les J zone ZoLjdes carte FMisont codées dans l’ordre d’indexation des J zones et dans un ordre prédéfini des cartes de caractéristiques associées (i.e. , …) et des valeurs de chaque carte par exemple lexicographique. Chaque zones ZoLjdes cartes FMisubit un codage entropique.In one embodiment, the J zone ZoL j of the FM i cards are coded in the indexing order of the J zones and in a predefined order of the associated feature cards (i.e., …) and values for each map, for example lexicographic. Each zone ZoL j of the FM i maps undergoes entropic coding.

Le codage entropique de l’ensemble des zones de l’ensemble des cartes FMiproduit un flux compressé B2 dont le débit est mesuré ultérieurement au cours d’une étape E29.The entropic coding of all zones of the set of FM cards i produces a compressed stream B2 whose throughput is measured later during a step E29.

Lors d’une étape E25, selon un mode de réalisation, les M cartes du premier groupe FMisont transformées par le module SE pour générer des cartes du second groupe FMSià la résolution des images de la séquence d’entrée.In an E25 step, according to one embodiment, the M cards of the first group FM i are transformed by the SE module to generate cards of the second group FMS i at the resolution of the images of the input sequence.

Selon un mode de réalisation, M cartes FMSisont générées.According to one embodiment, M FMS i cards are generated.

Selon un mode de réalisation, chaque carte FMiest transformée en une carte FMSi.According to one embodiment, each FM i card is transformed into an FMS i card.

Selon un mode de réalisation, au moins une carte FMiest de résolution inférieure à celle des images de la séquence à coder et l’opération de transformation comporte un suréchantillonnage pour que la carte FMSi 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 FMSipour 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.).In one embodiment, at least one FM1 map has a lower resolution than the images in the sequence to be encoded, and the transformation operation includes oversampling so that the transformed FM1 map has the same number of samples as the images in the sequence. Oversampling consists of adding values to the FM1 maps to achieve the resolution of the input sequence images. It can be simple (by nearest neighbor replication) or involve interpolation (linear, polynomial, filtered, etc.).

Lors d’une étape E26 et en tenant compte de la segmentation Sg du signal d’entrée I(Pn) en J zones Zoj, des valeurs sont extraites par le module XTR des cartes FMiou éventuellement FMSitransformées.Cette extraction est réalisée en fonction des coordonnées (xn, yn) de l’échantillon Pndu signal d’entrée et éventuellement du masque MZoj. Elle peut aussi être réalisée en fonction de la résolution de la carte considérée.During step E26 and taking into account the segmentation Sg of the input signal I(Pn) in J zones ZojValues are extracted by the XTR module from the FM cardsior possibly FMSitransformed.This extraction is performed based on the coordinates (xn, yn) of sample Pnof the input signal and possibly the MZo maskjIt can also be done according to the resolution of the map in question.

Selon un mode de réalisation, le vecteur Zncaractéristique résulte directement de cette extraction.According to one embodiment, the characteristic vector Z n results directly from this extraction.

Les échantillons à coder sont par exemple traités par ordre séquentiel, de n=1 à n=N.The samples to be coded are, for example, processed in sequential order, from n=1 to n=N.

Selon un mode de réalisation, lors d’une étape E27, le vecteur Zncaractéristique est construit par le module TT à partir des valeurs extraites des cartes FMiou FMSipour chaque échantillon Pnde coordonnées (xn, yn) du signal d’entrée. Le traitement peut comporter une quantification des valeurs extraites des cartes FMiou du vecteur Znconstitué, si nécessaire. Le traitement peut comporter d’autres opérations, comme un filtrage, une mise à l’échelle, l’application d’une fonction quelconque, de préférence monotone, etc.According to one embodiment, during step E27, the vector ZnThe characteristic is constructed by the TT module from the values extracted from the FM cards.ior FMSifor each sample Pncoordinates (xn, yn) of the input signal. The processing may include quantifying the values extracted from the FM cardsior the vector Znconstituted, if necessary. The processing may include other operations, such as filtering, scaling, the application of any function, preferably monotonic, etc.

Dans un mode de réalisation, Znest un M-uplet (z1, z2,…, zJ), constitué des valeurs des cartes FMiou FMSisituées aux coordonnées (xn, yn) du pixel courant Pn, comme il sera illustré à l’appui de laFIG. 8.In one embodiment, Znis an M-tuple (z1, z2,…, zJ), consisting of the FM card valuesior FMSilocated at coordinates (xn, yn) of the current pixel Pn, as will be illustrated in support of theFIG. 8.

Dans un mode de réalisation, Znest un M-uplet construit à partir de valeurs prélevées dans les cartes FMià des coordonnées qui peuvent être différentes selon les cartes. Par exemple, si les cartes FMisont à des résolutions différentes parce qu’elles ont été sous-échantillonnées, les cordonnées sont adaptées (par une mise à l’échelle) pour correspondre à la résolution de chaque carte.In one embodiment, Z <sub>n</sub> is an M-tuple constructed from values taken from the FM<sub>i</sub> maps at coordinates that may differ between maps. For example, if the FM<sub> i </sub> maps have different resolutions because they have been downsampled, the coordinates are adjusted (by scaling) to match the resolution of each map.

Lors d’une étape E28, le vecteur Znest traité par le réseau de neurones de synthèse NNSYN pour générer en sortie un vecteur représentatif de l’échantillon Pnà coder, selon un mode de réalisation le triplet (R, G, B) de l’échantillon P’n(l’échantillon Pncodé puis décodé).During an E28 step, the vector Z n is processed by the NNSYN synthesis neural network to generate as output a vector representative of the sample P n to be coded, according to an embodiment the triplet (R, G, B) of the sample P' n (the sample P n coded then decoded).

La structure et les paramètres Wkdu réseau de neurones de synthèse sont initialisés par exemple lors de la première itération de cette étape. Ces paramètres sont par la suite mis à jour, ou raffinés, au cours de la phase de construction, lors des itérations ultérieures du procédé.The structure and parameters Wk of the synthesis neural network are initialized, for example, during the first iteration of this step. These parameters are subsequently updated, or refined, during the construction phase, in later iterations of the process.

Selon un mode de réalisation, les paramètres du réseau de neurones de synthèse et/ou du réseau de neurones de prédiction 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 d’images).According to one embodiment, the parameters of the synthesis neural network and/or the prediction neural network are initialized by predefined values known to give a satisfactory result (for example, following training on a corpus of images).

Selon un autre mode de réalisation, les paramètres du réseau de neurones de synthèse et/ou du réseau de neurones de prédiction sont initialisés par un ensemble de valeurs aléatoires.According to another embodiment, the parameters of the synthesis neural network and/or the prediction neural network are initialized by a set of random values.

Lors d’une étape E29,les paramètres Wkdu réseau de neurones de synthèse NNSYN sont quantifiés et codés. Durant la phase de construction, cette opération est une simulation de codage. Durant la phase de codage, cette opération est un codage effectif et les valeurs codées constituent le flux B1. La simulation peut être identique au codage effectif mais elle peut aussi être différente (par exemple, simplifiée). On peut utiliser à cette fin toute technique connue, par exemple la norme de codage de réseaux de neurones proposée par le standard MPEG-7 partie 17, aussi appelée NNR (Neural Network Representation). On notera que dans ce cas, il faut choisir la quantité de dégradation que le codage apporte aux poids Wk.During step E29 , the W<sub>k</sub> parameters of the NNSYN synthesis neural network are quantized and encoded. During the construction phase, this operation is a coding simulation. During the encoding phase, this operation is the actual encoding, and the encoded values constitute the B1 stream. The simulation can be identical to the actual encoding, but it can also be different (for example, simplified). Any known technique can be used for this purpose, for example, the neural network coding standard proposed by MPEG-7 Part 17, also called NNR (Neural Network Representation). Note that in this case, the amount of degradation that the encoding introduces to the W <sub>k</sub> weights must be chosen.

Lors d’une étape E30, une mesure de performance est évaluée. During an E30 step, a performance measure is evaluated .

À cet effet, les débits de simulation de codage associés aux cartes de caractéristiques du premier groupe (simulation du flux B2 par codage des J zones des cartes FMi) et optionnellement aux paramètres du (des) réseau(x) de neurones (simulation du flux B1 par codage des paramètres Wk) sont mesurés.For this purpose, the coding simulation rates associated with the feature maps of the first group (simulation of the B2 flow by coding the J zones) are used. FM maps i ) and optionally the parameters of the neural network(s) (simulation of the B1 flow by encoding the parameters W k ) are measured.

Selon un mode de réalisation, la fonction de coût est de type débit-distorsion, notée (D+L*R), où D par exemple l’erreur quadratique mesurée entre le signal d’entrée et le signal décodé (ou l’erreur mesurée sur un sous-ensemble d’échantillon du signal). Selon un autre exemple, D est calculé à partir d’une fonction perceptive telle que le SSIM (pourStructural SIMilarity), ou MSSSIM (pourMulti-scale Structural SIMilarity). Selon un mode de réalisation, R est le débit simulé du flux B1 ; selon un autre mode de réalisation, R est le débit total utilisé pour coder cette image, c’est-à-dire la somme des débits simulés de B1 et B2. L un paramètre qui règle le compromis débit-distorsion. D’autres fonctions de coût sont possibles.According to one embodiment, the cost function is of type distortion-rate, denoted (D+L*R), where D, for example, is the squared error measured between the input signal and the decoded signal (or the error measured on a subset of the signal samples). In another example, D is calculated from a perceptual function such as SSIM (forStructural SIMILarity), or MSSSIM (forMulti-scale Structural SIMilarityIn one embodiment, R is the simulated bit rate of stream B1; in another embodiment, R is the total bit rate used to encode this image, i.e., the sum of the simulated bit rates of B1 and B2. L is a parameter that controls the bit rate-distortion trade-off. Other cost functions are possible.

Tant que la fonction de coût n’a pas atteint son minimum, ou qu’un nombre maximum d’itérations de l’algorithme de minimisation de la fonction de coût a été atteint, la mesure de performance n’est pas satisfaisante, et le procédé est réitéré à partir de l’étape E23. Cette minimisation peut être effectuée par un mécanisme connu comme une descente de gradient avec mise à jour des paramètres au cours de l’étape E23 pour les valeurs des cartes de caractéristiques et E29 pour les paramètres du ou des réseau(x).As long as the cost function has not reached its minimum, or a maximum number of iterations of the cost function minimization algorithm has been reached, the performance measurement is not satisfactory, and the process is repeated from step E23. This minimization can be performed by a mechanism known as gradient descent with parameter updates during step E23 for the feature map values and E29 for the network(s) parameters.

Lors d’une étape EF, si la fonction de coût a atteint son minimum, ou qu’un nombre maximum d’itérations de l’algorithme de minimisation de la fonction de coût a été atteint l’entraînement s’arrête. Si une version codée correspondant à la dernière simulation des paramètres du réseau de neurones de synthèse (Wk) et des cartes de caractéristiques ( ) est disponible, les flux B1 et B2 peuvent en être constitués. Selon un autre mode de réalisation, le codage effectif les paramètres mis à jour du réseau de neurones de synthèse (Wk) et des valeurs des cartes de caractéristiques (FMi) est effectué à cette étape pour produire les paramètres encodés Wcket qui constituent des flux B1 et B2. Par ailleurs, lors de cette étape, le codage de la segmentation Sg est effectuée pour produire une segmentation encodée des J masques MZocjqui constitue le flux B3.During a finite element (FE) step, if the cost function has reached its minimum, or if a maximum number of iterations of the cost function minimization algorithm has been reached, training stops. If a coded version corresponding to the last simulation of the synthetic neural network parameters (W)k) and characteristic maps ( is available, and streams B1 and B2 can be composed of them. According to another embodiment, the effective encoding of the updated parameters of the synthesis neural network (Wk) and feature map values (FMi) is performed at this stage to produce the Wc-encoded parameterskAnd which constitute B1 flows and B2. Furthermore, during this step, the Sg segmentation encoding is performed to produce an encoded segmentation of the J MZoc masksjwhich constitutes the B3 flow.

Le flux B2 comprend des sous-flux correspondant à chaque zone des cartes de caractéristiques. Lors du codage de chaque zone de latente, il est possible, dans un mode préféré de réalisation, de mettre à un endroit identifiable du flux une information de localisation des sous-flux dans le flux global. Cette information de localisation peut être :

  • un pointeur de flux (qui indique l’adresse du début de chaque sous-flux dans le flux global), ou
  • un marqueur (une série de bits interdite par ailleurs, qui permet de parcourir le flux pour trouver le début de chaque sous-flux), ou
  • tout autre moyen permettant d’identifier une sous-partie d’un flux codé.
The B2 stream comprises sub-streams corresponding to each area of the feature maps. When coding each latent zone, it is possible, in a preferred embodiment, to place location information for the sub-streams within the overall stream at an identifiable point in the flow. This location information can be:
  • a flow pointer (which indicates the starting address of each subflow in the overall flow), or
  • a marker (a series of bits otherwise forbidden, which allows traversing the stream to find the beginning of each sub-stream), or
  • any other means of identifying a sub-part of an encoded stream.

Les flux B1 et B2 peuvent être multiplexés et/ou concaténés pour produire un flux final. Selon un mode de réalisation, le flux B3 de la segmentation codée et le flux B1 des paramètres codés du (des) réseau(x) de neurones sont stockés ou transmis avant le flux B2, afin de pouvoir être décodé(s) avant le flux B2.The B1 and B2 streams can be multiplexed and/or concatenated to produce a final stream. In one embodiment, the B3 stream of the coded segmentation and the B1 stream of the coded parameters of the neural network(s) are stored or transmitted before the B2 stream, so that they can be decoded before the B2 stream.

Il est à noter qu’un seul réseau de neurone NNSYN est utilisé pour le codage de chaque zone Zoj.It should be noted that only one NNSYN neural network is used for encoding each Zo j area.

LaFIG. 8représente de manière illustrée un procédé de codage utilisé dans un mode de réalisation de l’invention.There FIG. 8 represents in an illustrated manner a coding method used in an embodiment of the invention.

Dans ce mode de réalisation, les cartes FMigénérées sont au nombre de 4. Dans un mode préféré, elles sont au nombre de 7.In this embodiment, there are 4 FM i cards generated. In a preferred mode, there are 7.

La première carte FM1a la même résolution que l’image I(Pn), et comporte donc WxH variables, où W représente la largeur de l’image en pixels, et H sa hauteur. La seconde carte FM2est de résolution moitié (dans chaque dimension) de la carte FM1. 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 codage et l’apprentissage tout en minimisant le coût de codage.The first FM map 1 has the same resolution as the image I(P n ), and therefore contains WxH variables, where W represents the image width in pixels, and H its height. The second FM map 2 has half the resolution (in each dimension) of the FM map 1. Each additional map has half the resolution of the previous map. This structure reduces the number of variables in the feature maps, which facilitates coding and learning while minimizing coding costs.

La carte FM2est suréchantillonnée par le module SE d’un facteur 2 dans chaque dimension, selon un procédé illustré à l’appui de laFIG. 6. La carte FM3est suréchantillonnée d’un facteur 4 dans chaque dimension, et la carte FM4d’un facteur 8 dans chaque dimension. La carte FM1n’est pas affectée par le sur échantillonnage. (FMS1=FM1).The FM 2 card is oversampled by the SE module by a factor of 2 in each dimension, according to a process illustrated in support of the FIG. 6 The FM 3 map is oversampled by a factor of 4 in each dimension, and the FM 4 map by a factor of 8 in each dimension. The FM 1 map is not affected by the oversampling. (FMS 1 = FM 1 ).

Les cartes FMSirésultantes sont de même résolution que l’image I(Pn), et comportent donc chacune WxH valeurs, où W représente la largeur de l’image en pixels et H sa hauteur (N=WxH).The resulting FMS i maps are of the same resolution as the image I(P n ), and therefore each have WxH values, where W represents the width of the image in pixels and H its height (N=WxH).

D’autres types de structure sont possibles, par exemple on peut utiliser un taux de réduction différent d’un demi entre les cartes (un quart, ou un tiers, etc.).Other types of structure are possible, for example one can use a different reduction rate than half between the cards (a quarter, or a third, etc.).

Dans ce mode de réalisation, le vecteur Znest un 4-uplet (z1...z4) constitué des valeurs extraites des cartes FMSisituées aux coordonnées (xn, yn) du pixel courant Pn. Le vecteur Znconstitué des valeurs extraites (quantifiées) des cartes FMSiest traité par le réseau de neurones de synthèse NNSYN pour générer en sortie un second vecteur, selon l’exemple le vecteur de sortie est le triplet (R, G, B) du pixel P’ncodé puis décodé. Le triplet est inséré dans l’image décodée I(P’n) aux positions (xn, yn) des composantes couleur (R’, G’, B’).In this embodiment, the vector Z <sub>n</sub> is a 4-tuple (z <sub>1</sub> ...z <sub>4</sub> ) consisting of the values extracted from the FMS maps i located at the coordinates (x <sub>n</sub> , y <sub>n </sub>) of the current pixel P <sub>n</sub> . The vector Z <sub>n </sub>, consisting of the extracted (quantized) values from the FMS maps i, is processed by the NNSYN synthesis neural network to generate a second output vector. In this example, the output vector is the triplet (R, G, B) of the encoded and then decoded pixel P'<sub> n </sub>. The triplet is inserted into the decoded image I(P'<sub> n </sub>) at the positions (x <sub>n</sub> , y <sub>n</sub> ) of the color components (R', G', B').

Dans un autre mode de réalisation, non représenté, le vecteur Znest extrait directement des couches FMi, aux positions recalculées en fonction de la taille des cartes, puis les valeurs extraites sont éventuellement traitées et quantifiées après extraction.In another embodiment, not shown, the vector Z n is extracted directly from the FM i layers, at positions recalculated according to the size of the maps, then the extracted values are possibly processed and quantified after extraction.

LaFIG. 9est un logigramme représentant un exemple de procédé de décodage d’une zone à décoder Zodjqui peut être mis en œuvre par le dispositif de décodage DEC de laFIG. 2lorsque le réseau de neurone de synthèse NNSYN’ est par exemple celui présenté à laFIG. 3.There FIG. 9 is a flowchart representing an example of a decoding process for a decoded zone Zod j that can be implemented by the DEC decoding device of the FIG. 2 when the NNSYN' synthetic neural network is, for example, the one presented at the FIG. 3 .

Lors d’une étape F20, le flux B1, une partie du flux B2 (celle correspondante aux cartes de caractéristiques de la zone Zodj) et le flux B3 sont extraits du flux encodé. Ils contiennent respectivement des paramètres Wck, une segmentation Sgc et des représentations codées des M cartes du premier groupe représentatives de la zone à décoder Zodj.During step F20, stream B1, a portion of stream B2 (corresponding to the feature maps of zone Zod j ), and stream B3 are extracted from the encoded stream. They contain, respectively, Wc k parameters, an Sgc segmentation, and encoded representations. M maps of the first group representative of the area to be decoded Zod j .

Lors d’une étape F21, un masque de segmentation MZojest généré par décodage des valeurs de la segmentation encodée.During an F21 step, an MZo j segmentation mask is generated by decoding the values of the encoded segmentation.

Lors d’une étape F22, les M cartes sont générées par décodage des valeurs . Dans un mode de réalisation, les cartes sont décodées dans l’ordre ( , ,… ), et les valeurs de chaque carte dans un ordre prédéfini, par exemple lexicographique, en prenant éventuellement (en fonction de la technique de codage mise en œuvre par l’encodeur ENC) en compte le masque MZoj.During stage F22, the M cards are generated by decoding the values In one embodiment, the cards are decoded in order ( , ,… ), and the values of each card in a predefined order, for example lexicographical, possibly taking into account (depending on the coding technique implemented by the ENC encoder) the MZo j mask.

Selon des modes de réalisation tels que décrits pour le codeur :

  • Les cartes sont de même résolution que le signal I(Pdn) à reconstituer, c’est-à-dire qu’elles comportent N=WxH valeurs.
  • Les cartes sont à une résolution inférieure ou égale à celle du signal I(Pdn) à reconstituer.
  • Plusieurs cartes sont de même résolution, inférieure à la résolution du signal.
According to embodiments as described for the encoder:
  • The maps are of the same resolution as the signal I(Pd n ) to be reconstructed, that is to say they have N=WxH values.
  • The maps are at a resolution less than or equal to that of the signal I(Pd n ) to be reconstructed.
  • Several cards are of the same resolution, lower than the resolution of the signal.

Lors d’une étape F23, selon un mode de réalisation, les M cartes du premier groupe sont transformées par le module SE’ pour générer des cartes du second groupe à la résolution des images d’entrée. Cette étape est similaire à l’étape E25 qui a été décrite pour le codeur à l’appui de laFIG. 5, et les modes de réalisation s’appliquent. Notamment :During step F23, according to one embodiment, the M cards of the first group are transformed by the SE' module to generate maps of the second group to the resolution of the input images. This step is similar to step E25, which was described for the encoder supporting the FIG. 5 , and the embodiments apply. In particular:

Selon un mode de réalisation, M cartes sont générées.According to one embodiment, M cards are generated.

Selon un mode de réalisation, chaque carte est transformée en une carte .According to one embodiment, each card is transformed into a map .

Selon un mode de réalisation, au moins une carte est de résolution inférieure à celle des images de l’image à 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 l’image d’entrée. Le suréchantillonnage consiste à rajouter des valeurs dans les cartes pour atteindre la résolution de l’image d’entrée. Il peut être simple (par réplication du plus proche voisin) ou comporter une interpolation (linéaire, polynomiale, par filtrage, etc.).According to one embodiment, at least one map is of lower resolution than the images of the image to be encoded, and the transformation operation includes oversampling so that the map The transformed image contains the same number of samples as the input image. Oversampling involves adding values to the maps to achieve the resolution of the input image. It can be simple (by nearest neighbor replication) or involve interpolation (linear, polynomial, by filtering, etc.).

La transformation peut optionnellement comporter une quantification inverse des valeurs extraites, si nécessaire. Cependant la quantification inverse n’est pas obligatoire.The transformation may optionally include inverse quantization of the extracted values, if necessary. However, inverse quantization is not mandatory.

Lors d’une étape F24, des valeurs sont extraites par le module XTR’ des cartes ou éventuellement transformées.Cette extraction est réalisée en fonction des coordonnées (xn, yn) d’un échantillon Pndu signal d’entrée. Elle peut aussi être réalisée en fonction de la résolution de la carte considérée. Cette étape est similaire à l’étape E26 qui a été décrite pour le codeur à l’appui de laFIG. 7, et les modes de réalisation s’appliquent.During an F24 stage, values are extracted by the XTR module from the cards or possibly transformed.This extraction is performed based on the coordinates (xn, yn) of a sample Pnof the input signal. It can also be performed depending on the resolution of the card in question. This step is similar to step E26, which was described for the encoder supporting theFIG. 7, and the embodiments apply.

Dans un mode de réalisation, Zdnest un M-uplet (z1, z2,…, zJ), constitué des valeurs des cartes ou situées aux coordonnées (xn, yn) d’un pixel courant Pdn, comme il sera illustré à l’appui de laFIG. 10.In one embodiment, Zdnis an M-tuple (z1, z2,…, zJ), consisting of the card values Or located at coordinates (xn, yn) of a current pixel Pdn, as will be illustrated in support of theFIG. 10.

Les échantillons à décoder sont par exemple traités par ordre séquentiel relativement au masque MZoj.The samples to be decoded are, for example, processed in sequential order relative to the MZo j mask.

Selon un mode de réalisation, lors d’une étape F35, un vecteur Zdnest construit par le module TT’ à partir des valeurs extraites des cartes du premier groupe ou des cartes du second groupe, pour chaque échantillon Pdnde coordonnées (xn, yn) à décoder, en fonction des coordonnées (xn, yn). Cette étape est similaire à l’étape E27 qui a été décrite pour le codeur à l’appui de laFIG. 7et les modes de réalisation décrits s’appliquent. L’extraction peut comporter une quantification inverse des valeurs extraites ou du vecteur Zdnconstitué, si nécessaire.According to one embodiment, during step F35, a vector Zd n is constructed by the module TT' from the values extracted from the maps from the first group or the cards of the second group, for each sample Pd n of coordinates (x n , y n ) to be decoded, as a function of the coordinates (x n , y n ). This step is similar to step E27 which was described for the encoder supporting the FIG. 7 and the described embodiments apply. The extraction may include inverse quantization of the extracted values or of the resulting vector Zd n , if necessary.

Lors d’une étape F26,les paramètres Wdkdu réseau de neurones de synthèse NNSYN’ sont générés par décodage des valeurs Wckdu flux B1. On peut utiliser à cette fin toute technique connue de décodage correspondant à celle de codage qui a été utilisée par le codeur. Le réseau de neurones de synthèse NNSYN’ est semblable au réseau de synthèse NNSYN, c’est-à-dire qu’il est de même structure et comporte les mêmes paramètres, au codage près, qui peut être réalisé avec ou sans pertes.During step F26 , the Wd k parameters of the NNSYN' synthesis neural network are generated by decoding the Wc k values of the B1 stream. Any known decoding technique corresponding to the encoding technique used by the encoder can be used for this purpose. The NNSYN' synthesis neural network is similar to the NNSYN synthesis network; that is, it has the same structure and parameters, except for the encoding, which can be performed with or without loss.

Selon un mode de réalisation, le flux B1 est décodé avant les flux B2 et B3, afin de pouvoir disposer du réseau de neurones de synthèse NNSYN’ avant de commencer à décoder les échantillons. De même, le flux B3 est décodé avant le flux B2 afin de disposer du masque de la zone à décoder avant de commencer à décoder les échantillons.In one embodiment, stream B1 is decoded before streams B2 and B3, so that the NNSYN’ synthesis neural network is available before decoding the samples. Similarly, stream B3 is decoded before stream B2 so that the mask of the region to be decoded is available before decoding the samples.

Lors d’une étape F27, le vecteur Zdnest traité par le réseau de neurones de synthèse NNSYN' pour générer en sortie un second vecteur représentatif de l’échantillon Pdnà décoder, selon un mode de réalisation un triplet qui est injecté dans l’image de la zone décodée Zodj(Pdn) aux positions (xn, yn) des composantes couleur (Rd, Gd, Bd). Cette étape est similaire à l’étape E28 qui a été décrite pour le codeur à l’appui de laFIG. 5.During step F27, the vector Zd n is processed by the NNSYN' synthesis neural network to generate a second vector representing the sample Pd n to be decoded, in one embodiment a triplet which is injected into the image of the decoded area Zod j (Pd n ) at the positions (x n , y n ) of the color components (Rd, Gd , Bd ). This step is similar to step E28 which was described for the encoder supporting the FIG. 5 .

Lorsque tous les échantillons du signal ont été traités, le signal décodé correspondant par exemple à la zone Zodj(Pdn), est disponible.When all the signal samples have been processed, the decoded signal corresponding for example to the Zod j (Pd n ) zone is available.

Il est à noter qu’un seul réseau de neurone NNSYN’ est utilisé lors du décodage quelle que soit la zone Zodjdécodée.It should be noted that only one neural network NNSYN' is used during decoding regardless of the Zod j area being decoded.

LaFIG. 10représente de manière illustrée un procédé de décodage d’une zone Zodjutilisé dans un mode de réalisation de l’invention.There FIG. 10 represents in an illustrated manner a method of decoding a Zod j zone used in an embodiment of the invention.

Dans ce mode de réalisation, les cartes décodées sont au nombre de 4. Dans un mode préféré, elles sont au nombre de 7.In this embodiment, the cards are decoded There are 4 of them. In a preferred mode, there are 7.

Dans ce mode de réalisation, les cartes décodées sont représentatives seulement de la zone Zodj. En d’autres termes, seulement les données de la zone ZoLj(correspondant dans le domaine latent à la zone Zodj) ont été décodées.In this embodiment, the cards are decoded are representative only of the Zod j zone. In other words, only the data from the ZoL j zone (corresponding in the latent domain to the Zod j zone) have been decoded.

Dans ce mode de réalisation, la première carte a la même résolution que l’image I, et comporte donc WxH variables, où W représente la largeur de l’image en pixels, et H sa hauteur. La seconde carte est de résolution moitié (dans chaque dimension) de la carte . 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.In this embodiment, the first card has the same resolution as image I, and therefore has variable WxH, where W represents the width of the image in pixels, and H its height. The second map is half the resolution (in each dimension) of the map Each additional map has half the resolution of the previous map. This structure reduces the number of variables in the feature maps, which facilitates decoding while minimizing coding costs.

La carte est suréchantillonnée d’un facteur 2 dans chaque dimension, selon tout procédé de suréchantillonnage à la portée de l'homme du métier. La carte est suréchantillonnée d’un facteur 4 dans chaque dimension, et la carte d’un facteur 8 dans chaque dimension.The map is oversampled by a factor of 2 in each dimension, using any oversampling method available to a person skilled in the art. The map is oversampled by a factor of 4 in each dimension, and the map by a factor of 8 in each dimension.

Les cartes sont de même résolution que l’image à décoder, et comportent donc WxH valeurs, où W représente la largeur de l’image en pixels, et H sa hauteur.The maps are of the same resolution as the image to be decoded, and therefore include WxH values, where W represents the width of the image in pixels, and H its height.

Dans ce mode de réalisation, le vecteur Zdnest un 4-uplet (z1...z4) constitué des valeurs des cartes situées aux coordonnées (xn, yn) du pixel courant Pdn. Le vecteur Zdnest optionnellement déquantifié puis traité par le réseau de neurones de synthèse NNSYN’ pour générer en sortie le triplet (R, G, B) représentatif de l’échantillon Pdnà décoder. Le triplet (R, G, B) est inséré dans l’image décodée I(Pdn) aux coordonnées (xn, yn) dans les composantes couleur (Rd, Gd, Bd).In this embodiment, the vector Zd n is a 4-tuple (z 1 ...z 4 ) consisting of the values of the maps located at the coordinates (x <sub>n </sub>, y<sub>n</sub> ) of the current pixel Pd <sub>n</sub> . The vector Zd <sub>n</sub> is optionally dequantized and then processed by the NNSYN' synthesis neural network to generate the (R, G, B) triplet representative of the sample Pd<sub> n </sub> to be decoded. The (R, G, B) triplet is inserted into the decoded image I(Pd <sub>n</sub> ) at the coordinates (x <sub>n </sub>, y <sub>n</sub> ) in the color components (Rd, Gd, Bd).

LaFIG. 11est un logigramme représentant une méthode de codage de cartes de caractéristiques qui peut être mis en œuvre par le dispositif de codage de laFIG. 1et par le procédé de codage de laFIG. 5.There FIG. 11 is a flowchart representing a method for encoding feature cards that can be implemented by the encoding device of the FIG. 1 and by the coding process of the FIG. 5 .

Ces étapes constituent des sous-étapes de l’étape E30 décrite précédemment à l’appui de la figure 7. Elles ont pour but de coder une valeur courante Vnd’un point d’une zone caractéristique d’une carte de caractéristiques du premier groupe en cours de traitement en utilisant des valeurs du voisinage.These steps are substeps of step E30 described previously, supported by Figure 7. Their purpose is to encode a current value Vnfrom a point in a characteristic area of a characteristics map of the first group currently being processed using neighborhood values.

Lors d’une sous-étape E301, un vecteur de voisinage Cnest établi, comprenant des valeurs voisines de la valeur Vn. Ces valeurs voisines peuvent être situées dans la même carte ou/et dans une carte différente de la pluralité M de cartes .Ce vecteur de voisinage est constitué d’un nombre C de valeurs, ou données, correspondant à des valeurs de voisinage (par exemple, C=10). Ces valeurs doivent être connues du codeur et du décodeur, elles doivent donc se situer dans un voisinage causal de la valeur Vn.During substep E301, a neighborhood vector Cnis established, including values close to the value VnThese neighboring values can be located in the same map and/or in a different map from the plurality M of maps .This neighborhood vector consists of of a number C of values, or data, corresponding to neighborhood values (for example, C=10). These values must be known to the encoder and the decoder; therefore, they must be in a causal neighborhood of the value Vn.

Selon un premier mode de réalisation, ces valeurs sont utilisées pour déterminer le contexte d’un codeur entropique pour coder la valeur courante lors d’une étape E303. Ce codeur peut être un codeur de type CABAC (Context-adaptive binary arithmetic coding). Ce type de codeur est bien connu de l’homme du métier. Il est notamment utilisé dans la norme de compression vidéo H.265/HEVC. Il s'agit d'un codeur arithmétique dont la compression est sans perte. Il décompose tous les symboles non-binaires en symboles binaires. Puis, pour chaque bit, le codeur sélectionne le modèle de probabilité le plus adapté et utilise un contexte pour optimiser l'estimation de la probabilité. Ce contexte peut être défini par des informations des éléments voisins. Un codage arithmétique est ensuite appliqué pour compresser les données résultantes. Comme il est connu de l’homme du métier, il y a plusieurs façons d’utiliser le vecteur de voisinage pour produire une information de contexte. Par exemple, on peut compter le nombre de valeurs voisines différentes de zéro, et associer un contexte à chaque nombre. Alternativement, on peut effectuer des comparaisons entre plusieurs valeurs voisines, et associer un contexte donné à une configuration d’ordre entre les valeurs voisines, par exemple en classant les valeurs voisines par ordre croissant, et en associant un contexte à chaque ordre possible.According to a first embodiment, these values are used to determine the context of an entropy encoder to encode the current value during an E303 step. This encoder can be a CABAC (Context-Adaptive Binary Arithmetic Coding) encoder. This type of encoder is well known to those skilled in the art. It is notably used in the H.265/HEVC video compression standard. It is an arithmetic encoder with lossless compression. It decomposes all non-binary symbols into binary symbols. Then, for each bit, the encoder selects the most suitable probability model and uses a context to optimize the probability estimation. This context can be defined by information from neighboring elements. Arithmetic coding is then applied to compress the resulting data. As is known to those skilled in the art, there are several ways to use the neighborhood vector to produce context information. For example, one can count the number of neighboring values that are not zero and associate a context with each number. Alternatively, one can perform comparisons between several neighboring values and associate a given context with a configuration of order between the neighboring values, for example by ranking the neighboring values in ascending order and associating a context with each possible order.

Dans un deuxième mode de réalisation, le voisinage est utilisé pour prédire, au cours d’une étape E302,la valeur courante à partir d’un modèle autorégressif. On rappelle qu’un modèle autorégressif prédit un échantillon d’une série par ses valeurs passées. Dans ce mode, les valeurs passées sont constituées par le contexte, et la différence entre la variable prédite et la valeur réelle est quantifiée puis codée de manière entropique au cours de l’étape E303.In a second embodiment, the neighborhood is used to predict, during step E302 , the current value from an autoregressive model. Recall that an autoregressive model predicts a sample from a series based on its past values. In this embodiment, the past values are constituted by the context, and the difference between the predicted variable and the actual value is quantified and then entropically coded during step E303.

À l’issue du procédé, la valeur codée courante Vcnde la carte en cours de traitement est codée.At the end of the process, the current coded value Vcnof the map currently being processed is coded.

LaFIG. 12est un logigramme représentant une méthode de décodage de cartes de caractéristiques qui peut être mis en œuvre par le dispositif de décodage de laFIG. 2et par le procédé de décodage de laFIG. 7 There FIG. 12 is a flowchart representing a method for decoding feature cards that can be implemented by the decoding device of the FIG. 2 and by the decoding process of the FIG. 7

Ces étapes constituent des sous-étapes de l’étape F22 décrite précédemment à l’appui de la figure 7. Elles ont pour but de décoder une valeur courante d’un point d’une zone caractéristique d’une carte de caractéristiques du premier groupe en cours de traitement en utilisant des valeurs du voisinage.These steps are substeps of step F22 described previously in Figure 7. Their purpose is to decode a current value of a point in a characteristic area of a characteristics map of the first group currently being processed using neighborhood values.

Lors d’une sous-étape F221, un vecteur de voisinage Cdnest établi, comprenant des valeurs voisines de la valeur Vdn. Cette étape est similaire à l’étape E301 précédemment décrite et les mêmes modes de réalisation s’appliquent. Ce vecteur de voisinage est constitué d’un nombre C de valeurs, ou données, correspondant à des valeurs de voisinage (par exemple, C=10) situées dans la même carte ou/et dans une carte différente de la pluralité M de cartes d’un point d’une zone caractéristique d’une carte de caractéristiques . Ces valeurs se situant dans un voisinage causal de la valeur Vdnsont connues du décodeur.During a substep F221, a neighborhood vector Cdnis established, including values close to the value VdnThis step is similar to step E301 described previously and the same embodiments apply. This neighborhood vector consists of of a number C of values, or data, corresponding to neighborhood values (for example, C=10) located in the same map and/or in a different map of the plurality M of maps of a point in a characteristic area of a characteristics map These values are located in a causal neighborhood of the value Vdnare known to the decoder.

Selon un premier mode de réalisation, ces valeurs sont utilisées pour déterminer le contexte d’un décodeur entropique pour décoder la valeur courante lors d’une étape F223. Ce décodage est similaire à celui qui a été utilisé au codeur, par exemple CABAC. L’utilisation du voisinage pour produire une information de contexte est similaire à celle qui a été choisie au codeur. Par exemple, on peut compter le nombre de valeurs voisines différentes de zéro, et associer un contexte à chaque nombre. Alternativement, on peut effectuer des comparaisons entre plusieurs valeurs voisines, et associer un contexte donné à une configuration d’ordre entre les valeurs voisines, par exemple en classant les valeurs voisines par ordre croissant, et en associant à contexte à chaque ordre possible.According to a first embodiment, these values are used to determine the context of an entropy decoder for decoding the current value during an F223 step. This decoding is similar to that used in the encoder, for example, CABAC. The use of the neighborhood to produce context information is similar to that chosen for the encoder. For example, one can count the number of non-zero neighboring values and associate a context with each number. Alternatively, one can perform comparisons between several neighboring values and associate a given context with an ordering configuration among the neighboring values, for example, by sorting the neighboring values in ascending order and associating a context with each possible order.

Dans un deuxième mode de réalisation, le voisinage est utilisé pour prédire au cours d’une étape F222 la valeur courante à partir d’un modèle autorégressif. Dans ce mode, les valeurs passées sont constituées par le contexte, et la différence entre la variable prédite et la valeur réelle est quantifiée puis codée de manière entropique au cours de l’étape F223.In a second embodiment, the neighborhood is used to predict the current value from an autoregressive model during step F222. In this mode, the past values are constituted by the context, and the difference between the predicted variable and the actual value is quantified and then entropically coded during step F223.

À l’issue du procédé, la valeur décodée courante Vdnde la carte FMdien cours de traitement est décodée.At the end of the process, the current decoded value Vd n of the FMd i card being processed is decoded.

On notera par ailleurs que l’invention n’est pas limitée aux modes de réalisation décrits précédemment. Il apparaîtra en effet à l'homme de l'art que diverses modifications peuvent être apportées aux modes de réalisation décrits ci-dessus, à la lumière de l'enseignement qui vient de lui être divulgué.It should also be noted that the invention is not limited to the embodiments described above. Indeed, it will be apparent to those skilled in the art that various modifications can be made to the embodiments described above, in light of the information just disclosed to them.

Par exemple, les réseaux de neurones de synthèse NNSYN/NNSYN’ peuvent être des réseaux de neurones récurrents.For example, NNSYN/NNSYN’ synthetic neural networks can be recurrent neural networks.

Dans un autre exemple, les réseaux de neurones de synthèses peuvent être constitués d’un ou plusieurs réseau(x) de neurones convolutif(s), suivi d’un MLP et suivi encore d’un ou plusieurs réseau(x) de neurones convolutif(s), chacun des réseaux de neurones convolutifs étant associé à un noyau de convolution de taille prédéfinie, par exemple de taille 3x3. Dans ces exemples, l’obtention des vecteurs Zn/Zdnest adaptée à la topologie des réseaux de neurones de synthèse NNSYN/NNSYN’ de façon similaire à l’adaptation du vecteur d’entrée Vconprésentée en référence aux figures 4 à 6.In another example, synthetic neural networks can consist of one or more convolutional neural networks, followed by a multi-level programming (MLP) network, and then followed by one or more convolutional neural networks, each convolutional neural network being associated with a convolutional kernel of predefined size, for example, 3x3. In these examples, obtaining the vectors Z <sub>n</sub> /Z<sub>d </sub> is adapted to the topology of the synthetic neural networks NNSYN/NNSYN' in a similar way to adapting the input vector V<sub>co</sub> n shown with reference to Figures 4 to 6.

Dans la présentation détaillée de l’invention qui est faite précédemment, les termes utilisés ne doivent pas être interprétés comme limitant l’invention aux modes de réalisation exposés dans la présente description, mais doivent être interprétés pour y inclure tous les équivalents dont la prévision est à la portée de l'homme de l'art en appliquant ses connaissances générales à la mise en œuvre de l'enseignement qui vient de lui être divulgué.In the detailed presentation of the invention given above, the terms used shall not be interpreted as limiting the invention to the embodiments set forth in this description, but shall be interpreted as including all equivalents which can be foreseen by a person skilled in the art by applying their general knowledge to the implementation of the teaching which has just been disclosed to them.

Claims (14)

Procédé de codage d’une zone (Zoj) d’un signal (I(Pn)), dite zone à coder, ladite zone à coder comprenant une pluralité d’échantillons (Pn) à coder, ledit procédé de codage comportant les étapes suivantes :
  • l’obtention d’un premier groupe d’au moins une carte de valeurs latentes (FMi) représentatif dudit signal (I(Pn)),
  • l’obtention d’un masque (MZoj) dans ledit signal (I(Pn)) de ladite zone à coder (Zoj),
  • pour au moins un échantillon de ladite zone à coder (Zoj), dit échantillon courant (Pn), associé à une position (xn, yn) dans ledit signal (I(Pn)) à coder :
    • la construction d’un vecteur caractéristique (Zn) à partir desdites cartes de valeurs latentes (FMi) dudit premier groupe, en fonction de ladite position (xn, yn) dudit échantillon courant (Pn),
    • le traitement dudit vecteur caractéristique (Zn) par un réseau de neurones artificiels, dit réseau de neurones de synthèse (NNSYN), ledit réseau de neurones de synthèse étant défini par un ensemble de paramètres (Wk) et comprenant au moins une couche neuronale de synthèse (ck) pour obtenir, en sortie dudit réseau de neurone de synthèse, un vecteur (P’n) représentatif d’une valeur décodée de l’échantillon courant (Pn),
    • la mise à jour d'au moins une valeur d’une desdites cartes de valeurs latentes dudit premier groupe et/ou d’au moins un paramètre dudit réseau de neurones de synthèse, en fonction d’une mesure de performance de codage,
  • l’obtention d’un deuxième groupe de cartes de valeurs latentes représentatives d’au moins ladite zone à coder (Zoj) à partir dudit masque (MZoj),
  • le codage du deuxième groupe de cartes de valeurs latentes ( ),
  • le codage dudit masque (MZoj), et
  • le codage dudit ensemble de paramètres (Wk) dudit réseau de neurones de synthèse.
ledit traitement comportant l’application de ladite au moins une couche neuronale de synthèse pour transformer au moins un groupe de cartes latentes d’entrée (CCE), dite cartes d’entrée, en au moins un groupe de cartes latentes de sortie (CCS), dite cartes de sortie, ladite application comprenant :
  • l’obtention d’une région caractéristique (Rj) de ladite zone à décoder dans lesdites cartes d’entrée à partir dudit masque (MZoj), ladite région caractéristique (Rj) comprenant les points associés audit masque,
  • pour au moins un point (Ptn) de ladite zone à décoder, dit point à décoder :
    • l’obtention d’un point associé (Pan) audit point à décoder (Ptn) dans au moins une des cartes latentes d’entrée (CCE),
    • l’évaluation d'un critère de proximité dudit point associé (Pan) par rapport à une frontière de ladite région caractéristique,
    • la construction d’un vecteur d’entrée (Vcon) de ladite couche neuronale de synthèse à partir d’un voisinage dudit point associé (Pan) et de ladite évaluation dudit critère de proximité, et
    • le traitement dudit vecteur d’entrée par ladite couche neuronale de synthèse pour obtenir un point (Psn) d’au moins une des cartes de sortie,
Method for coding a zone (Zoj) of a signal (I(Pn)), said coding area, said coding area comprising a plurality of samples (Pn) to be coded, said coding process comprising the following steps:
  • obtaining a first group of at least one latent value map (FM i ) representative of said signal (I(P n )),
  • obtaining a mask (MZo j ) in said signal (I(P n )) of said zone to be coded (Zo j ),
  • for at least one sample of said zone to be coded (Zo j ), called current sample (P n ), associated with a position (x n , y n ) in said signal (I(P n )) to be coded:
    • the construction of a characteristic vector (Z n ) from said latent value maps (FM i ) of said first group, as a function of said position (x n , y n ) of said current sample (P n ),
    • the processing of said characteristic vector (Z n ) by an artificial neural network, called a synthetic neural network (NNSYN), said synthetic neural network being defined by a set of parameters (Wk) and comprising at least one synthetic neural layer (c k ) to obtain, at the output of said synthetic neural network, a vector (P' n ) representative of a decoded value of the current sample (P n ),
    • the updating of at least one value of one of said latent value maps of said first group and/or of at least one parameter of said synthetic neural network, as a function of a coding performance measure,
  • obtaining a second group of latent value maps representing at least said zone to be coded (Zo j ) from said mask (MZo j ),
  • the encoding of the second group of latent value maps ( ),
  • the encoding of said mask (MZo j ), and
  • the coding of said set of parameters (W k ) of said synthetic neural network.
said processing comprising the application of said at least one neural synthesis layer to transform at least one group of latent input maps (LIMs), referred to as input maps, into at least one group of latent output maps (LIMs), referred to as output maps, said application comprising:
  • obtaining a characteristic region (R j ) of said zone to be decoded in said input maps from said mask (MZo j ), said characteristic region (R j ) comprising the points associated with said mask,
  • for at least one point (Pt n ) of said area to be decoded, called point to be decoded:
    • obtaining an associated point (Pa n ) to the said point to be decoded (Pt n ) in at least one of the latent input maps (CCE),
    • the evaluation of a proximity criterion of said associated point (Pa n ) with respect to a boundary of said characteristic region,
    • the construction of an input vector (Vco n ) of said neural synthesis layer from a neighborhood of said associated point (Pa n ) and said evaluation of said proximity criterion, and
    • the processing of said input vector by said neural synthesis layer to obtain a point (Ps n ) of at least one of the output maps,
Procédé de décodage d’une zone (Zodj), dite zone à décoder, d’un signal comprenant au moins deux zones, ladite zone à décoder comprenant une pluralité d’échantillons (Pdn) à décoder, ledit procédé de décodage comportant les étapes suivantes :
  • le décodage (F22) d’un groupe de cartes de valeurs latentes ( ) représentatives de ladite zone à décoder (Zodj) dudit signal,
  • l’obtention (F20) d’un masque (MZoj) de ladite zone à décoder dans ledit signal (I(Pn)),
  • le décodage (F26) d’un ensemble de paramètres (Wdk) représentatifs d’un réseau de neurones (NNSYN’), dit réseau de neurones de synthèse comprenant au moins une couche neuronale de synthèse,
  • le traitement (F27) dudit groupe de cartes latentes décodées ( ) par ledit réseau de neurone de synthèse (NNSYN’) pour produire en sortie dudit réseau de neurone de synthèse au moins ladite zone à décoder (Zodj), ledit traitement comportant l’application de ladite au moins une couche neuronale de synthèse pour transformer au moins un groupe de cartes latentes d’entrée (CCE), dite cartes d’entrée, en au moins un groupe de cartes latentes de sortie (CCS), dite cartes de sortie, ladite application comprenant l’obtention d’une région caractéristique (Rj) de ladite zone à décoder dans lesdites cartes d’entrée à partir dudit masque (MZoj), ladite région caractéristique (Rj) comprenant les points associés à ladite zone à décoder (Zodj) et pour au moins un point (Ptn) de ladite zone à décoder, dit point à décoder, le traitement d’un point associé (Pan) audit point à décoder dans au moins une des cartes latentes d’entrée (CCE) par ladite couche neuronale en fonction de sa proximité d'une frontière de ladite région caractéristique.
Method for decoding a zone (Zod)j), called the decoding area, of a signal comprising at least two areas, said decoding area comprising a plurality of samples (Pdn) to decode, said decoding process comprising the following steps:
  • the decoding (F22) of a group of latent value maps ( ) representative of said zone to be decoded (Zod j ) of said signal,
  • obtaining (F20) a mask (MZo j ) of said zone to be decoded in said signal (I(P n )),
  • the decoding (F26) of a set of parameters (Wd k ) representative of a neural network (NNSYN'), called a synthetic neural network comprising at least one synthetic neural layer,
  • the processing (F27) of said group of decoded latent maps ( ) by said synthetic neural network (NNSYN') to produce at the output of said synthetic neural network at least said decoding area (Zod j ), said processing comprising the application of said at least one synthetic neural layer to transform at least one group of input latent maps (CCE), called input maps, into at least one group of output latent maps (CCS), called output maps, said application comprising obtaining a characteristic region (R j ) of said decoding area in said input maps from said mask (MZo j ), said characteristic region (R j ) comprising the points associated with said decoding area (Zod j ) and for at least one point (Pt n ) of said decoding area, called decoding point, the processing of an associated point (Pa n ) of said decoding point in at least one of the input latent maps (CCE) by said neural layer as a function of its proximity to a boundary of said characteristic region.
Procédé de décodage d’une zone (Zodj) d’un signal selon la revendication précédente dans lequel l'étape de traitement dudit point associé (Pan) comporte :
  • l’obtention d’un point associé (Pan) audit point à décoder dans au moins une des cartes latentes d’entrée (CCE),
  • l’évaluation d'un critère de proximité dudit point associé (Pan) par rapport à une frontière de ladite région caractéristique,
  • la construction d’un vecteur d’entrée (Vcon) de ladite couche neuronale de synthèse à partir d’un voisinage dudit point associé (Pan) et de ladite évaluation dudit critère de proximité, et
  • le traitement dudit vecteur d’entrée par ladite couche neuronale de synthèse pour obtenir un point (Psn) d’au moins une des cartes de sortie.
Method for decoding a zone (Zod)j) of a signal according to the preceding claim in which the processing step of said associated point (Pan) includes:
  • obtaining an associated point (Pan) to be decoded in at least one of the latent input maps (CCE),
  • the evaluation of a proximity criterion of said associated point (Pan) with respect to a boundary of said characteristic region,
  • the construction of an input vector (Vcon) of said neural synthesis layer from a neighborhood of said associated point (Pan) and said evaluation of said proximity criterion, and
  • the processing of said input vector by said neural synthesis layer to obtain a point (Psn) of at least one of the output maps.
Procédé de décodage d’une zone (Zodj) d’un signal selon la revendication précédente dans lequel ledit voisinage dudit point associé (Pan) est indépendant de ladite évaluation du critère de proximité.Method of decoding an area (Zod j ) of a signal according to the preceding claim in which said neighborhood of said associated point (Pa n ) is independent of said evaluation of the proximity criterion. Procédé de décodage d’une zone (Zodj) d’un signal selon la revendication 3 dans lequel ledit voisinage dudit point associé (Pan) est sélectionné en fonction de ladite évaluation du critère de proximité.Method of decoding an area (Zod j ) of a signal according to claim 3 in which said neighborhood of said associated point (Pa n ) is selected according to said evaluation of the proximity criterion. Procédé de décodage d’une zone (Zodj) d’un signal selon l’une quelconque des revendications 3 à 5 dans lequel ledit voisinage dudit point associé (Pan) est sélectionné en fonction dudit point associé (Pan).Method of decoding a zone (Zod j ) of a signal according to any one of claims 3 to 5 wherein said neighborhood of said associated point (Pa n ) is selected according to said associated point (Pa n ). Procédé de décodage d’une zone (Zodj) d’un signal selon l’une quelconque des revendications 3 à 6 dans lequel lors de la construction du vecteur d’entrée (Vcon), une composante du vecteur d’entrée (Vcon) est associée à un point dudit voisinage, la valeur de ladite composante étant égale à la valeur dudit point associé si ledit point associé est un point de ladite région caractéristique (Rj) et à une valeur de remplacement, sinon.Method of decoding a zone (Zod j ) of a signal according to any one of claims 3 to 6 wherein during the construction of the input vector (Vco n ), a component of the input vector (Vco n ) is associated with a point of said neighborhood, the value of said component being equal to the value of said associated point if said associated point is a point of said characteristic region (R j ) and to a replacement value otherwise. Procédé de décodage d’une zone (Zodj) d’un signal selon la revendication précédente dans lequel ladite valeur de remplacement est dépendante des points de ladite région caractéristique (Rj) ou des points associés audit voisinage appartenant à ladite région caractéristique (Rj).Method of decoding a zone (Zod j ) of a signal according to the preceding claim wherein said replacement value is dependent on the points of said characteristic region (R j ) or of the points associated with said neighborhood belonging to said characteristic region (R j ). Procédé de décodage selon la revendication 7 dans lequel ladite valeur de remplacement ne dépend pas des points de ladite région caractéristique (Rj).Decoding method according to claim 7 wherein said replacement value does not depend on the points of said characteristic region (R j ). Procédé de décodage d’une zone (Zodj) d’un signal selon l’une quelconque des revendications 3 à 9 dans lequel ledit critère de proximité est une distance.Method for decoding an area (Zod j ) of a signal according to any one of claims 3 to 9 wherein said proximity criterion is a distance. Procédé de décodage d’une zone (Zodj) d’un signal selon l’une quelconque des revendications 2 à 9 dans lequel ladite couche neuronale de synthèse est une couche neuronale convolutive.Method for decoding a zone (Zod j ) of a signal according to any one of claims 2 to 9 wherein said neural synthesis layer is a convolutional neural layer. Dispositif de codage (ENC) d’un signal (I(Pn)) comprenant une pluralité d’échantillons (Pn) à coder caractérisé en ce que ledit dispositif de codage est configuré pour mettre en œuvre :
  • l’obtention d’un premier groupe d’au moins une carte de valeurs latentes (FMi) représentatif dudit signal (I(Pn)),
  • l’obtention d’un masque (MZoj) dans ledit signal (I(Pn)) de ladite zone à coder (Zoj),
  • pour au moins un échantillon de ladite zone à coder (Zoj), dit échantillon courant (Pn), associé à une position (xn, yn) dans ledit signal (I(Pn)) à coder :
    • la construction d’un vecteur caractéristique (Zn) à partir desdites cartes de valeurs latentes (FMi) dudit premier groupe, en fonction de ladite position (xn, yn) dudit échantillon courant (Pn),
    • le traitement dudit vecteur caractéristique (Zn) par un réseau de neurones artificiels, dit réseau de neurones de synthèse (NNSYN), ledit réseau de neurones de synthèse étant défini par un ensemble de paramètres (Wk) et comprenant au moins une couche neuronale de synthèse (ck) pour obtenir, en sortie dudit réseau de neurone de synthèse, un vecteur (P’n) représentatif d’une valeur décodée de l’échantillon courant (Pn),
    • la mise à jour d'au moins une valeur d’une desdites cartes de valeurs latentes dudit premier groupe et/ou d’au moins un paramètre dudit réseau de neurones de synthèse, en fonction d’une mesure de performance de codage,
  • l’obtention d’un deuxième groupe de cartes de valeurs latentes représentatives d’au moins ladite zone à coder (Zoj) à partir dudit masque (MZoj),
  • le codage du deuxième groupe de cartes de valeurs latentes ( ),
  • le codage dudit masque (MZoj), et
  • le codage dudit ensemble de paramètres (Wk) dudit réseau de neurones de synthèse.
ledit traitement comportant l’application de ladite au moins une couche neuronale de synthèse pour transformer au moins un groupe de cartes latentes d’entrée (CCE), dite cartes d’entrée, en au moins un groupe de cartes latentes de sortie (CCS), dite cartes de sortie, ladite application comprenant :
  • l’obtention d’une région caractéristique (Rj) de ladite zone à décoder dans lesdites cartes d’entrée à partir dudit masque (MZoj), ladite région caractéristique (Rj) comprenant les points associés audit masque,
  • pour au moins un point (Ptn) de ladite zone à décoder, dit point à décoder :
    • l’obtention d’un point associé (Pan) audit point à décoder (Ptn) dans au moins une des cartes latentes d’entrée (CCE),
    • l’évaluation d'un critère de proximité dudit point associé (Pan) par rapport à une frontière de ladite région caractéristique,
    • la construction d’un vecteur d’entrée (Vcon) de ladite couche neuronale de synthèse à partir d’un voisinage dudit point associé (Pan) et de ladite évaluation dudit critère de proximité, et
    • le traitement dudit vecteur d’entrée par ladite couche neuronale de synthèse pour obtenir un point (Psn) d’au moins une des cartes de sortie,
Encoding device (ENC) of a signal (I(Pn)) comprising a plurality of samples (Pn) to be coded, characterized in that said coding device is configured to implement:
  • obtaining a first group of at least one latent value map (FM i ) representative of said signal (I(P n )),
  • obtaining a mask (MZo j ) in said signal (I(P n )) of said zone to be coded (Zo j ),
  • for at least one sample of said zone to be coded (Zo j ), called current sample (P n ), associated with a position (x n , y n ) in said signal (I(P n )) to be coded:
    • the construction of a characteristic vector (Z n ) from said latent value maps (FM i ) of said first group, as a function of said position (x n , y n ) of said current sample (P n ),
    • the processing of said characteristic vector (Z n ) by an artificial neural network, called a synthetic neural network (NNSYN), said synthetic neural network being defined by a set of parameters (Wk) and comprising at least one synthetic neural layer (c k ) to obtain, at the output of said synthetic neural network, a vector (P' n ) representative of a decoded value of the current sample (P n ),
    • the updating of at least one value of one of said latent value maps of said first group and/or of at least one parameter of said synthetic neural network, as a function of a coding performance measure,
  • obtaining a second group of latent value maps representing at least said zone to be coded (Zo j ) from said mask (MZo j ),
  • the encoding of the second group of latent value maps ( ),
  • the encoding of said mask (MZo j ), and
  • the coding of said set of parameters (W k ) of said synthetic neural network.
said processing comprising the application of said at least one neural synthesis layer to transform at least one group of latent input maps (LIMs), referred to as input maps, into at least one group of latent output maps (LIMs), referred to as output maps, said application comprising:
  • obtaining a characteristic region (R j ) of said zone to be decoded in said input maps from said mask (MZo j ), said characteristic region (R j ) comprising the points associated with said mask,
  • for at least one point (Pt n ) of said area to be decoded, called point to be decoded:
    • obtaining an associated point (Pa n ) to the said point to be decoded (Pt n ) in at least one of the latent input maps (CCE),
    • the evaluation of a proximity criterion of said associated point (Pa n ) with respect to a boundary of said characteristic region,
    • the construction of an input vector (Vco n ) of said neural synthesis layer from a neighborhood of said associated point (Pa n ) and said evaluation of said proximity criterion, and
    • the processing of said input vector by said neural synthesis layer to obtain a point (Ps n ) of at least one of the output maps,
Dispositif de décodage (DEC) d’une zone (Zodj) d’un signal comportant au moins deux zones, dite zone à décoder, ladite zone à décoder comprenant une pluralité d’échantillons (Pdn) à décoder caractérisé en ce que le dispositif de décodage est configuré pour mettre en œuvre :
  • le décodage d’un groupe de cartes de valeurs latentes ( ) représentatives de ladite zone à décoder (Zodj) dudit signal,
  • l’obtention d’un masque (MZoj) de ladite zone à décoder dans ledit signal (I(Pn)),
  • le décodage d’un ensemble de paramètres (Wdk) représentatifs d’un réseau de neurones (NNSYN’), dit réseau de neurones de synthèse comprenant au moins une couche neuronale de synthèse,
  • le traitement dudit groupe de cartes latentes décodées ( ) par ledit réseau de neurone de synthèse (NNSYN’) pour produire en sortie dudit réseau de neurone de synthèse au moins ladite zone à décoder (Zodj), ledit traitement comportant l’application de ladite au moins une couche neuronale de synthèse pour transformer au moins un groupe de cartes latentes d’entrée (CCE), dite cartes d’entrée, en au moins un groupe de cartes latentes de sortie (CCS), dite cartes de sortie, ladite application comprenant l’obtention d’une région caractéristique (Rj) de ladite zone à décoder dans lesdites cartes d’entrée à partir dudit masque (MZoj), ladite région caractéristique (Rj) comprenant les points associés à ladite zone à décoder (Zodj) et pour au moins un point (Ptn) de ladite zone à décoder, dit point à décoder, le traitement d’un point associé (Pan) audit point à décoder dans au moins une des cartes latentes d’entrée (CCE) par ladite couche neuronale en fonction de sa proximité d'une frontière de ladite région caractéristique.
Zone decoding device (DEC) (Zodj) of a signal comprising at least two zones, called the decoding zone, said decoding zone comprising a plurality of samples (Pdn) to be decoded, characterized in that the decoding device is configured to implement:
  • the decoding of a group of latent value maps ( ) representative of said zone to be decoded (Zod j ) of said signal,
  • obtaining a mask (MZo j ) of said zone to be decoded in said signal (I(P n )),
  • the decoding of a set of parameters (Wd k ) representative of a neural network (NNSYN'), called a synthetic neural network comprising at least one synthetic neural layer,
  • the processing of said group of decoded latent maps ( ) by said synthetic neural network (NNSYN') to produce at the output of said synthetic neural network at least said decoding area (Zod j ), said processing comprising the application of said at least one synthetic neural layer to transform at least one group of input latent maps (CCE), called input maps, into at least one group of output latent maps (CCS), called output maps, said application comprising obtaining a characteristic region (R j ) of said decoding area in said input maps from said mask (MZo j ), said characteristic region (R j ) comprising the points associated with said decoding area (Zod j ) and for at least one point (Pt n ) of said decoding area, called decoding point, the processing of an associated point (Pa n ) of said decoding point in at least one of the input latent maps (CCE) by said neural layer as a function of its proximity to a boundary of said characteristic region.
Programme d’ordinateur comportant des instructions pour l’exécution des étapes d'un procédé de codage selon la revendication 1 ou de décodage selon l’une quelconque des revendications 2 à 11 lorsque ledit programme est exécuté par un ordinateur.Computer program comprising instructions for carrying out the steps of an encoding process according to claim 1 or a decoding process according to any one of claims 2 to 11 when said program is executed by a computer.
FR2406994A 2024-06-27 2024-06-27 Method and device for encoding and decoding images Pending FR3164086A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2406994A FR3164086A1 (en) 2024-06-27 2024-06-27 Method and device for encoding and decoding images
PCT/EP2025/068305 WO2026003294A1 (en) 2024-06-27 2025-06-27 Method and device for encoding and decoding a signal

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2406994A FR3164086A1 (en) 2024-06-27 2024-06-27 Method and device for encoding and decoding images
FR2406994 2024-06-27

Publications (1)

Publication Number Publication Date
FR3164086A1 true FR3164086A1 (en) 2026-01-02

Family

ID=92792110

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2406994A Pending FR3164086A1 (en) 2024-06-27 2024-06-27 Method and device for encoding and decoding images

Country Status (2)

Country Link
FR (1) FR3164086A1 (en)
WO (1) WO2026003294A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2016259446A1 (en) * 2012-04-13 2016-12-08 Dolby Video Compression, Llc Low delay picture coding
EP2984839B1 (en) * 2013-04-08 2020-05-27 GE Video Compression, LLC Coding concept allowing efficient multi-view/layer coding
US20230353764A1 (en) * 2020-12-24 2023-11-02 Huawei Technologies Co., Ltd. Method and apparatus for decoding with signaling of feature map data
FR3143245A1 (en) * 2022-12-09 2024-06-14 Orange Method and device for coding and decoding images.

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2016259446A1 (en) * 2012-04-13 2016-12-08 Dolby Video Compression, Llc Low delay picture coding
EP2984839B1 (en) * 2013-04-08 2020-05-27 GE Video Compression, LLC Coding concept allowing efficient multi-view/layer coding
US20230353764A1 (en) * 2020-12-24 2023-11-02 Huawei Technologies Co., Ltd. Method and apparatus for decoding with signaling of feature map data
FR3143245A1 (en) * 2022-12-09 2024-06-14 Orange Method and device for coding and decoding images.

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG SUHONG ET AL: "A Pixel-Level Segmentation-Synthesis Framework for Dynamic Texture Video Compression", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE, USA, vol. 32, no. 10, 26 April 2022 (2022-04-26), pages 7077 - 7091, XP011921715, ISSN: 1051-8215, [retrieved on 20220426], DOI: 10.1109/TCSVT.2022.3170543 *

Also Published As

Publication number Publication date
WO2026003294A1 (en) 2026-01-02

Similar Documents

Publication Publication Date Title
FR3143245A1 (en) Method and device for coding and decoding images.
FR2755818A1 (en) DIGITAL SIGNAL CODING BY DECOMPOSITION IN FREQUENCY SUB-BANDS AND VECTOR QUANTIFICATION IN FINISED STATES
WO2024240496A1 (en) Method and device for encoding and decoding images
FR3164086A1 (en) Method and device for encoding and decoding images
FR3026261A1 (en) METHOD FOR ENCODING AND DECODING INTEGRAL IMAGES, DEVICE FOR ENCODING AND DECODING INTEGRAL IMAGES, AND CORRESPONDING COMPUTER PROGRAMS
EP3646597A1 (en) Method for decoding an image, coding method, devices, terminal equipment and computer programs associated therewith
FR3164087A1 (en) Method and device for encoding and decoding images
FR3164089A1 (en) Method and device for encoding and decoding images
FR3057130B1 (en) METHOD OF ENCODING AN IMAGE, DECODING METHOD, DEVICES, TERMINAL EQUIPMENT AND COMPUTER PROGRAMS
FR3164088A1 (en) Method and device for encoding and decoding images
WO2024260629A1 (en) Method and device for coding and decoding image sequences
WO2024260628A1 (en) Method and device for encoding and decoding image sequences
EP4630971A1 (en) Method and device for encoding and decoding images
FR3143247A1 (en) Method and device for coding and decoding image sequences.
FR3143246A1 (en) Method and device for coding and decoding images.
WO2024240497A1 (en) Method and device for encoding and decoding images
WO2025056651A1 (en) Method and device for encoding and decoding image sequences
WO2025261758A1 (en) Coding and decoding methods, and corresponding devices and computer program
WO2025261757A1 (en) Encoding and decoding methods, corresponding devices and computer program
WO2025120066A1 (en) Method and device for the contextual encoding and decoding of image sequences
WO2025261760A1 (en) Encoding and decoding methods, corresponding devices and computer program
FR3153177A1 (en) Method and device for encoding and decoding images.
WO2024008905A1 (en) Encoding and decoding of audio and/or video data
FR3098070A1 (en) Video encoding and decoding method by signaling a candidate subset
FR3064870A1 (en) METHOD FOR DECODING AT LEAST ONE DIGITAL IMAGE, ENCODING METHOD, DEVICES, TERMINAL EQUIPMENT AND ASSOCIATED COMPUTER PROGRAMS

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20260102