EP4732242A1 - Procédé et dispositif de codage et décodage de séquences d'images - Google Patents
Procédé et dispositif de codage et décodage de séquences d'imagesInfo
- Publication number
- EP4732242A1 EP4732242A1 EP24724530.1A EP24724530A EP4732242A1 EP 4732242 A1 EP4732242 A1 EP 4732242A1 EP 24724530 A EP24724530 A EP 24724530A EP 4732242 A1 EP4732242 A1 EP 4732242A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- current
- image
- value
- coding
- map
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un procédé et dispositif de codage et décodage d'une séquence d'images. Le procédé de décodage comporte les étapes suivantes pour une image courante : - obtention d'au moins une carte de caractéristiques d'un premier groupe de cartes de caractéristiques décodées représentatives d'au moins une image distincte de l'image courante. - décodage d'un deuxième groupe de cartes de caractéristiques représentatives de l'image courante comprenant, pour au moins une valeur, un décodage entropique en fonction d'un voisinage comprenant au moins une valeur décodée extraite d'au moins une carte de référence : - décodage d'un réseau de neurones de synthèse; - pour au moins un échantillon de l'image courante: - construction d'un vecteur caractéristique à partir des cartes de caractéristiques du deuxième groupe, en fonction de la position dudit échantillon courant, et : - traitement du vecteur par ledit réseau de neurones de synthèse pour fournir' une valeur décodée de l'échantillon.
Description
- L’invention se rapporte au domaine général du codage et décodage de séquences d’images numériques. Elle concerne plus particulièrement la compression des vidéos numériques.
- Les vidéos numériques font en général l’objet d’un codage source visant à les compresser afin de limiter les ressources nécessaires à leur transmission et/ou à leur stockage. Il existe de nombreux standards de codage, tels que les standards des organismes ITU/MPEG (H.264/AVC, H.265/HEVC, H.266/VVC, etc.) ainsi que leurs extensions (MVC, SVC, 3D-HEVC, etc.).
- Les formats vidéo ne cessant d'évoluer pour compresser toujours davantage et s’adapter à la variété de formats attendus et des réseaux de communication, les possibilités de prédiction deviennent de plus en plus grandes et les algorithmes de codage et décodage classiques très complexes.
- En plus de ces approches classiques proposées par les normes de compression (MPEG, ITU), les approches basées sur l’intelligence artificielle, et notamment neuronales, tendent à se développer.
- Certaines de ces approches neuronales peuvent être vues comme une simple extension de la notion de compétition des techniques de compression susmentionnées, telles que la compétition de mode de prédiction et transformation en codage vidéo.
- D’autres approches utilisent le concept « d’auto-encodeur ». Les auto-encodeurs sont des algorithmes d’apprentissage à base de réseaux de neurones artificiels, qui permettent de construire une nouvelle représentation d’un jeu de données. L’architecture d’un auto-encodeur est constituée de deux parties : l’encodeur et le décodeur. L’encodeur est constitué par un ensemble de couches de neurones, qui traitent les données afin de construire de nouvelles représentations dites « encodées », appelées aussi « représentations latentes ». À leur tour, les couches de neurones du décodeur reçoivent ces représentations et les filtrent afin d’essayer de reconstruire les données de départ. Les différences entre les données reconstruites et les données initiales permettent de mesurer l’erreur commise par l’auto-encodeur. L’entraînement consiste à modifier les paramètres de l’auto-encodeur afin de réduire l’erreur de reconstruction mesurée sur les différents échantillons du jeu de données. Les performances de tels systèmes à base d'auto-encodeur se font au prix d'une augmentation considérable de l'empreinte mémoire et de la complexité comparativement aux approches conventionnelles telles que proposées par les normes de compression. Ils peuvent comporter des millions de paramètres et peuvent nécessiter de l’ordre d'un million de MAC (multiplication-accumulation) pour décoder un seul pixel. Cela rend de tels décodeurs bien plus complexes que les décodeurs conventionnels, ce qui pourrait entraver l'adoption de la compression basée sur l'apprentissage.
- Plus récemment, une technique simple d’encodage d’image fondé sur un réseau de neurones a été décrite dans l’article « COmpression with Implicit Neural representations » d’Emilien Dupont et al. (arXiv:2103.03123). La technique de codage proposée consiste à ajuster un réseau de neurones à une image, quantifier les poids du réseau et les transmettre. Au moment du décodage, le réseau de neurones est évalué à chaque position de pixel pour reconstruire l'image. Une telle technique reste cependant inefficace en termes de compression et suppose de coder indépendamment les images de la vidéo.
- Il existe donc un besoin pour une solution permettant de coder/compresser une séquence d’images de manière simple et efficace.
- L’invention vise un procédé de codage d’une séquence d’images comprenant une pluralité d’échantillons à coder comportant les étapes suivantes :
- une étape de construction, comportant les sous-étapes suivantes pour au moins une image courante de la séquence :
- construction d’un premier groupe de cartes de caractéristiques représentatives d’au moins une image distincte de l’image courante, dite image de référence ;
- construction d’un deuxième groupe de cartes de caractéristiques représentatives de l’image courante ;
- pour au moins un échantillon, dit échantillon courant, de l'image courante, associé à une position dans l'image courante :
- construction d’un vecteur caractéristique à partir desdites cartes de caractéristiques dudit deuxième groupe, en fonction de ladite position dudit échantillon courant ;
- traitement dudit vecteur caractéristique par un réseau de neurones artificiels, dit réseau de neurones de synthèse, défini par un ensemble de paramètres, pour fournir un vecteur représentatif d’une valeur décodée de l’échantillon courant ;
- mise à jour d'au moins une valeur d’une desdites cartes de caractéristiques dudit deuxième groupe et/ou d’au moins un paramètre dudit réseau, en fonction d’une mesure de performance de codage,
- une étape de codage dudit second groupe de cartes de caractéristiques comprenant, pour au moins une valeur, dite valeur courante, d’une desdites cartes de caractéristiques, dite carte courante, un codage entropique de ladite valeur en fonction d'un voisinage comprenant au moins une valeur extraite d'au moins une carte, dite carte de référence, du premier groupe de cartes de caractéristiques,
- une étape de codage dudit ensemble de paramètres dudit réseau de neurones de synthèse. - L’invention vise aussi un procédé de décodage à partir d'un flux binaire d’une séquence d’images comprenant une pluralité d’échantillons à décoder, comportant les étapes suivantes pour au moins une image courante de la séquence :
- obtention d’au moins une carte de caractéristiques, dite carte de référence, d’un premier groupe de cartes de caractéristiques décodées représentatives d’au moins une image distincte de l’image courante, dite image de référence.
- décodage d’un deuxième groupe de cartes de caractéristiques représentatives de l’image courante comprenant, pour au moins une valeur, dite valeur courante, d’une desdites cartes de caractéristiques, dite carte courante, un décodage entropique de ladite valeur en fonction d’un voisinage comprenant au moins une valeur décodée extraite de ladite au moins une carte de référence ;
- décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones de synthèse ;
- pour au moins un échantillon, dit échantillon courant, de l’image courante, associé à une position dans l’image courante:
- construction d’un vecteur caractéristique à partir des cartes de caractéristiques dudit deuxième groupe, en fonction de ladite position dudit échantillon courant, et :
- traitement dudit vecteur par ledit réseau de neurones de synthèse pour fournir un vecteur représentatif d’une valeur décodée de l’échantillon courant. - Au sens de l’invention, on entend par encodage, ou « codage », l’opération qui consiste à représenter un ensemble d’échantillons, ou pixels, sous une forme compacte portée par exemple par un train binaire numérique. On entend par décodage l’opération qui consiste à traiter un train binaire numérique pour restituer des échantillons décodés.
- Par « séquence d’images » on entend une pluralité d’images bidimensionnelles ordonnées, par exemple temporellement dans le cas d’une vidéo. Selon un autre exemple, les images peuvent être des vues d’une même scène représentée en multivues. Selon un autre exemple, les images peuvent être une pluralité d’images temporelles et multivues (vidéo immersive).
- Par « échantillon », on entend une valeur prélevée dans une image de la séquence. L’échantillonnage d’un signal produit une suite de valeurs discrètes nommées échantillons. Dans le cas d’un signal d’image, l’échantillon prend le nom de pixel qui peut être par exemple un pixel en niveau de gris représenté par une seule composante, ou 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.
- Par « carte de caractéristiques », on entend une partie d’une représentation abstraite d’une image, comportant une pluralité de données scalaires variables, que l’on appelle aussi valeurs caractéristiques, par exemple des nombres réels, ou des nombres entiers, signés ou non. La représentation abstraite d’une image peut donc comporter plusieurs cartes de caractéristiques. La représentation abstraite d'une image peut aussi correspondre à une seule carte de caractéristiques comprenant un ensemble de valeurs associées à une position.
- Par « vecteur caractéristique construit à partir des cartes de caractéristiques en fonction d’une position » on entend un vecteur constitué d’un ou plusieurs éléments, ou données, de préférence discrètes, les données étant construites à partir des cartes de caractéristiques à une position déterminée par celle des échantillons en cours de traitement dans les images. Ce vecteur caractéristique est celui qui est appliqué à l’entrée du réseau de neurones de synthèse. Dans le cas d’une image, un tel vecteur peut être constitué par exemple à partir d’une pluralité de valeurs prélevées dans chacune des cartes de caractéristiques aux mêmes coordonnées en abscisse et en ordonnée que les échantillons à coder (resp. à décoder).
- Par « réseau de neurones de synthèse », on entend un réseau neuronal tels un réseau neuronal convolutif, un perceptron multicouche, un LSTM (pour « Long Short Term Memory » en anglais), etc. Le réseau de neurones est défini par exemple par une pluralité de couches de neurones artificiels et par un ensemble de fonctions d'activation, 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).
- Par « paramètre du réseau de neurones », on entend une des valeurs qui caractérise le réseau de neurones, par un exemple un poids associé à l’un des neurones (coefficient de filtre, pondération, biais, valeur affectant le fonctionnement de la non-linéarité, etc.)
- Par « 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 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.
- 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, les échantillons courants, ou les images courantes, etc.). La mesure peut comporter aussi une mesure du débit, notamment associé au codage du réseau de neurones et/ou au codage des cartes de caractéristiques du deuxième 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.
- Par « étape de construction », on entend une étape qui vise à construire les paramètres représentatifs de l’image, avant leur codage effectif. Les sous-étapes de construction peuvent être réitérées autant que nécessaire pour obtenir une mesure de performance acceptable.
- 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.
- Le procédé de codage selon l’invention réalise une construction des paramètres de codage, à partir d’une séquence d’images d’entrée, en entraînant un réseau de neurones sur des vecteurs caractéristiques associés à une position d’un échantillon à coder dans l'image d’entrée. Ces vecteurs caractéristiques sont construits à partir de cartes de caractéristiques qui peuvent être à la résolution des images 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 et des valeurs des cartes de caractéristiques peut être effectué et mémorisé ou transmis à destination du décodeur.
- Avantageusement, le processus d’entraînement permet de raffiner les paramètres du réseau de neurones de synthèse et/ou les valeurs des cartes de caractéristiques jusqu’à obtenir une représentation adéquate en termes de performance, par exemple un équilibre souhaité entre le débit généré et la distorsion subie par l’image d’entrée en cours de codage. L’entraînement des valeurs des cartes de caractéristiques et des paramètres du réseau de neurones de synthèse peut être conjoint. Avantageusement, le procédé de codage selon l’invention permet de compresser efficacement le signal.
- Avantageusement, le procédé de décodage est simple puisqu'il suffit de décoder le réseau de neurones de synthèse et les cartes de caractéristiques de l’image courante en fonction d'autres cartes de caractéristiques décodées d'autres images de la séquence, par exemple des images précédentes, pour reconstituer une version décodée de l’image courante.
- Avantageusement, le codage des cartes de caractéristiques est rendu particulièrement efficace par la prise en compte d’un voisinage de codage dans des cartes de caractéristiques d’autres images de la séquence, ce qui permet d’exploiter les redondances présentes dans les cartes associées aux différentes images.
- Un tel réseau de neurones de synthèse peut avantageusement être de structure très simple avec peu de paramètres.
- De surcroît, le décodage peut être effectué échantillon par échantillon, de manière progressive.
- Selon des modes de réalisation du procédé de codage ou de décodage :
- - Le procédé de codage comprend les sous-étapes suivantes de codage de ladite valeur courante :
- construction d’un vecteur de voisinage comprenant ladite au moins une valeur du voisinage extraite de ladite au moins une carte de référence, et ;
- traitement dudit vecteur de voisinage par un réseau de neurones artificiels, dit réseau de neurones de prédiction, défini par un ensemble de paramètres, pour fournir une prédiction de ladite valeur courante;
- mise à jour d’au moins un paramètre dudit réseau de prédiction, en fonction de la mesure de performance de codage,
- codage dudit ensemble de paramètres du réseau de prédiction. - - Le procédé de décodage comprend les sous-étapes suivantes de décodage de ladite valeur courante, d’une desdites cartes de caractéristiques;
- décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones, dit réseau de neurones de prédiction ;
- construction d’un vecteur de voisinage comprenant ladite au moins une valeur décodée extraite de ladite au moins une carte de référence, et ;
- traitement dudit vecteur par le réseau de neurones de prédiction, pour fournir une prédiction de ladite valeur courante; - Avantageusement selon un tel mode de codage ou décodage, les cartes de caractéristiques sont compressées efficacement par un réseau de neurones de prédiction apte à prédire une valeur de la carte en fonction de son voisinage temporel. Par « vecteur de voisinage », on entend un vecteur constitué d’un ou plusieurs éléments, ou données, construites à partir des cartes de caractéristiques d'autres images de la séquence, ou cartes de référence, extraites de préférence à une position voisine de celle de l’échantillon courant, qui est aussi celle de la valeur courante dans la carte de caractéristiques courante. La position voisine peut indiquer une valeur dans une carte quelconque de l'ensemble de cartes de caractéristiques associée à une autre image de la séquence (par exemple, la valeur voisine en haut à gauche de celle en cours de traitement dans une carte de caractéristiques de l'image précédente). Ce vecteur de voisinage est celui qui est appliqué à l’entrée du réseau de neurones de prédiction. Par « prédiction » on entend au moins une donnée permettant d’estimer une valeur courante de la carte de caractéristiques, par exemple une probabilité, une valeur statistique, etc. Le réseau de neurones de prédiction, entraîné sur les cartes des images de la séquence, est apte à les représenter efficacement. Il est de surcroît peu couteux à coder.
- Selon des variantes :
- - une au moins desdites cartes de caractéristiques du deuxième groupe est de résolution inférieure à celle de l'image à décoder et le procédé comporte un suréchantillonnage. Avantageusement selon ce mode, la compression des cartes de caractéristiques est plus efficace puisque l’une au moins des cartes de caractéristiques du deuxième groupe, à coder (resp. décoder), comporte moins de valeurs que si elle était à la résolution du signal. Par exemple, dans le cas d’une image numérique, l’une des cartes de caractéristiques peut être à la résolution 1/2, c’est-à-dire qu’elle comporte deux fois moins de valeurs en abscisse et en ordonnée que l’image d’entrée comporte d’échantillons, soit au total 4 fois moins de valeurs qu’une carte de caractéristiques à la résolution de l’image. En revanche, la carte de caractéristique utilisée pour la synthèse peut être de résolution identique à celle de l'image. Le procédé comporte donc dans ce cas au moins une opération de suréchantillonnage pour obtenir le même nombre de valeurs dans cette carte que l'image d'entrée (resp. à décoder) comporte d’échantillons.
- – Une au moins desdites cartes de caractéristiques du deuxième groupe est de résolution identique à celle du signal à coder (resp. décoder). Avantageusement selon ce mode, l’une au moins des cartes de caractéristiques, à la même résolution que l'image à coder (resp. à décoder) permet une fidélité importante et le respect des détails de la résolution initiale du signal d'image.
- - la construction du vecteur caractéristique comporte une sous-étape d’extraction d’une valeur d’une carte de caractéristiques à une position identique à celle de l’échantillon courant dans l'image à coder ou décoder. Avantageusement, il est possible d’extraire une valeur d’une carte de caractéristique à la même position que l’échantillon dans l'image, pour constituer un élément du vecteur caractéristique. Ce procédé est simple à mettre en œuvre. Par exemple, si l’on dispose de J cartes de caractéristiques en entrée, de même résolution que l'image, une simple extraction des valeurs des cartes aux coordonnées de l’échantillon courant (à la même abscisse et la même coordonnée dans la carte de caractéristiques) permet de construire directement le vecteur caractéristique de J éléments.
- - La construction dudit vecteur caractéristique comporte les sous-étapes suivantes :
- extraction d’une pluralité de valeurs desdites cartes de caractéristiques en fonction de ladite position dudit échantillon courant ;
- traitement desdites valeurs extraites pour obtenir le vecteur caractéristique. - Avantageusement selon ce mode, le vecteur caractéristique est extrait des cartes de caractéristiques, qui peuvent être quelconques, et notamment à une résolution inférieure à celle de l'image à coder (resp. décoder), avant de subir un traitement. Un tel traitement peut par exemple correspondre à une quantification des données extraites, ou à une mise à l’échelle, ou à un filtrage, etc. Au codage, une quantification est indispensable au bon fonctionnement du système si les cartes de caractéristiques comportent par exemple des valeurs flottantes, ou réelles. Il est nécessaire de les quantifier avant de les coder et/ou de les fournir en entrée du réseau de neurones de synthèse et/ou de prédiction. Au décodage en revanche, la quantification inverse n’est pas nécessaire, selon les modes de réalisation.
- - lesdits premier et deuxième groupes contiennent le même nombre (M) de cartes de caractéristiques ; avantageusement selon ce mode, les différentes images de la séquence sont associées au même nombre de cartes de caractéristiques, qui peuvent de surcroît être de mêmes structures. Par exemple, les images de la séquence sont associées à cinq cartes de caractéristiques présentant une hiérarchie de résolutions décroissantes. Ceci facilite la génération et l'extraction des valeurs des cartes de caractéristiques pour produire le vecteur de voisinage.
- - ladite au moins une carte de référence est à la même résolution que la carte courante. Avantageusement selon ce mode, la construction du vecteur de voisinage est facilitée puisque la carte de référence est à la même résolution que la carte courante, il est très simple de réaliser l'extraction d'une valeur à la même position ou à une position proche de celle de la valeur de la carte courante.
- - ladite au moins une image de référence est indiquée dans le flux binaire. Avantageusement selon ce mode, un simple indicateur codé dans le flux permet au décodeur d'accéder directement à la ou les images de référence à utiliser pour le décodage de la carte courante de l'image courante, par exemple via un indicateur du numéro d'image de référence.
- - ladite au moins au moins une image de référence est prédéterminée. Avantageusement selon ce mode, la ou des images de référence à utiliser pour le décodage de la carte courante de l'image courante sont prédéterminées. Par exemple, l'image de référence est l'image précédente de la séquence. Selon un autre exemple, la première image de la séquence est l'image de référence. Selon un autre exemple, la première image de la séquence et l'image suivante de l'image courante sont deux images de référence.
- - ladite au moins une carte de référence est indiquée dans le flux binaire. Avantageusement selon ce mode, un simple indicateur codé dans le flux permet au décodeur d'accéder directement à la ou les cartes de référence à utiliser pour le décodage de la carte courante, par exemple via un indicateur du numéro de la carte de référence dans le groupe de cartes de caractéristiques associé à une image de référence.
- - ladite au moins au moins une carte de référence est prédéterminée. Avantageusement selon ce mode, la ou des cartes de caractéristiques à utiliser pour le décodage de la carte courante sont prédéterminées. Par exemple la carte de caractéristiques de référence est celle qui comporte le même numéro d'ordre que la carte courante dans les groupes de cartes de caractéristiques auxquelles elles appartiennent respectivement. Selon un autre exemple, toutes les cartes de caractéristiques de l'image de référence visée servent de cartes de référence pour la carte courante.
- - ladite au moins une valeur décodée extraite de ladite au moins une carte de référence est à la même position dans ladite au moins une carte de référence que la valeur courante dans la carte de caractéristiques courante. Avantageusement selon ce mode, une fois connue la carte de référence, la valeur qui se trouve à la même position que celle en cours de codage (resp. décodage) dans la carte courante est utilisée pour composer le vecteur de voisinage. Comme ces valeurs correspondent à la même localisation, elles ont de fortes chances d’être corrélées, et ainsi, la valeur extraire fournit une information pertinente sur la valeur courante.
- - le vecteur de voisinage comporte en outre au moins une deuxième valeur décodée (Vdn ») extraite d’une autre carte de référence. Avantageusement selon ce mode, une seconde valeur au moins peut être extraite d'une autre carte de référence. Ceci permet de prendre en compte des valeurs à différents instants temporels (par exemple, à deux instants précédents, ou encore, en fonction de l’ordre de codage/décodage des images, à un instant futur et un instant passé) et ainsi de mieux prendre en compte l’évolution du signal pour le codage/décodage de la valeur courante.
- Corrélativement, l’invention vise aussi un dispositif de codage et un dispositif de décodage.
- Les caractéristiques et avantages du procédé de codage ou décodage s’appliquent de la même façon au dispositif de codage ou décodage selon l’invention et vice versa.
- L’invention vise également un programme d’ordinateur sur un support d’enregistrement, ce programme étant susceptible d’être mis en œuvre dans un ordinateur ou un dispositif de codage ou de décodage conforme à l’invention. Ce programme comporte des instructions adaptées à la mise en œuvre du procédé correspondant. Ce programme peut utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable.
- L’invention vise aussi un support d'information ou un support d’enregistrement lisible par un ordinateur, et comportant des instructions de programme d'ordinateur mentionné ci-dessus. Les supports d'information ou d’enregistrement peuvent être n'importe quel entité ou dispositif capable de stocker les programmes. Par exemple, les supports peuvent comporter un moyen de stockage, tel qu'une ROM, par exemple un CD-ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette ou un disque dur, une séquence d’ADN, ou une mémoire flash. D'autre part, les supports d'information ou d’enregistrement peuvent être des supports transmissibles tels qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par lien radio, par lien optique sans fil ou par d'autres moyens.
- Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
- Alternativement, chaque support d'informations ou d’enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution d’un procédé conforme à l’invention.
- D’autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif.
-
la représente schématiquement un dispositif de codage utilisé dans le cadre de l’invention ;
-
la représente schématiquement un dispositif de décodage utilisé dans le cadre de l’invention ;
-
la illustre un exemple de réseau de neurones artificiels de synthèse utilisé dans le cadre de l’invention ;
-
La illustre un exemple de réseau de neurones artificiels de prédiction utilisé dans le cadre de l’invention ;
-
la est un logigramme représentant un exemple de procédé de codage qui peut être mis en œuvre par le dispositif de codage de la ;
-
la est un logigramme représentant un exemple de procédé de décodage qui peut être mis en œuvre par le dispositif de décodage de la ;
-
la représente de manière illustrée un procédé de décodage utilisé dans un mode de réalisation de l’invention.
-
la est 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 la et par le procédé de codage de la .
-
la est 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 la et par le procédé de décodage de la .
-
la représente de manière illustrée une méthode de codage ou de décodage de cartes de caractéristiques.
-
la représente de manière illustrée une autre méthode de codage ou de décodage de cartes de caractéristiques. - La
représente schématiquement un dispositif de codage de séquences d’images numériques ENC. - Ce dispositif de codage ENC comprend autant de sous-modules de codage ENCv que d’images à coder. Un sous-module comprend, pour une image v de la séquence à coder notée Iv ou I(PVn), dite image courante, un module GEN de génération de cartes de caractéristiques, un module SE de transformation, un module XTR d’extraction de données, un module MLP 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 et optionnellement un réseau de neurones de prédiction, un module FMC de codage et décodage des cartes de caractéristiques, un module EVAL d’évaluation d’une performance de codage, un module MAJ de mise à jour.
- 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.
- Le dispositif de codage ENC de la
reçoit en entrée une séquence d'au moins deux images à coder, notées I(PVn), comportant chacune respectivement une pluralité d'échantillons PVn. L'indice v indique le numéro d'image dans la séquence SV de V images. L'indice n indique le numéro de pixel dans une image de N pixels. L’image I(PVn) peut représenter une image bidimensionnelle et la séquence une pluralité d’images bidimensionnelles (séquence vidéo, composantes stéréoscopiques, multiscopiques, série d’images médicales, etc.). Dans un mode de réalisation, une image de la séquence est représentée au moyen d’au moins une représentation bidimensionnelle, telle qu’une matrice de pixels, chaque pixel comportant un vecteur de composantes rouge (R), verte (G), bleue (B), ou, en variante, une composante de luminance et au moins une composante de chrominance. L'emplacement de chaque pixel est défini par ses coordonnées en abscisse et ordonnée (xn et yn) dans l'image. Dans un mode de réalisation, la séquence est une séquence d’images en niveau de gris représentées 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. - Comme cela sera décrit plus en détail plus loin en référence aux figures 3 à 11 :
- 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 FMvi pour l’image courante v. Un module facultatif, non représenté, peut générer une ou plusieurs cartes supplémentaires, au nombre de L, qui ne seront ni codées ni transmises.
- Dans un mode de réalisation, le module SE réalise une transformation du groupe de cartes de caractéristiques FMvi pour générer un groupe de cartes de caractéristiques FMSvi à la même résolution que le signal d’entrée.
- Le module SE, optionnel, peut réaliser une quantification des données extraites de cet ensemble de M cartes FMvi. 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 peut effectuer une transformation des valeurs d’au moins une des cartes de caractéristiques, par exemple un suréchantillonnage, une interpolation, un filtrage, etc. À l’issue de la transformation, une carte de caractéristiques transformée est selon un mode de réalisation 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 transformées, qui servent à la construction des vecteurs caractéristiques, sont à la même résolution que la séquence d’images, ce qui facilite l’extraction des valeurs.
- Dans un mode de réalisation, le module SE est absent, dans ce cas les valeurs qui serviront à construire le vecteur caractéristique sont extraites directement du deuxième groupe de cartes de caractéristiques.
- Le module XTR réalise une extraction de valeurs dans des cartes de caractéristiques FMvi (et/ou FMSvi,selon l’un des modes de réalisation décrit précédemment), pour un échantillon courant Pvn à coder, en fonction de ses coordonnées dans le signal d’entrée. Par exemple, si l’on cherche à coder l’échantillon Pvn aux coordonnées (xn, yn) d’une image d’entrée, le module XTR réalise une extraction de valeurs dans des cartes à des positions imposées par les coordonnées (xn, yn).
- Dans un mode de réalisation, les valeurs extraites constituent le vecteur Zn. Zn est un J-uplet, c’est-à-dire qu’il comporte J éléments, ou données zi. Le vecteur Zn d’indice n réfère au vecteur caractéristique du pixel Pvn.
- Le module XTR peut aussi réaliser une quantification des données extraites de l’ensemble de cartes de caractéristiques. En particulier, si le module SE n’est pas utilisé et si les cartes de caractéristiques sont à des résolutions inférieures à celle des images de la séquence, le module XTR peut prendre en compte les coordonnées des valeurs dans les cartes de résolutions inférieures.
- On notera que l’un au moins des modules SE ou XTR doit effectuer une quantification des valeurs extraites des cartes de caractéristiques de l’image courante.
- Le module MLP est un réseau de neurones de synthèse défini par K paramètres Wvk, apte à traiter le vecteur Zn, ou J-Uplet, en entrée, pour générer en sortie un vecteur représentatif de l’échantillon Pvn à coder de l’image courante. Le réseau de neurones de synthèse est selon un mode de réalisation un MLP, ou Multi Layer Perceptron, constitué d’une couche d’entrée adaptée au format d’entrée (le J-uplet), optionnellement une ou plusieurs couche(s) cachée(s), et une couche de sortie adaptée au format de sortie du vecteur de sortie, de manière générale un vecteur comportant NC éléments correspondant aux NC composantes de l'image à décoder. Selon un mode de réalisation, NC est égal à 3 et le vecteur de sortie est le triplet (R, G, B) du pixel P’vn codé puis décodé de l’image courante.
- Le module NNC réalise le codage du réseau de neurones de synthèse de l’image courante, notamment de ses paramètres Wvk.Optionnellement, le module NNC réalise le codage du réseau de neurones de prédiction, ARM, notamment de ses paramètres Ovb.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 Wvk,et optionnellement le codage du réseau de neurones de prédiction, ARM. Les paramètres codés de l’image courante sont notés Wcvk (et Ocvb). De manière connue, la simulation de codage peut être identique au codage effectif, ou en réaliser une approximation.
- Le module FMC réalise le codage des cartes FMvi, c’est-à-dire des valeurs des cartes de caractéristiques de l’image courante, dites du deuxième groupe (à l’exclusion des cartes résultant optionnellement d’un suréchantillonnage par le module SE, et des cartes supplémentaires). 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 FMvi. Les cartes codées de l’image courante sont notées FMcvi. 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 deuxième 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 temporel d’une valeur à coder de la carte de caractéristiques. Pour construire le voisinage, le module FMC utilise des cartes de caractéristiques codées et décodées correspondant à des images v’ de la séquence distinctes de l’image courante v, précédemment codées puis décodées, par exemple celles de l’image précédente dans la séquence, ou de deux images de référence passées de la séquence, ou d'une image de référence passée et une future, dans la mesure où l'ordre de décodage de la séquence le permet (de manière connue, l'ordre de décodage peut être différent de l'ordre chronologique de la séquence), etc. Elles sont dites cartes de caractéristiques du premier groupe, ou cartes de référence, notées FMdv’i. Comme il sera détaillé plus loin, le module FMC peut comprendre un réseau de neurones de prédiction (ARM) de l’image courante.
- 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.
- Le module MAJ réalise une mise à jour des valeurs des cartes FMvi à encoder de l’image courante, en fonction des résultats de la fonction de performance.
- La
représente schématiquement un dispositif de décodage DEC. - Le dispositif de codage DEC de la
comporte autant de sous-modules de décodage DECv que d’images à décoder dans la séquence. Un sous-module reçoit en entrée, pour une image courante v à décoder notée I(Pdvn) :
- des données encodées organisées en M cartes de caractéristiques FMcvi (dites aussi cartes de caractéristiques du deuxième groupe, ou cartes courantes) ;
- les paramètres encodés Wvck du réseau de neurones de synthèse correspondant à l’image courante ;
- optionnellement les paramètres encodés Ocvb du réseau de neurones de prédiction correspondant à l’image courante ;
- des données organisées en cartes de caractéristiques FMdv’icorrespondant à des images v’ de la séquence distinctes de l’image courante v, précédemment décodées, par exemple celles de l’image précédente dans la séquence, ou de deux images de référence de la séquence, etc. Elles sont dites cartes de caractéristiques du premier groupe, ou cartes de référence. - Le sous-module DECv décode les N échantillons Pdvnde l’image v de la séquence. L’ensemble des sous-modules décode les V images de la séquence à décoder.
- Ce dispositif de décodage DECv comprend, pour une image courante, un module NND de décodage de réseau(x) de neurones apte à décoder le réseau de neurones de synthèse MLP’ et optionnellement le réseau de neurones de prédiction ARM', un module FMD de décodage des cartes de caractéristiques, un module XTR’ d’extraction de données, un module SE’ de transformation inverse, un module MLP’ correspondant à un réseau de neurones de synthèse. Selon un mode de réalisation, il produit en sortie une image décodée courante, notée I (Pdvn), comportant une pluralité d’échantillons décodés Pdvn.
- Les cartes décodées par le module FMD, au nombre de M, sont notées FMdvi(cartes de caractéristiques de l’image courante v). Les paramètres du réseau de neurones de synthèse (MLP’) décodés par le module NND sont notés Wdvk. Les paramètres du réseau de neurones de prédiction (ARM ») optionnellement décodés par le module NND sont notés Odvb. Le module FMD utilise pour décoder une carte courante FMdvi une ou plusieurs cartes de caractéristiques, dites cartes de référence, d’images v' de la séquence distinctes de l’image courante, dites images de référence, décodées précédemment par un autre sous-module de décodage, et notées FMdv’i.
- Le module NND correspond au module NNC. Il peut utiliser 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). Selon un mode de réalisation, le module NND décode le réseau de neurones associé à l'image v en utilisant les paramètres précédemment décodés des autres réseaux de neurones de la séquence.
- Le décodeur peut aussi générer une ou plusieurs cartes supplémentaires quelconques, non représentées.
- Dans un mode de réalisation, le module SE’ réalise une transformation du premier groupe de cartes de caractéristiques FMdvi décodées pour générer un groupe de cartes de caractéristiques transformées, notées FMS’vi. 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 optionnellement 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 FMS’vi est de préférence de même résolution que les images de la séquence à décoder.
- 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 deuxième groupe de cartes de caractéristiques.
- Dans un mode de réalisation, le module SE' utilise un réseau de neurones de suréchantillonnage.
- Le module XTR’ est identique au module XTR de la
. Il réalise une extraction de valeurs des M cartes de caractéristiques FMdvide l’image courante (et/ou FMS’vi selon l’un des modes de réalisation décrit précédemment), pour un échantillon Pdvn à décoder, en fonction de ses coordonnées dans l'image à décoder. - Dans un mode de réalisation, les valeurs extraites constituent le vecteur Zdn. Zdn est un J-uplet, c’est-à-dire qu’il comporte J éléments, ou données zdi. Dans un mode de réalisation, J=M.
- Dans un mode de réalisation, le module XTR' réalise aussi un traitement des valeurs extraites, pour générer le vecteur Zdn. Le module XTR' peut réaliser une quantification inverse des données extraites de l’ensemble de cartes de caractéristiques, notamment si le module SE' est absent. Le traitement peut comporter d’autres opérations, comme un filtrage, une mise à l’échelle, etc., similaires à ceux effectués par le codeur.
- Le module MLP’ est un réseau de neurones dit de synthèse, défini par K paramètres Wdvk, apte à traiter le vecteur Zdn, ou J-Uplet, en entrée, pour générer en sortie un vecteur représentatif de l’échantillon Pvn à décoder, de manière générale un vecteur comportant NC éléments correspondant aux NC composantes de l'image à décoder. Selon un mode de réalisation, K=3 et le vecteur de sortie est le triplet (R, G,B) du pixel Pdvn décodé. Le module MLP’ est de structure identique au module MLP, et ses paramètres sont soit identiques si le codage de ses paramètres Wvk est sans perte, soit différents si le codage est réalisé avec pertes.
- Lorsque tous les échantillons Pvn du signal ont été décodés, on dispose d’un signal reconstruit I (Pdvn), selon un exemple une image Iv comportant N échantillons décodés sous la forme de N vecteurs Pdvn.
- Le dispositif de décodage DEC peut être mis en œuvre au moyen d’un dispositif électronique comprenant un processeur et une mémoire, non représentés ; chacun des modules mentionnés ci-dessus peut alors être réalisé par la coopération du processeur et d’instructions de programme d’ordinateur mémorisées dans la mémoire susmentionnée et conçues pour effectuer les fonctionnalités du module concerné, notamment comme décrit ci-dessous, lorsque ces instructions sont exécutées par le processeur
- La
illustre 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. - Le réseau de neurones artificiels de synthèse utilisé au codage, MLP, et le réseau de neurones artificiels de synthèse utilisé au décodage, MLP », 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é.
- Une représentation vectorielle d’un échantillon courant (un vecteur Zn ou Zdn issu des cartes de caractéristiques FMvi/FMSvi au codeur ou FMdvi/FMSdviau décodeur) est appliquée en entrée (c’est-à-dire sur une couche d’entrée) du réseau de neurones artificiels de synthèse MLP ou MLP ». Le réseau de neurones artificiels de synthèse produit en sortie un vecteur, selon un mode de réalisation les composantes de couleur (R, G, B) constitutives d’un pixel couleur d’une image.
- La concaténation de tous ces pixels reconstruits dans une image (2D, 3D) constitue l’image décodée, ou reconstruite.
- Au codeur, le réseau de neurones artificiels de synthèse MLP est entraîné sur l’image, de sorte à minimiser les différences entre la représentation en entrée de l’image courante I(Pvn) et sa représentation I(P’vn) en sortie, tout en minimisant également la quantité de données à encoder. Le module EVAL effectue une mesure de performance en ce sens.
- 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 MLP’ est identique à MLP, soit avec pertes, auquel cas le réseau MLP’ peut être légèrement différent de MLP.
- La
illustre un exemple de réseau de neurones artificiels de prédiction utilisé au codage (ARM) et au décodage (ARM ») pour les cartes de caractéristiques, dans le cadre de modes de réalisation de l’invention. - Le réseau de neurones artificiels de prédiction utilisé au codage, ARM, et le réseau de neurones artificiels de prédiction utilisé au décodage, ARM », 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é.
- Une représentation vectorielle d’un voisinage courant (un vecteur Cvn ou Cdvn issu des cartes de caractéristiques FMdvi ou FMdv'i d'une autre image de la séquence, au codeur ou au décodeur) est donnée en entrée (c’est-à-dire sur une couche d’entrée) du réseau de neurones artificiels de prédiction ARM (au codage) ou ARM » (au décodage).
- Le réseau de neurones artificiels de prédiction se comporte comme une fonction qui produit en sortie une prédiction de la valeur courante de la carte de caractéristiques en cours de traitement, qui peut se présenter sous forme d’une valeur de prédiction ou de données de probabilité.
- Selon un mode de réalisation, au codeur, le réseau implémente une fonction fѱ qui fournit une moyenne et/ou une variance (µ,σ) attendues pour la valeur courante de la valeur courante Vvn de la carte FMvi à coder. Ces valeurs statistiques sont utilisées pour réaliser le codage entropique de cette valeur. Par exemple, si la fonction produit une moyenne, cette moyenne est soustraite à la valeur courante et seule la différence est codée entropiquement, cette moyenne étant considérée comme une prédiction de la valeur courante. Alternativement, si la fonction produit une moyenne et une variance, la moyenne est soustraite de la valeur courante, et la différence est codée à l’aide d’un codage entropique adapté à la variance, par exemple en quantifiant ladite variance en un ensemble prédéterminé de variances et en associant un type de codage entropique à chaque valeur de variance quantifiée. Au décodeur, le réseau implémente une fonction fѱ qui fournit une moyenne et/ou une variance attendues pour la valeur courante de la valeur courante Vdvn de la carte FMdvià décoder. Ces valeurs statistiques sont utilisées pour réaliser le décodage entropique de cette valeur. Par exemple, si la fonction produit une moyenne, la valeur courante est décodée par le décodeur entropique et cette moyenne est additionnée à la valeur courante. Alternativement, si la fonction produit une moyenne et une variance, la valeur courante est décodée par le décodeur à l’aide d’un décodage entropique adapté à la variance, par exemple en quantifiant ladite variance en un ensemble prédéterminé de variances et en associant un type de décodage entropique à chaque valeur de variance quantifiée.
- Selon un autre mode de réalisation, le réseau de neurones peut produire la probabilité attendue (pr) de chaque valeur possible de l’échantillon courant. Dans ce cas, le codage ou décodage entropique sera adapté à cette probabilité (comme il est connu pour le codage entropique de Huffman ou arithmétique).
- Au codeur, le réseau de neurones artificiels de prédiction ARM est entraîné sur l’image courante et les images de référence, de sorte à minimiser la quantité de données à encoder. Le module EVAL effectue une mesure de performance en ce sens. On rappelle que la mesure de performance globale porte sur une minimisation de la distorsion entre des images codées puis décodées I (P’vn) et les images d’entrée I (Pvn), tout en minimisant le débit de codage. Selon un mode de réalisation, les cartes de caractéristiques sont encodées sans pertes, via un codage entropique. Dans ce cas, le codage des cartes de caractéristiques influe sur le débit, mais pas sur la distorsion des images codées. Selon un autre mode de réalisation, si les cartes de caractéristiques sont encodées avec pertes, le codage des cartes de caractéristiques influe sur le débit, mais aussi sur la distorsion.
- Une fois que l’entraînement est terminé, les B paramètres Ocvb du réseau sont encodés, soit sans pertes, auquel cas le réseau de neurones ARM’ est identique à ARM, soit avec pertes, auquel cas le réseau ARM’ peut être légèrement différent de ARM.
- La
est un logigramme représentant un exemple de procédé de codage qui peut être mis en œuvre par le dispositif de codage de la . - Selon ce mode de réalisation, le signal d'entrée est une image bidimensionnelle de la séquence d'images, chaque échantillon à coder est donc un pixel Pvn de coordonnées (xn, yn) de l'image courante v.
- L’encodage se déroule en deux phases principales :
- Dans une première phase, dite phase de construction, un apprentissage est réalisé, afin de déterminer, pour une image d’entrée I(Pvn), les valeurs des cartes FMvi et des paramètres Wvk et optionnellement Ovb pour 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 MLP, des valeurs des cartes de caractéristiques FMvi, et optionnellement du réseau de neurones de prédiction ARM. 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 cartes FMvi, puis de mesurer le débit de codage associé (la taille du flux B1). Selon un mode de réalisation, on ne simule pas le codage des paramètres Wvk et/ou Ovb car 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 Wvk et/ou Ovb et on mesure le débit associé (la taille du flux B2). 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 Iv, pour obtenir au moins un pixel P’vnrésultant d’une simulation de codage puis de décodage, puis de mesurer l'écart entre cette partie de l'image I (Pvn) en entrée et une partie correspondante de l'image I (P’vn) codée puis décodée.
- Puis lors d’une deuxième phase, dite phase de codage, les cartes FMvi et les paramètres Wvk et éventuellement Ovb sont encodés pour produire les valeurs codées FMcvi et Wcvk (et éventuellement Ocvb) avant transmission ou stockage. Ils constituent la représentation compressée de l'image (Pvn).
- On va maintenant décrire les étapes d’un procédé selon un mode de réalisation de l’invention.
- Lors d’une étape E20, une image I(Pvn) à coder d'indice v dans une séquence d'images, comportant une pluralité de N échantillons Pvn, et un nombre NC de composantes, est fournie en entrée du procédé.
- Lors d’une étape E21, les M cartes FMvi du deuxième groupe, ou cartes de caractéristiques de l'image courante v, sont initialisées. Par la suite, les valeurs des cartes FMvi, et éventuellement les paramètres des réseaux de neurones doivent être optimisés durant la phase de construction.
- Selon un mode de réalisation, les cartes FMvi sont de même résolution que l'image d’entrée I(Pvn) et comportent donc chacune le même nombre de valeurs N qu’il y a d’échantillons Pvn à coder. Selon un mode de réalisation, les cartes FMvi sont de résolution inférieure ou égale à celle du signal d’entrée I(Pvn) 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 FMv1 est à la résolution des images et chaque carte suivante est à une résolution moitié de la précédente. Selon un mode de réalisation, plusieurs cartes FMvi sont de même résolution, inférieure à celle du signal d’entrée I(Pvn).
- Selon un mode de réalisation, les cartes FMvi sont transformées pour fournir un groupe de cartes de caractéristiques transformées FMSvi. Dans ce mode, les vecteurs caractéristiques sont extraits de préférence des cartes transformées, et non directement des cartes du deuxième groupe. Dans ce mode, les vecteurs caractéristiques sont donc extraits indirectement des cartes du deuxième groupe. Les cartes transformées ne sont pas codées, elles servent uniquement à la construction des vecteurs caractéristiques.
- Selon un mode de réalisation, les cartes FMvi de l'image courante sont initialisées par des valeurs constantes prédéfinies. Selon un autre mode de réalisation, les cartes de caractéristiques sont initialisées par un ensemble de valeurs réelles aléatoires. Selon un mode de réalisation, une ou plusieurs cartes, formant un groupe supplémentaire de cartes de caractéristiques supplémentaires, sont générées, et ajoutées au deuxième groupe. Elles servent à la construction du vecteur caractéristique mais ne sont ni stockées ni transmises.
- Les cartes de caractéristiques FMvi du deuxième groupe sont par la suite mises à jour, ou raffinées, lors d’une étape E22, par le module de mise à jour MAJ du codeur au cours de son apprentissage.
- Lors d’une étape E23, les cartes FMvi du deuxième 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 B1. 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 temporel, c'est-à-dire à partir de cartes de caractéristiques d'un premier groupe, constitué de cartes de caractéristiques d'autres images de la séquence que l'image courante, dites cartes de référence d'images de référence, comme il sera décrit plus en détail à l’appui de la
. Dans un mode de réalisation, la structure et les paramètres d'un réseau de neurones de synthèse (optionnellement de prédiction) 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é. - Dans un mode de réalisation, les cartes FMvi sont codées dans l’ordre (FMv1, FMv2,…, FMv4), et les variables de chaque carte dans un ordre prédéfini, par exemple lexicographique. Chaque carte subit un codage entropique. Le codage entropique produit un flux compressé B1 dont le débit peut être mesuré ultérieurement au cours d’une étape E29.
- Lors d’une étape E24, selon un mode de réalisation, les M cartes du premier groupe FMi sont transformées par le module SE pour générer des cartes transformées FMSvià la résolution des images de la séquence d’entrée.
- Selon un mode de réalisation, M cartes FMSvisont générées. Selon un mode de réalisation, chaque carte FMvi est transformée en une carte FMSvi. Selon un mode de réalisation, au moins une carte FMvi est 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 FMSvi transformée comporte le même nombre d’échantillons que l'image courante. Le suréchantillonnage consiste à rajouter des valeurs dans les cartes FMSvi pour atteindre la résolution des images de la séquence d’entrée. Il peut être simple (par réplication du plus proche voisin) ou comporter une interpolation (linéaire, polynomiale, par filtrage, etc.). Il peut aussi être réalisé par un réseau de neurones de suréchantillonnage.
- Lors d’une étape E25, des valeurs sont extraites par le module XTR des cartes FMvi ou éventuellement FMSvi transformées, et optionnellement de cartes supplémentaires.Cette extraction est réalisée en fonction des coordonnées (xn, yn) de l’échantillon Pvn du signal d’entrée. Elle peut aussi être réalisée en fonction de la résolution de la carte considérée.
- Selon un mode de réalisation, le vecteur Zn caractéristique résulte directement de cette extraction.
- Les échantillons à coder sont par exemple traités par ordre séquentiel, de n=1 à n=N.
- Selon un mode de réalisation, lors de l'étape E25, le vecteur Zn caractéristique est construit par le module XTR à partir des valeurs extraites des cartes FMvi ou FMSvi pour chaque échantillon Pvn de coordonnées (xn, yn) de l'image d'entrée. Le traitement peut comporter une quantification des valeurs extraites des cartes FMviou 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.
- Dans un mode de réalisation, Zn comporte autant de valeurs que de cartes FMvi ou FMSvi en entrée. Dans ce cas on a J=M.
- Dans un mode de réalisation, Zn est un J-uplet (z1, z2,…, zJ), constitué des valeurs des cartes FMvi ou FMSvi situées aux coordonnées (xn, yn) du pixel courant Pvn, comme il sera illustré à l’appui de la
. - Dans un mode de réalisation, Zn est un J-uplet construit à partir de valeurs prélevées dans les cartes FMvi à des coordonnées qui peuvent être différentes selon les cartes. Par exemple, si les cartes FMvi sont à 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.
- Dans un mode de réalisation, Zn est un J-uplet construit à partir de valeurs prélevées dans les cartes FMvi en appliquant le traitement à une ou plusieurs valeurs des cartes, par exemple un filtrage des valeurs voisines de la valeur ciblée dans une carte. Par exemple, pour un échantillon courant Pvn dans une carte FMvi qui se trouve à la même résolution que le signal d’entrée, on peut extraire les valeurs situées aux coordonnées (xn, yn), (xn-1, yn), (xn, yn-1) et (xn-1, yn-1) et appliquer un traitement à ces valeurs (filtrages, moyennage, interpolation, etc.) pour obtenir la valeur finale (zi) de l’élément i du vecteur Zn relative à cette carte FMvi. Selon un autre exemple, dans une carte FMvi qui se trouve à une résolution moitié du signal d’entrée, on peut considérer les valeurs situées aux coordonnées (xn/2, yn/2), (xn/2-1, yn/2), (xn/2, yn/2-1) et (xn/2-1, yn/2-1) et appliquer un traitement à ces valeurs (filtrages, moyennage, interpolation, etc.) pour obtenir la valeur finale (zi) de l’élément i du vecteur Zn relative à cette carte FMvi.
- Lors d’une étape E26, le vecteur Zn est traité par le réseau de neurones de synthèse MLP pour générer en sortie un vecteur représentatif de l’échantillon Pvn à coder, selon un mode de réalisation le triplet (R, G,B) de l’échantillon P’vn (l’échantillon Pvncodé puis décodé).
- La structure et les paramètres Wvk du réseau de neurones de synthèse (et optionnellement ceux du réseau de neurones de synthèse, et ceux du réseau de neurones de suréchantillonnage s'il existe) 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é.
- 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). 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.
- Lors d’une étape E27, les paramètres Wvk du réseau de neurones de synthèse MLP et les paramètres Ovb du réseau de neurones de prédiction ARM, s’il existe, 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 B2. 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 Wvket optionnellement Ovb.
- Lors d’une étape E28, une mesure de performance est évaluée.
- À cet effet, les débits de simulation de codage associés aux cartes de caractéristiques du premier groupe (simulation du flux B1 par codage des cartes FMvi) et optionnellement aux paramètres du (des) réseau(x) de neurones (simulation du flux B2 par codage des paramètres Wvket optionnellement Ovb) sont mesurés.
- 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 (pour Structural SIMilarity), ou MSSSIM (pour Multi-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.
- Tant que la fonction de coût n’a pas atteint son minimum, la mesure de performance n’est pas satisfaisante, et le procédé est réitéré à partir de l’étape E22. Alternativement, le procédé peut être interrompu au bout d’un temps prédéfini ou d’un nombre d’itérations prédéfini, de façon à en contrôler la complexité ou la durée. 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 E22 pour les valeurs des cartes de caractéristiques et E26, E27 pour les paramètres du ou des réseau(x).
- Lors d’une étape E29, si la fonction de coût a atteint son minimum, 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 (Wvk) et des cartes de caractéristiques (FMvi) 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 (Wvk) et des valeurs des cartes de caractéristiques (FMvi) et optionnellement du réseau de neurones de prédiction (Ovb) est effectué à cette étape pour produire les paramètres encodés Wcvk(optionnellement Ovb) et FMcviqui constituent des flux B1 et B2. Les flux B1 et B2 peuvent être concaténés pour produire un flux final. Selon un mode de réalisation, le flux B2 des paramètres codés du (des) réseau(x) de neurones est (sont) stocké(s) ou transmis avant le flux B1, afin de pouvoir être décodé(s) avant le flux B1.
- La
est un logigramme représentant un exemple de procédé de décodage qui peut être mis en œuvre par le dispositif de décodage de la . - Lors d’une étape E30, les flux B1 et B2 sont extraits du flux encodé. Ils contiennent respectivement, pour une image courante v de la séquence, les représentations codées des cartes du deuxième groupe FMcvi et des paramètres Wcvk, optionnellement des paramètres Ocvb, des images de la séquence.
- Lors d’une étape E31, les M cartes FMdvi d’une image courante v de la séquence sont générées par décodage des valeurs FMcvide l’image courante en fonction des valeurs de cartes de caractéristiques déjà décodées FMdv’ipour d’autres images de la séquence, distinctes de l’image courante. Par exemple, si l’image courante est l’image 3 (v=3), on peut utiliser pour le décodage les cartes de caractéristiques d’une ou plusieurs images précédentes (v'= 1 et/ou v'=2). Selon un autre exemple, on peut utiliser pour le décodage les cartes de caractéristiques d’une ou plusieurs images précédentes (v'= 1 et/ou v'=2) et d’une ou plusieurs images futures de la séquence (v'= 4,....), à condition que celles-ci aient déjà été décodées. Naturellement, si l’image est la première de la séquence, seules les cartes courantes FMd1i sont disponibles. Dans ce cas spécifique, le décodage n’est pas fonction de cartes d’images précédentes, mais simplement de valeurs présentes dans la carte associée à l’image courante.
- Pour le décodage, on utilise une technique de prédiction d’une valeur de carte de caractéristiques par son voisinage temporel, comme il sera décrit par exemple à l’appui de la
. Dans un mode de réalisation, les cartes FMdvi sont décodées dans l’ordre (FMdv1, FMdv2,… FMdv4), et les valeurs de chaque carte dans un ordre prédéfini, par exemple lexicographique. - Selon des modes de réalisation tels que décrits pour le codeur :
- - Les cartes FMdvi sont de même résolution que le signal I(Pdvn) à reconstituer, c’est-à-dire qu’elles comportent N valeurs.
- - Les cartes FMdvi sont à une résolution inférieure ou égale à celle du signal I(Pdvn) à reconstituer.
- - Plusieurs cartes FMdvi sont de même résolution, inférieure à la résolution du signal.
- – Les images v’ de référence, déjà décodées, dont les cartes de caractéristiques sont utilisées pour décoder la carte de caractéristique courante, sont indiquées dans le flux binaire B1, par exemple sous forme d’un index indiquant le numéro d’image dans la séquence.
- - Les images v’ de référence, déjà décodées, dont les cartes de caractéristiques sont utilisées pour décoder la carte de caractéristique courante sont à des positions prédéfinies. Selon des exemples, il peut s’agir de l’image précédente dans la séquence, de la suivante (à condition qu’elle soit déjà décodée), de la première, etc.
- - Les cartes de caractéristiques utilisées pour décoder la carte de caractéristique courante sont indiquées dans le flux binaire B1, par exemple sous forme d’un index indiquant la position de la carte de caractéristique (entre 1 et M) dans le groupe de cartes de caractéristiques associé à une image de référence.
- - Les cartes de caractéristiques utilisées pour décoder la carte de caractéristique courante sont à des positions prédéfinies. Selon des exemples, il peut s’agir de la carte de caractéristique qui se trouve à la même position que la carte de caractéristique courante dans le groupe de cartes de caractéristiques associées à une image de référence, ou la précédente, ou la précédente et la suivante, etc.
- – les cartes de caractéristique du deuxième groupe, associée à l’image courante, sont aussi utilisées pour le décodage de la carte de caractéristique courante. Par exemple, un voisinage spatial de la valeur de la carte de caractéristiques courante peut être extrait dans la carte de caractéristique courante (voisinage causal) ou dans une carte de caractéristique déjà décodée du même (deuxième) groupe.
- Selon un mode de réalisation, une ou plusieurs cartes,formant un groupe supplémentaire de cartes de caractéristiques supplémentaires, sont générées et complètent le deuxième groupe. Elles ne sont pas décodées mais générées par le décodeur de manière identique à la génération du codeur. Elles comportent typiquement des données qui peuvent assister le réseau MLP’ dans la tâche de reconstruction du signal.
- Lors d’une étape E32, selon un mode de réalisation, les M cartes du deuxième groupe FMdvi sont transformées par le module SE’ pour générer des cartes transformées FMS'vià la résolution des images d’entrée. Cette étape est similaire à l’étape E24 qui a été décrite pour le codeur à l’appui de la
, et les modes de réalisation s’appliquent. Notamment : - Selon un mode de réalisation, M cartes FMS’visont générées.
- Selon un mode de réalisation, chaque carte FMdvi est transformée en une carte FMS'vi.
- Selon un mode de réalisation, au moins une carte FMdvi 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 FMS’vitransformée comporte le même nombre d’échantillons que l’image d’entrée. Le suréchantillonnage consiste à rajouter des valeurs dans les cartes FMS’vipour 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.). Il peut aussi être réalisé par un réseau de neurones de suréchantillonnage.
- La transformation peut optionnellement comporter une quantification inverse des valeurs extraites, si nécessaire. Cependant la quantification inverse n’est pas obligatoire.
- Lors d’une étape E33, des valeurs sont extraites par le module XTR’ des cartes FMdvi ou éventuellement FMS’vi transformées.Cette extraction est réalisée en fonction des coordonnées (xn, yn) d’un échantillon Pvn de l’image courante. 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 E25 qui a été décrite pour le codeur à l’appui de la
, et les modes de réalisation s’appliquent. Notamment : - Selon un mode de réalisation, le vecteur Zdn caractéristique résulte directement de cette extraction.
- Dans un mode de réalisation, Zdn est un J-uplet (z1, z2,…, zJ), constitué des valeurs des cartes FMdvi ou FMS’vi situées aux coordonnées (xn, yn) d’un pixel courant Pdvn, comme il sera illustré à l’appui de la
. - Les échantillons à décoder sont par exemple traités par ordre séquentiel, de n=1 à n=N.
- Selon un mode de réalisation, lors d’une étape E33, un vecteur Zdn est construit par le module XTR' à partir des valeurs extraites des cartes FMdvi et FMdv’i du deuxième groupe ou des cartes FMS’vi transformées, et optionnellement de cartes d'un groupe supplémentaire, pour chaque échantillon Pdvn de coordonnées (xn, yn) à décoder, en fonction des coordonnées (xn, yn). Cette étape est similaire à l’étape E25 qui a été décrite pour le codeur à l’appui de la
et 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. - Lors d’une étape E34, les paramètres Wdvk du réseau de neurones de synthèse MLP’ et éventuellement les paramètres Odvb du réseau de neurones de prédiction (et optionnellement les paramètres d'un réseau de suréchantillonnage du module SE) sont générés par décodage des valeurs Wcvk et Ocvb du flux B2. 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 MLP’ est semblable au réseau de synthèse MLP, 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. De même, le réseau de neurones de prédiction ARM », s’il est utilisé pour décoder les cartes de caractéristiques, est semblable au réseau de prédiction ARM, 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.
- Selon un mode de réalisation, le flux B2 est décodé avant le flux B1, afin de pouvoir disposer du réseau de neurones de synthèse MLP’ et éventuellement du réseau de neurones de prédiction ARM’ avant de commencer à décoder les échantillons.
- Lors d’une étape E35, le vecteur Zdn est traité par le réseau de neurones de synthèse MLP' pour générer en sortie un second vecteur représentatif de l’échantillon Pdvn à décoder, selon un mode de réalisation un triplet qui est injecté dans l’image décodée I (Pdvn) aux positions (xn, yn) des composantes couleur (Rd, Gd, Bd) de l'image v. Cette étape est similaire à l’étape E26 qui a été décrite pour le codeur à l’appui de la
. - Lorsque tous les échantillons ont été traités, l’image décodée courante correspondant par exemple à l’image I(Pdvn) est disponible.
- La
représente de manière illustrée un procédé de décodage utilisé dans un mode de réalisation de l’invention. - Dans ce mode de réalisation, les cartes décodées FMdvi associées à l'image courante v de la séquence sont au nombre de 4. Dans un mode préféré, elles sont au nombre de 7.
- Dans ce mode de réalisation, la première carte FMdv1 a la même résolution que l’image Iv, et comporte donc WxH variables, où W représente la largeur de l’image en pixels, et H sa hauteur. La seconde carte FMdv2 est de résolution moitié (dans chaque dimension) de la carte FMdv1. 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.
- Dans ce mode de réalisation, un groupe de cartes de référence associées à une image v' de la séquence, déjà décodée (par exemple l'image précédente dans la séquence, c.-à-d. v'=v-1), est disponible au niveau du décodeur. Le groupe de cartes associées à l'image v' présente la même structure que le groupe de cartes en cours de décodage associé à l'image courante v : la première carte FMdv'1 a la même résolution que l’image Iv', la seconde carte FMdv'2 est de résolution moitié (dans chaque dimension) de la carte FMdv'1, chaque carte supplémentaire est de résolution moitié de la carte précédente.
- Lors du décodage d'une carte courante, par exemple, FMdv1, au moins une carte de référence est utilisée, par exemple FMdv'1et FMdv'2.Comme il sera illustré à l'appui des figures 10 et 11, les cartes de référence sont utilisées pour construire le voisinage des valeurs à décoder dans la carte courante.
- Lorsque les cartes FMdvi sont décodées, la carte FMdv2 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 FMdv3 est suréchantillonnée d’un facteur 4 dans chaque dimension, et la carte FMdv4 d’un facteur 8 dans chaque dimension.
- Les cartes résultantes FMS’vi 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.
- Dans ce mode de réalisation, le vecteur Zdn est un 4-uplet (z1… z4) constitué des valeurs des cartes FMS’vi situées aux coordonnées (xn, yn) du pixel courant Pdvn. Le vecteur Zdn est optionnellement déquantifié puis traité par le réseau de neurones de synthèse MLP’ pour générer en sortie le triplet (R, G, B) représentatif de l’échantillon Pdvn à décoder. Le triplet (R, G, B) est inséré dans l’image décodée I (Pdvn) aux coordonnées (xn, yn) dans les composantes couleur (Rd, Gd, Bd).
- Selon une variante présentée en pointillés, les cartes sont au nombre de 5 : une carte supplémentaire FME’0 a été introduite. Dans ce mode de réalisation, le vecteur Zdn est un 5-uplet. Une telle carte supplémentaire peut être par exemple, de manière non limitative :
– Une carte comportant en chaque point l’abscisse de ce point.
– Une carte comportant en chaque point l’ordonnée de ce point.
– Une carte comportant en chaque point un codage positionnel (comme décrit par exemple à l’adresse internet https:/skosmos.loterre.fr/P66/fr/page/-K0D65X2X-X).
– Une carte représentant une image distincte de l’image en cours de traitement, susceptible d’apporter des informations sur l’image à coder, par exemple l’image précédemment traitée si l’image courante fait partie d’une série d’images à coder comme une vidéo, un ensemble d’images médicales, une représentation multivues, etc.
– Une carte représentant une carte de caractéristiques d’une image distincte de l’image en cours de traitement susceptible d’apporter des informations sur l’image à coder, par exemple une carte précédemment traitée si l’image courante fait partie d’une série d’images à coder comme une vidéo, un ensemble d’images médicales, une représentation multivues, etc.
– Une carte comportant la valeur d’un échantillon déjà décodé de la même carte, par exemple l’échantillon précédent dans l’ordre de décodage. - La
est 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 la et par le procédé de codage de la . - Ces étapes constituent des sous-étapes de l’étape E23 décrite précédemment à l’appui de la
. Elles ont pour but de coder une valeur courante Vvnd’une carte de caractéristiques courante FMvi du second groupe de l'image courante en cours de traitement en utilisant des valeurs de voisinage extraites des cartes de référence FMv'i associées à une image de référence v ». - Lors d’une sous-étape E231, un vecteur de voisinage (Cvn) est établi, comprenant des valeurs voisines de la valeur Vvn.Comme il sera illustré ultérieurement à l’appui des figures 10 et 11, ces valeurs voisines peuvent être situées dans la carte équivalente (c'est-à-dire de même numéro d'ordre dans le groupe) ou/et dans une ou plusieurs cartes différentes de la pluralité M de cartes FMv'i.Ce vecteur de voisinage est constitué d’un nombre C de valeurs, ou données, correspondant à des valeurs de voisinage (par exemple, C=10).
- Selon une variante, des valeurs peuvent également être extraites des cartes FMvi associées à l'image courante, déjà décodées. Dans ce cas, ces valeurs doivent être connues du codeur et du décodeur, elles doivent donc se situer dans un voisinage causal de la valeur Vvn.
- 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 E234. 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.
- Dans un deuxième mode de réalisation, le voisinage est utilisé pour prédire, au cours d’une étape E232, 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 E234.
- Dans un troisième mode réalisation, comme illustré à l’appui de la
, un réseau de neurones de prédiction ARM est utilisé au cours de l’étape E233 pour prédire les caractéristiques statistiques de la variable à coder. Le vecteur de voisinage est donné en entrée du réseau ARM, pour fournir en sortie une prédiction de la valeur courante. Selon un mode de réalisation, le réseau ARM se comporte comme une fonction fѱ telle que décrite à l’appui de la , qui fournit un ensemble de paramètres statistiques (moyenne, variance, médiane, etc.) utilisés pour coder la valeur courante de manière entropique. Le rôle de ce module ARM est de prédire au mieux la valeur courante, pour l’ensemble des valeurs Vvn à coder des cartes FMvi, afin de réduire le débit nécessaire au codage des cartes de caractéristiques. Selon un autre mode de réalisation, le réseau de neurones de prédiction ARM est utilisé pour produire la probabilité (pr) attendue de la valeur possible de l’échantillon courant. Le codage entropique est adapté à cette probabilité (comme il est connu pour le codage entropique de Huffman ou arithmétique). - Dans un quatrième mode de réalisation, chaque carte de caractéristiques est divisée en blocs de taille prédéterminée, et le codage de chaque bloc comporte une transformée (par exemple une DCT, Discrete, Cosine Transform, une transformée de Haar, etc.), et les valeurs transformées sont codées par un codage entropique.
- À l’issue du procédé, la valeur codée courante Vvnde la carte courante FMvien cours de traitement est codée sous la forme d'une variable Vcvn.
- La
est 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 la et par le procédé de décodage de la . - Ces étapes constituent des sous-étapes de l’étape E31 décrite précédemment à l’appui de la
. Elles ont pour but de décoder une valeur courante Vdvnd’une carte de caractéristiques courante FMdvi du second groupe de l'image courante en cours de traitement,en utilisant des valeurs du voisinage extrait des cartes de référence FMdv'i associées à des images de référence déjà décodées. - Lors d’une sous-étape E311, un vecteur de voisinage (Cdvn) est établi, comprenant des valeurs voisines de la valeur Vdvn.Cette étape est similaire à m’étape E231 précédemment décrite et les mêmes modes de réalisation s’appliquent. Notamment, ces valeurs voisines peuvent être situées dans la carte équivalente (c'est-à-dire de même numéro d'ordre dans le groupe de cartes de caractéristiques) ou/et dans une ou plusieurs cartes différentes de la pluralité M de cartes FMdv'i..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 FMdvi.
- Selon une variante, des valeurs peuvent également être extraites des cartes FMdvi de l'image courante. Dans ce cas, ces valeurs doivent être connues du codeur et du décodeur, elles doivent donc se situer dans un voisinage causal de la valeur Vdvn.
- 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 E314. Ce décodage est de type 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.
- Dans un deuxième mode de réalisation, le voisinage est utilisé pour prédire au cours d’une étape E312 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 E314.
- Dans un troisième mode réalisation, comme illustré à l’appui de la
, un réseau de neurones de prédiction ARM’ est utilisé à l’étape E313 pour prédire les caractéristiques statistiques de la variable à décoder. Le vecteur de voisinage est appliqué en entrée du réseau ARM », pour fournir en sortie une prédiction de la valeur courante. Selon un mode de réalisation, le réseau ARM se comporte comme une fonction fѱ telle que décrite à l’appui de la , définie par un ensemble de paramètres statistiques (moyenne, variance, médiane, etc.) utilisés pour décoder la valeur courante de manière entropique. Selon un autre mode de réalisation, le réseau de neurones de prédiction ARM’ est utilisé pour produire la probabilité (pr) attendue de la valeur possible de l’échantillon courant. Le décodage entropique est adapté à cette probabilité (comme il est connu pour le codage entropique de Huffman ou arithmétique). Le réseau ARM’ est identique au réseau ARM si le codage a été effectué sans perte. - Dans un quatrième mode de réalisation, chaque carte de caractéristiques est divisée en blocs de taille prédéterminée, et le décodage de chaque bloc comporte le décodage entropique de valeurs qui subissent ensuite une transformée inverse (par exemple une DCT inverse, Discrete, Cosine Transform, une transformée de Haar inverse, etc.).
- À l’issue du procédé, la valeur décodée courante Vdvnde la carte courante FMdvien cours de traitement est décodée.
- La
représente de manière illustrée une méthode de codage ou de décodage de cartes de caractéristiques selon l’un des modes de réalisation. - Dans cette illustration, le codage (resp. décodage) de la valeur courante Vvn (resp. Vdvn) située en coordonnées (xn, yn) dans la carte de caractéristiques courante FMv1 (c’est-à-dire celle qui est en cours de codage ou de simulation de codage) (resp. FMdv1 - c’est-à-dire celle qui est en cours de décodage) utilise l’information contextuelle de deux cartes d'une image de référence v' qui a déjà été décodée : la carte FMv'1 qui se situe à la même position que la carte courante dans le groupe de cartes de référence, et la carte précédente FMv'2(resp. FMdv'2). Les valeurs situées aux coordonnées (xn-1, yn-1), (xn-1, yn), (xn-1, yn+1), (xn, yn-1), (xn, yn), (xn, yn+1), (xn+1, yn-1), (xn+1, yn), (xn+1, yn+1) dans la carte FMv'1 (resp. FMdv'1), et les variables situées aux coordonnées (xn/2-1, yn/2-1), (xn/2-1, yn/2), (xn/2, yn/2-1), (xn/2, yn/2) dans la couche FMv'2(resp. FMdv2) sont utilisées pour déterminer le voisinage pour coder (resp. décoder) la valeur courante. Ces valeurs, qui sont toutes disponibles au codeur et au décodeur, constituent le vecteur de voisinage Cvn (resp. Cdvn) de la valeur à coder Vvn (resp. Vdvn) qui peut être utilisé dans l’un des modes de réalisation décrit précédemment à l’appui de la
(resp. ). - La
représente de manière illustrée une autre méthode de codage ou de décodage de cartes de caractéristiques selon l’un des modes de réalisation - Dans cette illustration, le codage (resp. décodage) de la valeur courante Vvn (resp. Vdvn) située en coordonnées (xn, yn) dans la carte de caractéristiques courante FMv1 (resp. FMdv1) utilise l’information contextuelle de la carte de référence située à la même position dans une image de référence v ». Les valeurs représentées en gris sont utilisées pour déterminer le voisinage pour coder (resp. décoder) la valeur courante. Ces valeurs, qui sont toutes disponibles au codeur et au décodeur, constituent le vecteur de voisinage Cvn (resp. Cdvn) de la valeur Vvn (resp. Vdvn) qui peut être utilisé dans l’un des modes de réalisation décrits précédemment à l’appui de la
(resp. ). - Dans le mode de réalisation illustré, le vecteur de voisinage est extrait par un module CTX (resp. CTX ») du module de codage FMC (resp. FMD), puis il est appliqué à l’entrée du réseau de neurones de prédiction ARM (resp. ARM »), utilisé pour prédire les caractéristiques statistiques (µ,σ) ou la probabilité (pr) de la valeur à coder (resp. décoder) représentée par une croix. La valeur est codée (resp. décodée) par le codeur entropique CE (resp. DE).
Claims (15)
- Procédé de codage d’une séquence d’images (Sv) comportant les étapes suivantes :
- une étape de construction, comportant les sous-étapes suivantes pour au moins une image courante (v, I(Pvn)) de la séquence :
- construction (E21, E22) d’un premier groupe de cartes de caractéristiques (FMv'i) représentatives d’au moins une image distincte de l’image courante (v', I(Pv'n)), dite image de référence ;
- construction (E21, E22) d’un deuxième groupe de cartes de caractéristiques (FMvi) représentatives de l’image courante (v, I(Pvn));
- pour au moins un échantillon, dit échantillon courant (Pvn), de l'image courante, associé à une position (xn, yn) dans l'image courante :
- construction (E25) d’un vecteur caractéristique (Zn) à partir desdites cartes de caractéristiques (FMvi) dudit deuxième groupe, en fonction de ladite position (xn, yn) dudit échantillon courant (Pvn) ;
- traitement (E26) dudit vecteur caractéristique (Zn) par un réseau de neurones artificiels (MLP), dit réseau de neurones de synthèse, défini par un ensemble de paramètres (Wvk), pour fournir un vecteur (P’vn) représentatif d’une valeur décodée dudit au moins un échantillon courant ;
- mise à jour (E22, E27) d'au moins une valeur d’une desdites cartes de caractéristiques dudit deuxième groupe et/ou d’au moins un paramètre dudit réseau, en fonction d’une mesure de performance de codage,
- une étape de codage (E23) dudit second groupe de cartes de caractéristiques (FMvi) comprenant, pour au moins une valeur, dite valeur courante (Vvn), d’une desdites cartes de caractéristiques, dite carte courante, un codage entropique de ladite valeur en fonction d'un voisinage comprenant au moins une valeur (Vv’n) extraite d'au moins une carte, dite carte de référence, du premier groupe de cartes de caractéristiques,
- une étape de codage (E27) dudit ensemble de paramètres (Wvk) dudit réseau de neurones de synthèse. - Procédé de codage selon la revendication 1, caractérisé en ce que l’étape de codage de ladite valeur courante (Vvn) comprend les sous-étapes suivantes :
- construction (E231) d’un vecteur de voisinage (Cv'n) comprenant ladite au moins une valeur du voisinage extraite de ladite au moins une carte de référence (FMv'i) ;
- traitement (E233) dudit vecteur de voisinage (Cv'n) par un réseau de neurones artificiels, dit réseau de neurones de prédiction (ARM), défini par un ensemble de paramètres (Ovb), pour fournir une prédiction de ladite valeur courante (Vvn);
- mise à jour (E22, E23, E28) d’au moins un paramètre dudit réseau de prédiction, en fonction de la mesure de performance de codage,
- une étape de codage dudit ensemble de paramètres (Ovb) dudit réseau de prédiction. - Procédé de décodage à partir d'un flux binaire d’une séquence d’images (Sv), comportant les étapes suivantes pour au moins une image courante (v, I(Pdvn)) de la séquence :
- obtention (E31) d’au moins une carte de caractéristiques (FMdv’i), dite carte de référence, d’un premier groupe de cartes de caractéristiques décodées représentatives d’au moins une image distincte de l’image courante (v', I(Pdv'n)), dite image de référence.
- décodage (E31) d’un deuxième groupe de cartes de caractéristiques (FMdvi) représentatives de l’image courante comprenant, pour au moins une valeur, dite valeur courante (Vdvn), d’une desdites cartes de caractéristiques, dite carte courante, un décodage entropique (DE) de ladite valeur en fonction d’un voisinage comprenant au moins une valeur décodée (Vdv'n) extraite de ladite au moins une carte de référence ;
- décodage (E34) d’un ensemble de paramètres (Wdvk) représentatifs d’un réseau de neurones de synthèse (MLP’) ;
- pour au moins un échantillon, dit échantillon courant (Pdvn), de l’image courante (v), associé à une position (xn, yn) dans l’image courante:
- construction (E33) d’un vecteur caractéristique (Zdn) à partir des cartes de caractéristiques dudit deuxième groupe (FMdvi), en fonction de ladite position (xn, yn) dudit échantillon courant, et :
- traitement (E35) dudit vecteur (Zdn) par ledit réseau de neurones de synthèse (MLP’) pour fournir un vecteur représentatif d’une valeur décodée dudit au moins un échantillon courant (Pdvn). - Procédé de décodage selon la revendication 3, caractérisé en ce que l’étape de décodage de ladite valeur courante (Vdvn) comprend les sous-étapes suivantes :
- décodage (E34) d’un ensemble de paramètres (Odvk) représentatifs d’un réseau de neurones, dit réseau de neurones de prédiction (ARM') ;
- construction (E311) d’un vecteur de voisinage (Cdvn) comprenant ladite au moins une valeur décodée (Vv'n) extraite de ladite au moins une carte de référence (FMdv'i) ;
- traitement (E313) dudit vecteur de voisinage (Cdvn) par le réseau de neurones de prédiction (ARM'), pour fournir une prédiction de ladite valeur courante (Vdvn). - Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que lesdits premier et deuxième groupes (FMdv'i, FMdvi) contiennent le même nombre (M) de cartes de caractéristiques.
- Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que ladite au moins une carte de référence (FMdv'i) est à la même résolution que la carte courante (FMdvi).
- Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que ladite au moins une image de référence (v') est indiquée dans le flux binaire.
- Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que ladite au moins au moins une image de référence (v') est prédéterminée.
- Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que ladite au moins une carte de référence est indiquée dans le flux binaire.
- Procédé de codage ou de décodage selon l'une des revendications précédentes, caractérisé en ce que ladite au moins une carte de référence est prédéterminée.
- Procédé de codage selon la revendication 2 ou de décodage selon l'une des revendications 4 à 10, caractérisé en ce que ladite au moins une valeur décodée (Vdv'n) extraite de ladite au moins une carte de référence est à la même position (xn,yn) dans ladite au moins une carte de référence (FMdv’i) que la valeur courante (Vdvn) dans la carte de caractéristiques courante (FMdvi).
- Procédé de codage selon la revendication 2 ou de décodage selon l'une des revendications 4 à 11, caractérisé en ce que le vecteur de voisinage comporte en outre au moins une deuxième valeur décodée (Vdn') extraite d’une autre carte de référence.
- Dispositif de codage d’une séquence d’images (Sv), ledit dispositif étant configuré pour mettre en œuvre :
- une étape de construction, comportant les sous-étapes suivantes pour au moins une image courante (v, I(Pvn)) de la séquence :
- construction (GEN, MAJ) d’un premier groupe de cartes de caractéristiques (FMv'i) représentatives d’au moins une image distincte de l’image courante (v', I(Pv'n)), dite image de référence ;
- construction (GEN, MAJ) d’un deuxième groupe de cartes de caractéristiques (FMvi) représentatives de l’image courante (v, I(Pvn));
- pour au moins un échantillon, dit échantillon courant (Pvn), de l'image courante, associé à une position (xn, yn) dans l'image courante :
- construction (XTR) d’un vecteur caractéristique (Zn) à partir desdites cartes de caractéristiques (FMvi) dudit deuxième groupe, en fonction de ladite position (xn, yn) dudit échantillon courant (Pvn) ;
- traitement (MLP) dudit vecteur caractéristique (Zn) par un réseau de neurones artificiels, dit réseau de neurones de synthèse, défini par un ensemble de paramètres (Wvk), pour fournir un vecteur (P’vn) représentatif d’une valeur décodée dudit au moins un échantillon courant ;
- mise à jour (MAJ) d'au moins une valeur d’une desdites cartes de caractéristiques dudit deuxième groupe et/ou d’au moins un paramètre dudit réseau, en fonction d’une mesure de performance de codage,
- une étape de codage (FMC, ARM) dudit second groupe de cartes de caractéristiques (FMvi) comprenant, pour au moins une valeur, dite valeur courante (Vvn), d’une desdites cartes de caractéristiques, dite carte courante, un codage entropique de ladite valeur en fonction d'un voisinage comprenant au moins une valeur (Vv’n) extraite d'au moins une carte, dite carte de référence, du premier groupe de cartes de caractéristiques,
- une étape de codage (NNC) dudit ensemble de paramètres (Wvk) dudit réseau de neurones de synthèse. - Dispositif de décodage à partir d'un flux binaire d’une séquence d’images (Sv), ledit dispositif étant configuré pour mettre en œuvre, pour au moins une image courante (v, I(Pdvn)) de la séquence :
- obtention (FMD) d’au moins une carte de caractéristiques (FMdv’i), dite carte de référence, d’un premier groupe de cartes de caractéristiques décodées représentatives d’au moins une image distincte de l’image courante (v', I(Pdv'n)), dite image de référence.
- décodage (FMD) d’un deuxième groupe de cartes de caractéristiques (FMdvi) représentatives de l’image courante comprenant, pour au moins une valeur, dite valeur courante (Vdvn), d’une desdites cartes de caractéristiques, dite carte courante, un décodage entropique (DE) de ladite valeur en fonction d’un voisinage comprenant au moins une valeur décodée (Vdv'n) extraite de ladite au moins une carte de référence ;
- décodage (NND) d’un ensemble de paramètres (Wdvk) représentatifs d’un réseau de neurones de synthèse (MLP’) ;
- pour au moins un échantillon, dit échantillon courant (Pdvn), de l’image courante (v), associé à une position (xn, yn) dans l’image courante:
- construction (XTR ») d’un vecteur caractéristique (Zdn) à partir des cartes de caractéristiques dudit deuxième groupe (FMdvi), en fonction de ladite position (xn, yn) dudit échantillon courant, et :
- traitement (MLP') dudit vecteur (Zdn) par ledit réseau de neurones de synthèse (MLP’) pour fournir un vecteur représentatif d’une valeur décodée dudit au moins un échantillon courant (Pdvn). - Programme d’ordinateur comportant des instructions pour l’exécution des étapes d'un procédé de codage ou de décodage selon la revendication 1 ou 3 lorsque ledit programme est exécuté par un ordinateur.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2306451A FR3150384A1 (fr) | 2023-06-22 | 2023-06-22 | Procédé et dispositif de codage et décodage de séquences d’images. |
| PCT/EP2024/062656 WO2024260629A1 (fr) | 2023-06-22 | 2024-05-07 | Procédé et dispositif de codage et décodage de séquences d'images |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4732242A1 true EP4732242A1 (fr) | 2026-04-29 |
Family
ID=88689944
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24724530.1A Pending EP4732242A1 (fr) | 2023-06-22 | 2024-05-07 | Procédé et dispositif de codage et décodage de séquences d'images |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP4732242A1 (fr) |
| KR (1) | KR20260027263A (fr) |
| CN (1) | CN121605433A (fr) |
| FR (1) | FR3150384A1 (fr) |
| WO (1) | WO2024260629A1 (fr) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117730537A (zh) * | 2021-07-06 | 2024-03-19 | 诺基亚技术有限公司 | 经由基于学习神经网络的过滤器对机器视觉任务的性能改进 |
-
2023
- 2023-06-22 FR FR2306451A patent/FR3150384A1/fr not_active Withdrawn
-
2024
- 2024-05-07 WO PCT/EP2024/062656 patent/WO2024260629A1/fr not_active Ceased
- 2024-05-07 EP EP24724530.1A patent/EP4732242A1/fr active Pending
- 2024-05-07 CN CN202480049701.6A patent/CN121605433A/zh active Pending
- 2024-05-07 KR KR1020267001759A patent/KR20260027263A/ko active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024260629A1 (fr) | 2024-12-26 |
| KR20260027263A (ko) | 2026-02-27 |
| FR3150384A1 (fr) | 2024-12-27 |
| CN121605433A (zh) | 2026-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR3143245A1 (fr) | Procédé et dispositif de codage et décodage d’images. | |
| WO2024240496A1 (fr) | Procédé et dispositif de codage et décodage d'images | |
| WO2024260629A1 (fr) | Procédé et dispositif de codage et décodage de séquences d'images | |
| WO2024260628A1 (fr) | Procédé et dispositif de codage et décodage de séquences d'images | |
| FR3143246A1 (fr) | Procédé et dispositif de codage et décodage d’images. | |
| FR3143247A1 (fr) | Procédé et dispositif de codage et décodage de séquences d’images. | |
| FR3143248A1 (fr) | Procédé et dispositif de codage et décodage d’images. | |
| WO2024240497A1 (fr) | Procédé et dispositif de codage et décodage d'images. | |
| WO2025056651A1 (fr) | Procédé et dispositif de codage et décodage de séquences d'images | |
| WO2026003293A1 (fr) | Procédé et dispositif de codage et décodage d'un signal | |
| WO2025056653A1 (fr) | Procédé et dispositif de codage et décodage d'images | |
| FR3164086A1 (fr) | Procédé et dispositif de codage et décodage d’images | |
| FR3164089A1 (fr) | Procédé et dispositif de codage et décodage d’images | |
| WO2026087142A1 (fr) | Procédé et dispositif de codage et décodage d'images | |
| WO2025120066A1 (fr) | Procédé et dispositif de codage et décodage contextuel de séquences d'images | |
| WO2025180860A1 (fr) | Procédé et dispositif de codage et décodage d'images avec mécanisme de correction | |
| WO2026003351A1 (fr) | Procédé et dispositif de codage et décodage d'un signal | |
| WO2025180859A1 (fr) | Procédé et dispositif de codage et décodage d'images avec mécanisme de correction | |
| WO2025261758A1 (fr) | Procédés de codage et de décodage, dispositifs et programme d'ordinateur correspondants | |
| WO2025056649A1 (fr) | Procédé et dispositif de codage et décodage d'images avec mécanisme d'attention. | |
| FR3163513A1 (fr) | Procédés de codage et de décodage, dispositifs et programme d’ordinateur correspondants. | |
| FR3030975A1 (fr) | Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20260119 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |