EP4721402A1 - Procédé et dispositif de codage et décodage d'images - Google Patents
Procédé et dispositif de codage et décodage d'imagesInfo
- Publication number
- EP4721402A1 EP4721402A1 EP24724529.3A EP24724529A EP4721402A1 EP 4721402 A1 EP4721402 A1 EP 4721402A1 EP 24724529 A EP24724529 A EP 24724529A EP 4721402 A1 EP4721402 A1 EP 4721402A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- maps
- convolution
- group
- parameters
- synthesis
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un procédé et dispositif de codage et décodage d'images comprenant une pluralité d'échantillons à coder ou décoder. Le procédé de décodage comporte les étapes suivantes : - décodage (E31) d'un groupe de (M) cartes de caractéristiques (FMdi); - obtention (E32) d'un ensemble de paramètres de synthèse (Wck) représentatifs d'un module de synthèse (MLP'); - obtention (E32) d'un ensemble de paramètres de convolution (Vck) représentatifs d'un réseau de neurones de convolution; - traitement (E33, E34) dudit groupe de cartes de caractéristiques par le réseau de neurones de synthèse (MLP') pour fournir un groupe de (NE) cartes de valeurs latentes (L'j), le nombre de cartes de valeurs latentes étant inférieur ou égal au nombre de cartes de caractéristiques;. - traitement (E35) dudit groupe de cartes de valeurs latentes par le réseau de neurones de convolution (MPP») pour fournir ladite au moins une image décodée (I(Pdn)).
Description
- L’invention se rapporte au domaine général du codage de séquences d’images numériques.
- Les images ou 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. De surcroît les réseaux de neurones utilisés au codeur et au décodeur sont différents. Le document US 2022/0385907 décrit un tel système d'auto-encodeur.
- 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.
- Le document US 2022/0385907 décrit également un système de codage et décodage fondé sur l'utilisation de telles représentations neuronales implicites.
- Il existe cependant 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 image au moins comportant les étapes suivantes :
- une étape de construction de ladite au moins une image codée puis décodée, comportant les sous-étapes de :
- construction d’un groupe de cartes de caractéristiques ;
- traitement dudit groupe de cartes de caractéristiques par un module de synthèse, défini par des paramètres de synthèse, pour fournir un groupe de cartes de valeurs latentes, le nombre de cartes de valeurs latentes étant inférieur ou égal au nombre de cartes de caractéristiques ;
- traitement dudit groupe de cartes de valeurs latentes par un réseau de neurones de convolution au moins, défini par des paramètres de convolution, pour fournir ladite au moins une image codée puis décodée;
- mise à jour d'au moins une valeur d’une desdites cartes de caractéristiques et/ou d’au moins un paramètre de synthèse et/ou d’au moins d'un paramètre de convolution, en fonction d’une mesure de performance de codage ;
- une étape de codage dudit groupe de cartes de caractéristiques et dudit ensemble de paramètres de synthèse et de convolution. - L'invention vise aussi un procédé de décodage d’une image au moins à partir d'un flux binaire, comportant les étapes suivantes :
- décodage d’un groupe de cartes de caractéristiques ;
- obtention d’un ensemble de paramètres de synthèse représentatifs d’un module de synthèse;
- obtention d’un ensemble de paramètres de convolution représentatifs d’un réseau de neurones de convolution au moins ;
- traitement dudit groupe de cartes de caractéristiques par ledit module de synthèse pour fournir un groupe de cartes de valeurs latentes, le nombre de cartes de valeurs latentes étant inférieur ou égal au nombre de cartes de caractéristiques ; .
- traitement dudit groupe de cartes de valeurs latentes par ledit au moins un réseau de neurones de convolution pour fournir ladite au moins une image décodée.
- Au sens de l’invention, on entend par encodage, ou « codage », l’opération qui consiste à représenter un ensemble d’échantillons, ou pixels, de l'image ou de la pluralité d'images, 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 de l'image ou de la pluralité d'images.
- Par « image » on entend une image numérique bidimensionnelle comportant une ou plusieurs composantes (de couleur, de profondeur, de vues, etc.)
- Par « une image au moins » 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 » ou « pixel », on entend une valeur ou un ensemble de valeurs prélevées dans une image. 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 couleur représenté traditionnellement par un triplet de valeurs, chaque valeur appartenant à une composante, par exemple (R,G,B) ou (Y,U,V). La position de l’échantillon peut être 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 ou d'une séquence d’images, 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 ou d’une séquence peut donc comporter plusieurs cartes de caractéristiques. La représentation abstraite d'une ou plusieurs images peut aussi correspondre à une seule carte de caractéristiques.
- Par « carte de valeurs latentes », on entend une partie d’une représentation abstraite d'une image ou d'une séquence d’images, comportant une pluralité de données scalaires variables, que l’on appelle aussi valeurs latentes, par exemple des nombres réels, ou des nombres entiers, signés ou non. La représentation abstraite d’une image ou d’une séquence peut donc comporter plusieurs cartes de valeurs latentes. La représentation abstraite d'une ou plusieurs images peut aussi correspondre à une seule carte de valeurs latentes. Ces cartes résultent du traitement des cartes de caractéristiques par un module de synthèse, par exemple un réseau de neurones de synthèse.
- Par « module de synthèse », on entend par exemple un réseau de neurones, ou un banc de filtres, ou une transformation inverse linéaire (ondelette, DCT,…) défini par ses paramètres Wk, apte à traiter les cartes caractéristiques transformées en entrée, pour générer en sortie un ensemble de NL cartes de valeurs latentes.
- Par « réseau de neurones de synthèse » et « réseau de neurones de convolution », on entend un réseau neuronal tel un réseau neuronal convolutif, un perceptron multicouche, 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 est 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, ou la pluralité de réseaux de neurones, par un exemple un poids associé à l’un des neurones (coefficient de filtre, valeurs d’une matrice, pondération, biais, valeur affectant le fonctionnement de la non-linéarité, etc.)
- Par « génération de ladite au moins une image », on entend une étape qui vise à reconstruire les échantillons décodés de l’image ou de la pluralité d'images.
- 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 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 valeurs codées puis décodées des pixels de l'image ou de la pluralité d'images, et les paramètres représentatifs de l’image, notamment les valeurs des cartes de caractéristiques et les paramètres des réseaux de neurones, 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 image ou séquence d’images d’entrée, en entraînant des réseaux de neurones sur des cartes de caractéristiques puis des cartes de valeurs latentes 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 et des cartes de valeurs latentes 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 des réseaux de neurones et des valeurs des cartes de caractéristiques peut être effectué et mémorisé ou transmis à destination du décodeur. Les cartes de valeurs latentes ne sont ni codées ni transmises.
- Avantageusement, le processus d’entraînement permet de raffiner les paramètres des réseaux de neurones 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 ou la séquence d’images d’entrée en cours de codage. L’entraînement des valeurs des cartes de caractéristiques et des paramètres des réseaux de neurones peut être conjoint. Avantageusement, le procédé de codage selon l’invention permet de compresser efficacement le signal.
- Avantageusement, la compression des cartes de caractéristiques est efficace puisque cela permet de la véhiculer sur des réseaux ou sur des supports de stockage à capacités réduites.
- Par ailleurs, l’utilisation de deux ensembles de réseaux, de synthèse puis convolution, est avantageuse en soi, car cela permet d’entrainer séparément les deux réseaux pour assurer une meilleure convergence. Selon certains modes de réalisation, il est possible de figer l'un des deux réseaux et de n’en apprendre qu’un, ainsi seuls les paramètres du réseau appris seront transmis au décodeur.
- Par ailleurs, le nombre de cartes de valeurs latentes étant inférieur ou égal au nombre de cartes de caractéristiques, le nombre d'opérations à effectuer par le réseau de convolution s'en trouve restreint. On obtient ainsi une complexité réduite, car moins de données sont traitées. Avantageusement, le procédé de décodage est simple puisqu'il suffit de décoder les cartes de caractéristiques associées à une image ou à un groupe d'images, et d'obtenir les réseaux de neurones de synthèse et/ou de convolution, pour reconstituer une version décodée de l’image courante ou du groupe d’images courantes.
- Un tel réseau de neurones de synthèse ou de convolution peut avantageusement être de structure très simple avec peu de paramètres et peu d’opérations par échantillon.
- Selon des modes de réalisation du procédé de codage ou de décodage :
- - Ladite au moins une image comprend une pluralité d’échantillons à décoder, et l'étape de traitement dudit groupe de cartes de caractéristiques pour fournir un groupe de cartes de valeurs latentes comprend les sous-étapes suivantes :
- pour au moins un échantillon, dit échantillon courant, de ladite au moins une image à décoder, associé à une position :
- construction d’un vecteur caractéristique à partir des cartes de caractéristiques, en fonction de ladite position dudit échantillon courant, et :
- traitement dudit vecteur caractéristique par ledit module de synthèse pour fournir un vecteur latent, représentatif d’une valeur latente de l’échantillon courant ;
- construction du groupe de cartes de valeurs latentes à partir dudit au moins un vecteur latent. - Avantageusement selon ce mode, le module de synthèse est de type positionnel ; l'enchaînement d'un réseau de synthèse de type positionnel et d'un réseau de convolution permet de réaliser un traitement local au niveau du réseau de synthèse, puis de le corriger par l'utilisation du réseau de convolution.
- - Le module de synthèse comprend un perceptron multicouche, ou MLP. Un tel réseau de neurones est avantageusement 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 et sur un bloc particulier de l’image.
- - Le réseau de convolution comporte au moins une couche de convolution. Ainsi, un traitement non localisé de l’image peut être effectué, ce qui permet d’améliorer la cohérence de l’image générée en limitant le bruit et en améliorant les contours présents dans l’image.
- - Le nombre de cartes de valeurs latentes est égal au nombre de composantes de l'image. Avantageusement, on limite la complexité en traitant exactement le nombre de composantes des pixels de sortie (par exemple, trois dans le cas d'une image RGB ou YUV). Selon une variante, chacune des cartes de valeurs latentes (correspondant par exemple aux composantes Y, U et V) peut être traitée indépendamment. On limite encore ainsi la complexité du traitement, car il y a moins d’opérations de multiplication/addition au niveau du réseau de convolution, et de ce fait une limitation de l'espace requis en mémoire du codeur et du décodeur, ainsi qu'un coût moindre des paramètres de convolution.
- – Une partie au moins de l'ensemble de paramètres de synthèse et/ou de convolution est obtenue (resp. codée) à partir de données dudit flux binaire (resp. codé dans le flux binaire) ; avantageusement selon ce mode, les paramètres des réseaux de neurones sont transmis dans le flux. Le module de synthèse et/ou de convolution peut être transmis sous une forme quantifiée et codée sous une forme compacte à l’aide de tout quantificateur et codeur entropique accessible à l'homme du métier. Un format analogue à celui de la norme MPEG-7 NNR peut être employé.
- – Une partie au moins de l'ensemble de paramètres de synthèse et/ou de convolution est obtenue (resp. codée) à partir de paramètres prédéterminés. Avantageusement selon ce mode, les paramètres des réseaux de neurones sont accessibles du décodeur, par exemple ils peuvent être mémorisés dans une mémoire de stockage (resp. codé dans une mémoire de stockage). Notamment, une partie du module de synthèse et/ou de convolution peut être stocké sous une forme quantifiée et codée sous une forme compacte à l’aide de tout quantificateur et codeur entropique accessible à l'homme du métier. Un format analogue à celui de la norme MPEG-7 NNR peut être employé.
- – Une partie au moins de l'ensemble de paramètres de synthèse et/ou de convolution est obtenue (resp. codée) en fonction de paramètres de référence. Avantageusement selon ce mode, les paramètres du réseau de neurones sont décodés en prenant en compte des paramètres de référence qui peuvent être stockés dans une mémoire (mémoire de stockage, réseau, etc.) accessible du décodeur. Ainsi l'espace de stockage ou le débit de transmission sur le réseau peuvent être efficacement réduits : certains paramètres peuvent être codés/décodés de manière complémentaire, d'autre ne pas être codés/décodés du tout, car disponibles dans les paramètres de référence. Selon des variantes de réalisation, qui peuvent être combinées entre elles :
- les paramètres de référence peuvent constituer un ensemble de variantes d'un réseau de synthèse et/ou de convolution : type de convolution, modules d'attention, etc. Ainsi, seuls ces paramètres nécessitent d'être codés, insérés dans le flux et décodés par le décodeur ;
- certains paramètres de synthèse et/ou de convolution sont codés de manière complémentaire aux paramètres du réseau de référence. Ainsi il suffira au décodeur de décoder ces paramètres résiduels puis de les ajouter, les multiplier (ou les combiner de toute autre manière connue) à ceux du réseau de neurones de référence ;
- une partie des paramètres du réseau de référence est réutilisée pour le réseau de synthèse et/ou de convolution. Par exemple, une couche complète du réseau peut être recopiée du réseau de référence, les paramètres de cette couche ne sont donc ni codés, ni transmis, ni décodés ;
- un indicateur de réseau de référence est transmis dans le flux. Il est ainsi possible d'indiquer un réseau à utiliser au décodage parmi une pluralité de réseaux possibles connus du décodeur.
- - Ledit au moins un réseau de convolution comporte au moins deux réseaux de convolution. Avantageusement, l'utilisation de plusieurs réseaux en cascade permet notamment de rehausser le filtrage et améliorer la cohérence de l’image générée en limitant son bruit et améliorant ses contours. En outre chaque réseau peut être appris individuellement ou figé indépendamment. Selon des variantes de réalisation, qui peuvent être combinées entre elles :
- le flux binaire comporte un indicateur indiquant l'utilisation d'un desdits réseaux au moins. Ainsi, en fonction de la qualité et de la complexité requises, un ou plusieurs réseaux peuvent être utilisés au décodage. L'indicateur indique par exemple que le réseau 1 est obligatoire, mais que les réseaux 2 et 3, qui se trouvent en cascade derrière le réseau 1, sont optionnels. Le décodeur peut alors faire le choix de les utiliser ou non : s'il les utilise, il obtiendra une meilleure qualité au détriment de la complexité, et vice-versa.
- Au moins deux des réseaux de convolution comportent des paramètres communs. Il est ainsi possible, avantageusement, de transmettre les paramètres caractéristiques d'un réseau, qui peuvent être utilisés pour les autres, ce qui permet de réduire le coût de transmission. Le même réseau est ainsi mutualisé.
- Au moins deux des réseaux ont une structure identique et seuls leurs poids diffèrent en partie ou totalement. Les mêmes éléments de calcul sont ainsi mutualisés.
- – Au moins une image comporte au moins deux dimensions, et ladite couche de convolution utilise un noyau séparable selon lesdites au moins deux dimensions. Avantageusement selon ce mode, le coût de transmission et la complexité sont réduits par l'utilisation d’opérations (par exemple, convolution, suréchantillonnage, etc.) séparables, qui nécessitent moins d'opérations que des opérations non séparables.
- 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 contrôle 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.
- Un 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 représente schématiquement des réseaux de neurones artificiels de synthèse et de convolution utilisés dans un mode de réalisation de l’invention au codage et au décodage.
-
la représente schématiquement des réseaux de neurones artificiels de synthèse et de convolution utilisés dans un autre mode de réalisation de l’invention au codage et au décodage.
-
La représente schématiquement des réseaux de convolution selon des modes de réalisation de l'invention.
-
La représente schématiquement des réseaux de convolution selon des modes de réalisation 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
représente schématiquement un dispositif de codage d’images numériques ENC. - Le dispositif de codage ENC de la
reçoit en entrée une succession d’échantillons à coder, notés Pn, par exemple un ensemble de données d’image noté I(Pn). Le signal d’image I(Pn) peut représenter une image bidimensionnelle, ou une pluralité d’images bidimensionnelles (vidéo, composantes de couleur, composantes stéréoscopiques, multiscopiques, etc.). Pn désigne un échantillon n du signal d’entrée comportant N échantillons. Dans un mode de réalisation, le signal est un signal d’image couleur représentée au moyen d’au moins une représentation bidimensionnelle, telle qu’une matrice de pixels, de largeur W et de hauteur H (avec N = WxH) chaque pixel comportant une composante rouge (R), verte (G), bleue (B), ou, en variante, une composante de luminance (Y) et au moins une composante de chrominance (U et/ou V) de largeur Wu/v et de hauteur Hu/v. L'emplacement de chaque pixel est défini par ses coordonnées en abscisse et ordonnée (x et y) dans l'image. Dans un mode de réalisation, l’image est en niveaux de gris, représentée au moyen d’une représentation bidimensionnelle, telle qu’une matrice de pixels, chaque pixel comportant une composante de niveaux de gris, ou luminance. De manière générale, le nombre de composantes est noté NC. - Ce dispositif de codage ENC comprend un module INIT de génération de cartes de caractéristiques, un module XTR de traitement et d’extraction de données, un module MLP de synthèse, un module MPP de convolution correspondant à au moins un réseau de neurones artificiels de convolution, un module FMC de codage des cartes de caractéristiques, un module NNC de codage de réseau de neurones, un module EVAL d’évaluation d’une fonction de performance, un module MAJ de mise à jour.
- Le module de synthèse utilisé au codage, MLP, et le module de synthèse utilisé au décodage, MLP', sont définis par une structure identique, comprenant par exemple un ensemble de bancs de filtres, ou au moins un réseau de neurones artificiels et un ensemble de poids et fonctions d’activation associés respectivement aux neurones artificiels du réseau concerné.
- Le (au moins un) réseau de neurones artificiels de convolution utilisé au codage, MPP, et le réseau de neurones artificiels de convolution utilisé au décodage, MPP', 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é.
- 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, les modules de codage (FMC, NNC) réalisent une simulation de codage, suivi d’un décodage, à destination du module d’évaluation. Par la suite, ils effectuent le codage effectif des valeurs des M cartes de caractéristiques FMi, avec 1 <i <=M, et des paramètres des réseaux de neurones MLP et MPP, notés Wk et Vk. De manière connue, la simulation de codage peut être identique au codage effectif, ou en réaliser une approximation.
- Chaque carte de caractéristiques contient des données scalaires, conformément à la définition d’une carte de caractéristiques donnée précédemment, et il y a M cartes de caractéristiques. Il est toutefois possible d’organiser les valeurs caractéristiques différemment, par exemple en formant un unique signal comportant, pour chaque échantillon, un vecteur de M valeurs scalaires, sans perte de généralité. Même si les données sont organisées différemment, on considère dans la suite du document qu’il y a M cartes de caractéristiques. Les cartes codées par le module FMC pour un signal, par exemple une image (ou une pluralité d'images) courante sont notées FMci. Le module de codage FMC quantifie si nécessaire les valeurs des cartes de caractéristiques en utilisant un quantificateur pour générer une collection ordonnée de valeurs quantifiées. Puis le module de codage compresse les données quantifiées, par exemple en utilisant un codeur entropique.
- Le module XTR réalise un traitement et une extraction des données des cartes de caractéristiques. Le module XTR peut réaliser une quantification des valeurs des cartes de caractéristiques en utilisant un quantificateur Q pour générer une collection ordonnée de valeurs quantifiées. Le module XTR peut alternativement obtenir les données quantifiées par le module FMC. 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, selon les modes de réalisation, le module XTR peut effectuer une transformation des valeurs d’au moins une des cartes de caractéristiques comme par exemple un suréchantillonnage, une interpolation, un filtrage, etc. Dans un mode de réalisation, à l’issue de la transformation, une carte de caractéristiques transformée est de même résolution que le signal d’entrée. Puis le module XTR effectue une extraction de données des cartes de caractéristiques ainsi quantifiées et optionnellement transformées, notées FMti, pour présenter les données au module MLP.
- Le module MLP est un module de synthèse, par exemple un réseau de neurones, ou un banc de filtres, ou une transformation inverse linéaire (ondelette, DCT,…) défini par ses paramètres Wk, apte à traiter les cartes caractéristiques transformées en entrée, pour générer en sortie un ensemble de NL cartes de latentes Lj avec 1 <j <= NL.
- Selon un mode de réalisation :
- - Le module XTR réalise une extraction de valeurs dans les cartes de caractéristiques transformées FMti, pour un échantillon Pn à coder, en fonction de ses coordonnées dans le signal d’entrée. Les valeurs extraites constituent le vecteur Zn. Zn est un J-uplet, c’est-à-dire qu’il comporte J éléments, ou données zi. Le vecteur Zn d’indice n réfère au vecteur caractéristique du pixel Pn.
- - Le module MLP comprend un réseau de neurones défini par K paramètres Wk, avec 1 <k <=K, apte à traiter le vecteur Zn, ou J-Uplet, en entrée, pour générer en sortie un second vecteur contenant des valeurs latentes représentatives de l’échantillon Pn à coder. Le réseau de neurones de synthèse comprend 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 NL éléments, chaque élément étant destiné à une carte de valeurs latentes. Selon un mode de réalisation, NL est égal à 3 et le vecteur de sortie est un triplet à insérer dans les trois cartes L1, L2 et L3 (par exemple, Y, U et V) de valeurs latentes aux coordonnées du pixel. Selon un autre mode de réalisation, NL est égal à 4 et le vecteur de sortie est un quadruplet à insérer dans quatre cartes L1 – L4 de valeurs latentes aux coordonnées du pixel. Selon un autre mode de réalisation, NL est compris entre le nombre M de cartes FMi et le nombre de composantes de l’image, M≤ NL≤ 3 pour le cas de trois composantes.
- Selon un mode de réalisation, les NL cartes de valeurs latentes comportent des valeurs réelles quelconques.
- Les cartes de valeurs latentes représentent un signal intermédiaire avant le traitement convolutif.
- Le (au moins un) réseau de neurones MPP est de type convolutif, c'est-à-dire qu'il comporte au moins une couche de convolution. Il peut inclure des éléments convolutifs, comportant une structure résiduelle ou non et/ou des modules d’attention, comme il sera décrit par la suite.
- Les paramètres Wk du module de synthèse codés par le module NNC sont notés Wck.
- Les paramètres Vk du (ou des) réseau(x) de neurones de convolution codés par le module NNC sont notés Vck.
- Le réseau MPP est appliqué en sortie de MLP sur les cartes de valeur latente (Lj) pour obtenir des échantillons décodés P'n. Lorsque tous les échantillons Pndu signal ont été codés puis décodés, on dispose d’un signal reconstruit I(P'n), c'est-à-dire au moins une image I comportant N échantillons décodés.
- 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. Elle vise à minimiser les différences entre la représentation en entrée de l’image courante I(Pn) et sa représentation I(P’n) en sortie, tout en optimisant la quantité de données à encoder, à savoir les cartes de caractéristiques encodées, les paramètres du module de synthèse Wck, et les paramètres du (ou des) réseau de neurones de convolution Vck. 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 FMi à encoder de l’image courante, en fonction des résultats de la fonction de performance.
- Une fois que l’entraînement du codeur est terminé, les paramètres des réseaux de neurones sont encodés, soit sans pertes, auquel cas le réseau de neurones MLP'/MPP' du décodeur est identique à MLP/MPP, soit avec pertes, auquel cas le réseau MLP'/MPP' peut être légèrement différent de MLP/MPP. Les valeurs des cartes de caractéristiques, FMi, sont également codées sous forme de données codées FMci, par exemple via un codeur entropique.
- La
représente schématiquement un dispositif de décodage DEC. - Le dispositif de décodage DEC de la
reçoit en entrée un premier groupe de données encodées organisées en M cartes de caractéristiques FMci, les paramètres Wck d'un module de synthèse et les paramètres Vck d'un réseau de neurones de convolution au moins. - Ce dispositif de décodage DEC comprend un module NND de décodage de réseau de neurones, un module FMD de décodage des cartes de caractéristiques, un module XTR’ de transformation inverse et d’extraction de données, un module MLP’ de synthèse, un module MPP' de convolution correspondant à au moins un réseau de neurones de convolution.
- Les cartes décodées par le module FMD, au nombre de M, sont notées FMdi.
- Les paramètres décodés par le module NND sont notés Wdk et Vdk. Dans le cas où le module de synthèse ne comporte pas de réseau de neurones, un décodeur différent peut être utilisé pour décoder les paramètres Wdk. Les paramètres Vdket Wdksont identiques aux paramètres Vket Wkdu codeur si le codage a été effectué sans pertes.
- Le module XTR' réalise un traitement et une extraction des données des cartes de caractéristiques décodées FMdi. Le module XTR' 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, selon les modes de réalisation, le module XTR' peut effectuer une transformation des valeurs d’au moins une des cartes de caractéristiques comme un suréchantillonnage, une interpolation, un filtrage, etc. Dans un mode de réalisation, à l’issue de la transformation, une carte de caractéristiques transformée est de même résolution que le signal d’entrée. Puis le module XTR' effectue une extraction de données des cartes de caractéristiques ainsi quantifiées et optionnellement transformées, notées FMt'i, pour présenter les données au module MLP ».
- Comme décrit auparavant à l'appui de la
, le module MLP' est un module de synthèse, par exemple un réseau de neurones ou une transformation inverse linéaire (ondelette, DCT,…), défini par ses paramètres Wdk, apte à traiter les cartes caractéristiques transformées en entrée, pour générer en sortie un ensemble de NL cartes de latentes L'j avec 1 <j ≤ NL. - Dans un mode de réalisation préféré :
- - Le module XTR’ est identique au module XTR de la
. Il réalise une extraction de valeurs des M cartes de caractéristiques FMt'i transformées, pour construire le vecteur Zdn prenant la forme d’un J-uplet pour un échantillon Pn à décoder, en fonction de ses coordonnées dans le signal à décoder. Dans un mode de réalisation, J=M. - - Le module MLP’ comprend un réseau de neurones défini par K paramètres Wdk, apte à traiter le vecteur Zdn, ou J-Uplet, en entrée, extrait des cartes de caractéristiques, pour générer en sortie un second vecteur ZLdn de valeurs latentes représentatives de l’échantillon Pn à décoder. Le réseau de neurones de synthèse comprend 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 NL éléments, chaque élément étant destiné à une carte de valeurs latentes. Selon un mode de réalisation, NL est égal à 3 et le vecteur de sortie est un triplet à insérer dans les trois cartes L'1, L'2 et L'3 de valeurs latentes aux coordonnées du pixel. Selon un autre mode de réalisation, R est égal à 4 et le vecteur de sortie est un quadruplet à insérer dans quatre cartes L'1 – L'4 de valeurs latentes aux coordonnées du pixel. Selon un autre mode de réalisation, R est compris entre le nombre M de cartes FMdi et le nombre de composantes de l’image ou des images à décoder M≤ R≤ 3 pour le cas de trois composantes.
- Les cartes de valeurs latentes représentent un signal intermédiaire avant le traitement convolutif.
- Le (au moins un) réseau de neurones MPP' est de type convolutif, c'est-à-dire qu'il comporte au moins une couche de convolution. Il peut inclure des éléments convolutifs, comportant une structure résiduelle ou non et/ou des modules d’attention, comme il sera décrit par la suite. À la sortie du module MPP', on dispose de l'image ou de la pluralité d'images reconstruites, I(Pdn).
- Le dispositif de décodage DEC peut être mis en œuvre au moyen d’un dispositif électronique comprenant un processeur et une mémoire, non représentés ; chacun des modules mentionnés ci-dessus peut alors être réalisé par la coopération du processeur et d’instructions de programme d’ordinateur mémorisées dans la mémoire susmentionnée et conçues pour effectuer les fonctionnalités du module concerné, notamment comme décrit ci-dessous, lorsque ces instructions sont exécutées par le processeur.
- La
représente schématiquement des réseaux de neurones artificiels de synthèse et de convolution utilisés dans un mode de réalisation de l’invention au codage et au décodage. - Selon ce mode de réalisation, le module de synthèse comporte un réseau de neurones MLP/MLP' et le module de convolution comporte un réseau de neurones MPP/MPP ». Le réseau de neurones artificiels de synthèse MLP/MPP au codage et le réseau de neurones artificiels de synthèse MLP »/MPP' au décodage sont définis par une structure identique, comprenant par exemple une pluralité de couches de neurones artificiels, et par un ensemble de poids et fonctions d’activation associés respectivement aux neurones artificiels du réseau concerné.
- Une représentation vectorielle d’un échantillon courant (un vecteur Zn ou Zdn issu des cartes de caractéristiques FMti ou FMt’i) 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 ZLn ou ZLdn de valeurs latentes représentatives de l’échantillon décodé, qui sont réinsérés dans les NL cartes de valeurs latentes Lj/L’j. Sur la
, on a représenté une couche du réseau de neurones de synthèse qui comporte 40 sorties notées u1...u40. Chaque sortie est suivie d'une fonction d'activation de type RELU. La fonction RELU (pour Rectified Linear Unit) est bien connue de l'homme du métier. La couche de sortie comporte trois composantes notées v1...v3, suivies de même d'une fonction RELU. À la sortie du module MLP/MLP', les valeurs résultantes de chaque fonction RELU, composant le vecteur ZLn / ZLdn, sont injectées dans les cartes Lj à la position définie par celle du pixel n en cours de traitement. La concaténation de toutes ces valeurs constitue les cartes de valeurs latentes décodées Lj/L’j. Sur la , les cartes de valeurs latentes sont donc au nombre de 3. - les cartes de valeurs latentes décodées Lj/L’j sont ensuite traitées par le module de convolution MPP/MPP', qui produit en sortie un signal décodé, selon un mode de réalisation les composantes de couleur (R, G, B) constitutives de l'image I.
- Selon l'exemple de la
, le réseau de convolution est constitué d'une couche de convolution résiduelle (CR1) en entrée, d'un ensemble de fonctions RELU, et d'une couche de convolution résiduelle (CR2) en sortie. Les modules CR sont des éléments de convolution résiduels, sans aspect limitatif. Ils peuvent comporter des noyaux de n'importe quelle taille. Ils peuvent être de types convolutifs simples ou inclure des éléments d’attention. Ils peuvent aussi inclure des strides (décalage du noyau de convolution à chaque itération), dilation (espacement des valeurs d'entrée fournies au noyau), etc. Un élément de convolution est potentiellement suivi d’un biais comme cela est bien connu de l'homme du métier. Toute fonction d'activation à la portée de l'homme du métier peut être utilisée (ReLU, sigmoïde, Softmax, Softplus, Softsign, etc.) - Les éléments de convolution peuvent être composés de convolutions 2D, c'est-à-dire que le noyau de convolution s'applique conjointement sur les lignes et les colonnes de la carte de valeurs latentes. Les éléments de convolution peuvent être composés de convolutions 1D, sous une forme séparable. Dans ce cas, plutôt qu’effectuer la convolution sur la carte de valeurs latentes bidimensionnelle, on opère un premier opérateur de convolution unidimensionnel (1D) de longueur Lh sur les lignes, puis une seconde convolution de longueur Lv sur les colonnes de la carte obtenue après le premier opérateur. Le traitement ligne colonne peut être inversé pour effectuer un traitement par colonne puis par ligne. Cette réalisation a pour effet de réduire le stockage de Lh*Lv pour un noyau donné non séparable à Lv+Lh, et limite la complexité à Lh+Lv multiplications par valeur de carte contre Lh*Lv dans le cas 2D.
- Naturellement, le module de convolution peut pour sa part comporter plusieurs réseaux, en cascade. Chaque réseau peut comporter plusieurs couches de convolution avec biais ou non, assorties de fonctions d'activations de type relu ou autre, etc.
- La
représente schématiquement des réseaux de neurones artificiels de synthèse et de convolution utilisés dans un autre mode de réalisation de l’invention au codage et au décodage. - Ces réseaux sont aptes à traiter images dont les composantes sont de résolutions différentes.
- De même que pour la
, selon ce mode de réalisation, le module de synthèse comporte un réseau de neurones MLP/MLP' et le module de convolution comporte un réseau de neurones MPP/MPP ». Une représentation vectorielle d’un échantillon courant (un vecteur Zn ou Zdn issu des cartes de caractéristiques FMti ou FMt’i) est appliquée en entrée du réseau de neurones artificiels de synthèse MLP ou MLP ». Le réseau de neurones de synthèse produit en sortie un vecteur ZLn ou ZLdn de valeurs latentes représentatives de l’échantillon décodé, qui sont réinsérés dans les NL cartes de valeurs latentes Lj/L’j. Sur la , on a représenté une couche du réseau de neurones de synthèse qui comporte 40 sorties de neurones notées u1...u40. Chaque sortie est suivie d'une fonction d'activation de type RELU. La couche de sortie comporte six composantes notées v1...v6, suivies de même d'une fonction RELU. À la sortie du module MLP/MLP', les valeurs résultantes de chaque fonction RELU sont injectées dans les cartes Lj à la position définie par celle du pixel en cours de traitement. La concaténation de toutes ces valeurs constitue les cartes de valeurs latentes décodées Lj /L’j. Sur la , les cartes de valeurs latentes sont donc au nombre de 3. - À la différence de la
, cependant, dans ce mode, les cartes de valeurs latentes Lj ne comportent pas toutes les trois le même nombre d’échantillons. Le module MLP/MLP’ génère plus de valeurs latentes pour la première carte que pour les suivantes : 4 valeurs sont générées pour la première carte notée Ly contre 1 pour les cartes Lu et Lv. On aboutit ainsi, de manière avantageuse, à des cartes de valeurs latentes correspondant à des composantes de chrominance qui comportent moins d'échantillons que les cartes de valeurs latentes correspondant à des luminances. Une telle adaptation de taille permet de réduire le nombre d'opérations effectuées et le nombre de paramètres du réseau à coder et transmettre (resp. décoder). Ce nombre peut être ajusté à la dimension des composantes. - Les cartes de valeurs latentes décodées Lj/L’j sont ensuite traitées par le module de convolution MPP/MPP', qui produit en sortie un signal décodé, selon ce mode de réalisation les composantes de couleur (IY, Iu, Iv) constitutives de l'image I, les composantes U et V comportant classiquement quatre fois moins d'échantillons que la composante Y.
- L'architecture du réseau de convolution est identique à celle de la
, et les mêmes commentaires s'appliquent. Les éléments de convolution sont notés CR1, CR2, CR3 et CR4. - La
représente schématiquement des réseaux de convolution selon des modes de réalisation de l'invention. - Les cas (a) à (d) illustrent respectivement des couches de convolution utilisées dans le cadre de l’invention pour le traitement de trois cartes de valeurs latentes en entrée (NL=3), et une image à trois composantes YUV (NC =3) en sortie du module de convolution. Sur la figure, les traits obliques surmontés d'un chiffre indiquent le nombre de cartes de valeurs latentes en entrée et de composantes d'image en sortie.
- Naturellement, d'autres modes de réalisation, non représentés, sont envisageables, avec un nombre de cartes de valeurs latentes plus ou moins élevé et un nombre variable de composantes de sortie (par exemple, NL = 4 cartes de valeurs latentes pour une image à NC = 3 composantes YUV en sortie), sans perte de généralité.
- Par ailleurs, dans le mode de réalisation présenté, chaque carte de valeurs latentes ne contient que des données scalaires, conformément à la définition d’une carte de valeurs latentes donnée précédemment, et il y a trois cartes de valeurs latentes correspondant chacune à l’une des trois coordonnées des échantillons dudit signal. Il est toutefois possible d’organiser les valeurs latentes différemment, par exemple en formant un unique signal comportant, pour chaque échantillon, un vecteur de trois valeurs, sans perte de généralité.
- Ces couches de convolution, qui utilisent des éléments de convolution notés Ci, et des éléments d'attention (SGM : fonction sigmoïde), peuvent être combinées par cascade. La complexité augmente avec les cas présentés, tant du point de vue de l’occupation mémoire (nombre de coefficients de filtres) que de celui du nombre d’opérations arithmétiques qu’ils impliquent.
- Le cas (a) présente une convolution simple qui traite les NL cartes de valeurs latentes Li/L’i en entrée. Les NL (selon l'exemple, NL=3) cartes subissent une convolution simple, notée C. Un filtrage est effectué en utilisant le noyau de la convolution, de taille kxk (par exemple, k=3). Le noyau (3x3) est appliqué aux différentes positions des cartes pour obtenir les NC (selon l'exemple, NC=3) composantes de l'image (par exemple, YUV) en sortie. Le nombre d'opérations requises est donc de 3*3*3*3 (= 81). De manière générale, le nombre d'opérations est de NL*NC*k*k. NL*NC noyaux de taille k*k sont utilisés et doivent être stockés et/ou transmis. De surcroît, NC biais doivent aussi être stockés et/ou transmis.
- Le cas (b) présente la même complexité, mais une structure résiduelle : contrairement au cas (a), le signal issu de la convolution est combiné (additionné, soustrait, multiplié) au signal original composé des trois latentes entremêlées. L'empreinte mémoire (nombre d'opérations) est identique à celle du cas (a), c'est-à-dire de NL*NC*k*k opérations, mais cette structure peut faciliter l’apprentissage du réseau de neurones.
- Le cas (c) présente une structure résiduelle qui traite de façon différentiée les NL (selon l'exemple, NL=3) cartes de valeurs latentes : une carte (L'o) sert à la génération de la composante Y, notée IY, de l'image. Sa convolution est notée C1, son noyau est de taille k1*k1. Les deux autres cartes (L'1et L'2) servent à la génération des composantes U et V de l'image, notées IUet IV. Leur convolution est notée C2, son noyau est de taille k2*k2. L'empreinte mémoire est plus réduite que lors du traitement conjugué des 3 cartes, puisque le nombre d'opérations requis est de 1*1*k1*k1 pour C1 et 2*2*k2*k2 pour C2. Il est nécessaire dans ce cas de stocker 3 biais. Comme il a été expliqué à l'appui de la
, cette structure est bien adaptée pour traiter des images de résolutions différentes. - Le cas (d) présente une structure comportant un module d’attention SGM, traitant conjointement les NL cartes de valeurs latentes. L'empreinte mémoire est plus importante puisque le nombre d'opérations requis est de NL*NC*k3*k3 pour C3 et NL*1*k4*k4 pour C4. Il est nécessaire dans ce cas de stocker NC+1 biais. Cette structure améliore cependant le traitement local des images, notamment des contours présents dans les images.
- Pour C2 : 2*2*k2*k2
- La
représente schématiquement des réseaux de convolution selon des modes de réalisation de l'invention. - La partie gauche de la figure présente un traitement différentié de basse complexité qui traite de façon indépendante les trois cartes de valeurs latentes. Il est apte à traiter des cartes de résolution différentes, ainsi chaque composante de l'image peut avoir sa propre résolution, par exemple pour gérer un format YUV 420 pour lequel les composantes U et V sont de taille réduite par rapport à la composante Y. Les éléments de convolution sont notés C5, C6 et C7.
- La partie droite de la figure présente une vue alternative du traitement différentié de la
, cas (c). Le réseau de convolution est apte à traiter des formats YUV de façon séparée ; la composante Y est traitée séparément alors que les traitements des composantes U et V sont liés. Les éléments de convolution sont notés C8, C9, C10, C11 et C12. - Le tableau ci-dessous résume le nombre d'opérations nécessaires (MAC) et le nombre de valeurs stockées (stockage) pour chacun des cas présentés en figures 5 et 6. On considère dans cet exemple que les cartes de valeurs latentes sont au nombre de trois (NL=3), que les sorties sont au nombre de trois (NC=3) et que tous les noyaux de convolution sont de taille 3x3 (k=k1=k2=...=3).
-
figure MAC stockage 5-a 81 84 5-b 81 84 5-c 45 48 5-d 108 112 6 droite 45 48 6 gauche 27 30 - 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 est une image bidimensionnelle, chaque échantillon à coder est donc un pixel Pn de coordonnées (xn, yn).
- 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 un signal d’entrée I(Pn), les valeurs des cartes FMi et des paramètres Wk du module de synthèse et Vk du (ou des) réseau(x) de neurones de convolution pour optimiser une fonction de coût. L’apprentissage est par exemple réalisé par une descente de gradient, suivie d’une mise à jour des valeurs des cartes de caractéristiques FMi, et optionnellement des réseaux de neurones de synthèse et convolution. 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 FMi, 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 Wk et/ou Vk 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 Wk et/ou Vk 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 I, pour obtenir au moins un pixel P’nrésultant d’une simulation de codage puis de décodage, puis de mesurer l'écart entre cette partie de l'image I (Pn) en entrée et une partie correspondante de l'image I (P’n) codée puis décodée.
- Puis lors d’une deuxième phase, dite phase de codage, les cartes FMi et les paramètres Vk et éventuellement Wk sont encodés pour produire les valeurs codées FMci et Vck (et éventuellement Wck) avant transmission ou stockage. Ils constituent la représentation compressée du signal d’entrée I (Pn).
- 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, un signal I (Pn) à coder, comportant une pluralité de N échantillons Pn, est fourni en entrée du procédé.
- Lors d’une étape E21, les M cartes de caractéristiques FMi sont initialisées. Par la suite, les paramètres Wk du module de synthèse MLP, les valeurs des cartes FMi, et les paramètres Vk du (au moins un) réseau de neurones de convolution doivent être optimisés durant la phase de construction.
- Selon un mode de réalisation, les cartes FMi sont de même résolution que le signal d’entrée I (Pn) et comportent donc chacune le même nombre de valeurs N qu’il y a d’échantillons Pn à coder. Selon un mode de réalisation, les cartes FMi sont de résolution inférieure ou égale à celle du signal d’entrée I (Pn) et comportent donc, pour au moins l’une d’entre elles, un nombre de valeurs à coder inférieur à N. Selon une variante, la première carte FMi 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 FMi sont de même résolution, inférieure à celle du signal d’entrée I (Pn).
- Selon un mode de réalisation, les cartes FMi 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.
- Dans un mode de réalisation, la structure et les paramètres des réseaux de neurones sont initialisés lors 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 module de synthèse et/ou du réseau de neurones de convolution sont initialisés par des valeurs prédéfinies connues pour donner une valeur de fonction de coût satisfaisante (par exemple, à la suite d’un entraînement sur un corpus d’images). Selon un autre mode de réalisation, les paramètres du module de synthèse et/ou du réseau de neurones de convolution sont initialisés par un ensemble de valeurs aléatoires.
- Les cartes de caractéristiques FMi et les paramètres des réseaux de neurones sont par la suite mis à jour, ou raffinés, lors d’une étape E22, par le module de mise à jour MAJ du codeur au cours de son apprentissage.
- Lors d’une étape E23, les cartes FMi 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 par exemple un codage entropique des valeurs quantifiées de la ou des cartes de caractéristiques.
- Dans un mode de réalisation, les cartes FMi sont codées dans l’ordre (FM1, FM2,…, FM4), 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 est mesuré ultérieurement au cours d’une étape E28.
- Lors d’une étape E24, selon un mode de réalisation, les M cartes FMi sont quantifiées, transformées, et des données en sont extraites par le module XTR.
- Selon un mode de réalisation, au moins une carte FMi 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 FMti transformée comporte le même nombre d’échantillons que les images de la séquence. Le suréchantillonnage consiste à rajouter des valeurs dans les cartes FMti pour atteindre la résolution des images de la séquence d’entrée. Il peut être simple (par réplication du plus proche voisin) ou comporter une interpolation (linéaire, polynomiale, par filtrage, etc.). Il peut être réalisé par un réseau de neurones de suréchantillonnage.
- Selon un mode de réalisation, le module XTR réalise une extraction de valeurs dans les cartes de caractéristiques transformées FMti, pour un échantillon Pn à coder, en fonction de ses coordonnées dans le signal d’entrée. 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 P’n.
- Dans un mode de réalisation, Zn est un J-uplet (z1, z2,…, zJ), constitué des valeurs des cartes FMi situées aux coordonnées (xn, yn) du pixel courant Pn. Dans un mode de réalisation, Zn est un J-uplet construit à partir de valeurs prélevées dans les cartes FMi à des coordonnées qui peuvent être différentes selon les cartes. Par exemple, si les cartes FMi 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 FMi en appliquant le traitement à une ou plusieurs valeurs des cartes, par exemple un filtrage des valeurs voisines de la valeur ciblée dans une carte. Par exemple, pour un échantillon courant Pn dans une carte FMi 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 FMi. Selon un autre exemple, dans une carte FMi 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 FMi. Les échantillons à coder sont par exemple traités par ordre séquentiel, de n=1 à n=N.
- Lors d’une étape E25, les cartes de caractéristiques sont traitées par le module de synthèse pour générer des cartes de valeurs latentes. Le module de synthèse est par exemple un réseau de neurones, ou un banc de filtres, ou une transformation inverse linéaire (ondelette, DCT,…) définie par ses paramètres Wk, apte à traiter les cartes caractéristiques transformées en entrée, pour générer en sortie un ensemble de NL cartes de latentes Lj avec 1 <j <=NL.
- Selon un mode de réalisation, le vecteur Zn est traité par un réseau de neurones de synthèse MLP pour générer en sortie un second vecteur ZLn contenant NL valeurs latentes pour l’échantillon Pn à coder. Selon un mode de réalisation, NL est égal à 3 et le vecteur de sortie est un triplet à insérer dans trois cartes L1, L2 et L3.Selon un autre mode de réalisation, NL est égal à 4 et le vecteur de sortie est un quadruplet à insérer dans quatre cartes L1 – L4 de valeurs latentes aux coordonnées du pixel. Selon un autre mode de réalisation, NL est compris entre le nombre M de cartes FMi et le nombre de composantes de l’image, M≤NL≤3 pour le cas de NC=3 composantes. Il est également possible d’organiser les valeurs latentes différemment, par exemple en formant un unique signal comportant, pour chaque échantillon, un vecteur de NL valeurs scalaires, sans perte de généralité. Les cartes de valeurs latentes représentent un signal intermédiaire avant le traitement convolutif.
- Lors d'une étape E26, le (au moins un) réseau de neurones convolutif MPP est appliqué en sortie du module MLP sur les cartes de valeur latente (Lj) pour obtenir des échantillons décodés P'n, par exemple des vecteurs représentatifs des échantillons Pn à coder, selon un mode de réalisation le triplet (R, G,B) de l’échantillon P’n (l’échantillon Pncodé puis décodé).
- Lors d’une étape E27, les paramètres Vk et Wk des modules de synthèse et convolution 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 paramètres Vk et Wk.
- 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 (simulation du flux B1 par codage des cartes FMi) et optionnellement aux paramètres des modules de synthèse et convolution (simulation du flux B2 par codage des paramètres Vk /Wk) 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 est 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’échantillons 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 ou séquence d'images, 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. 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. 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 des modules de synthèse et convolution (Vk/Wk) et des cartes de caractéristiques (FMi) 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 des modules de synthèse et convolution (Vk/Wk) et des valeurs des cartes de caractéristiques (FMi) est effectué à cette étape pour produire les paramètres encodés Vck/Wcket FMciqui constituent des flux B2 et B1. 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 des modules de synthèse et convolution est stocké ou transmis avant le flux B1, afin de pouvoir être décodé 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 les représentations codées des cartes FMci et des paramètres des modules de synthèse et convolution Wck et Vck.
- Lors d’une étape E31, les M cartes FMdi sont générées par décodage des valeurs FMci. Pour ce décodage, on utilise une technique de décodage correspondant à celle qui a été utilisée par le codeur, par exemple un (dé)codage entropique. Dans un mode de réalisation, les cartes FMdi sont décodées dans l’ordre (FMd1, FMd2,… FMd4), et les valeurs de chaque carte dans un ordre prédéfini, par exemple lexicographique. Les paramètres Wdk et Vdk des modules de synthèse et convolution sont générés par décodage des valeurs Wck et Vck 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 (au moins un) réseau de neurones de convolution MPP’ est semblable au réseau de synthèse MPP, 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. Il en va de même pour le module de synthèse, qui peut être implémenté sous forme d'un réseau de neurones.
- Selon un mode de réalisation, le flux B2 est décodé avant le flux B1, afin de pouvoir disposer des paramètres des modules de synthèse et de convolution avant de commencer à décoder les échantillons.
- Selon des modes de réalisation tels que décrits pour le codeur : les cartes FMdi sont de même résolution que le signal à reconstituer I (Pdn) et comportent donc chacune le même nombre de valeurs N qu’il y a d’échantillons Pdn à décoder ; les cartes FMdi sont de résolution inférieure ou égale à celle du signal et comportent donc, pour au moins l’une d’entre elles, un nombre de valeurs à décoder inférieur à N. Selon une variante, la première carte FMdi 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 FMdi sont de même résolution, inférieure à celle du signal.
- Lors d’une étape E33, selon des modes de réalisation, les M cartes FMdi sont déquantifiées, transformées, et des données en sont extraites par le module XTR ».
- Selon un mode de réalisation, au moins une carte FMdi est de résolution inférieure à celle des images décoder et l’opération de transformation comporte un suréchantillonnage pour que la carte FMt'i transformée comporte le même nombre d’échantillons que les images de la séquence. Le suréchantillonnage consiste à rajouter des valeurs dans les cartes FMt'i pour atteindre la résolution des images de la séquence d’entrée. Il peut être simple (par réplication du plus proche voisin) ou comporter une interpolation (linéaire, polynomiale, par filtrage, etc.). Il peut être réalisé par un réseau de neurones de suréchantillonnage.
- Selon un mode de réalisation, le module XTR' réalise une extraction de valeurs dans les cartes de caractéristiques transformées FMt'i, pour un échantillon Pdn à décoder, en fonction de ses coordonnées dans le signal. 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. Le vecteur Zdn d’indice n réfère au vecteur caractéristique du pixel Pdn.
- 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 : Dans un mode de réalisation, Zdn est un J-uplet (zd1, zd2,…, zdJ), constitué des valeurs des cartes FMt'i /FMdi situées aux coordonnées (xn, yn) du pixel courant Pdn. Dans un mode de réalisation, Zdn est un J-uplet construit à partir de valeurs prélevées dans les cartes FMt'i /FMdi à des coordonnées qui peuvent être différentes selon les cartes. Par exemple, si les cartes FMt'i /FMdi 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, Zdn est un J-uplet construit à partir de valeurs prélevées dans les cartes FMt'i /FMdi 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 Pdn dans une carte FMdi qui se trouve à la même résolution que le signal d'images à décoder, on peut extraire les valeurs situées aux coordonnées (xn, yn), (xn-1, yn), (xn, yn-1) et (xn-1, yn-1) et appliquer un traitement à ces valeurs (filtrages, moyennage, interpolation, etc.) pour obtenir la valeur finale (zdi) de l’élément i du vecteur Zn relative à cette carte FMt'i /FMdi. Selon un autre exemple, dans une carte FMt'i /FMdi qui se trouve à une résolution moitié du signal, on peut considérer les valeurs situées aux coordonnées (xn/2, yn/2), (xn/2-1, yn/2), (xn/2, yn/2-1) et (xn/2-1, yn/2-1) et appliquer un traitement à ces valeurs (filtrages, moyennage, interpolation, etc.) pour obtenir la valeur finale (zdi) de l’élément i du vecteur Zdn relative à cette carte FMi. Les échantillons à décoder sont par exemple traités par ordre séquentiel, de n=1 à n=N - Lors d’une étape E34, les cartes de caractéristiques sont traitées par le module de synthèse MLP' pour générer des cartes de valeurs latentes. Le module de synthèse est par exemple un réseau de neurones, ou un banc de filtres, ou une transformation inverse linéaire (ondelette, DCT,…) définie par ses paramètres Wdk, apte à traiter les cartes caractéristiques transformées en entrée, pour générer en sortie un ensemble de NL cartes de latentes L'j avec 1 <j <=NL.
- 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 est traité par un réseau de neurones de synthèse MLP' pour générer en sortie un second vecteur ZLdncontenant NL valeurs latentes pour l’échantillon Pdn à décoder. Selon un mode de réalisation, NL est égal à 3 et le vecteur de sortie est un triplet à insérer dans trois cartes L'1, L'2 et L'3.Selon un autre mode de réalisation, NL est égal à 4 et le vecteur de sortie est un quadruplet à insérer dans quatre cartes L'1 – L'4 de valeurs latentes aux coordonnées du pixel. Selon un autre mode de réalisation, NL est compris entre le nombre M de cartes FMdi et le nombre de composantes de l’image, M≤NL≤3 pour le cas où NC=3 composantes. Il est également possible d’organiser les valeurs latentes différemment, par exemple en formant un unique signal comportant, pour chaque échantillon, un vecteur de NL valeurs scalaires, sans perte de généralité. Les cartes de valeurs latentes représentent un signal intermédiaire avant le traitement convolutif. - Lors d'une étape E35, le (au moins un) réseau de neurones convolutif MPP' est appliqué en sortie du module MLP’ sur les cartes de valeur latente (L'j) pour obtenir des échantillons décodés Pdn,par exemple des vecteurs représentatifs des échantillons Pdn à décoder, selon un mode de réalisation le triplet (R, G,B) de l’échantillon Pdn. Cette étape est similaire à l’étape E26 qui a été décrite pour le codeur à l’appui de la
. - Lorsque toutes les cartes de valeurs latentes ont été traitées, le signal décodé correspondant par exemple à l’image I (Pdn) 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 FMdi sont au nombre de 5. Dans un mode préféré, elles sont au nombre de 7.
- Dans ce mode de réalisation, la première carte FMd1 a la même résolution que l’image I, et comporte donc WxH variables, où W représente la largeur de l’image en pixels, et H sa hauteur. La seconde carte FMd2 est de résolution moitié (dans chaque dimension) de la carte FMd1. La carte FMd3 est de résolution moitié (dans chaque dimension) de la carte FMd2.Les cartes FMd4 et FMd5 sont de résolution moitié (dans chaque dimension) de la carte FMd3. 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.
- Le module XTR' déquantifie si nécessaire les valeurs des cartes de caractéristiques.
- Les cartes de caractéristiques sont ensuite traitées par le module XTR', qui, selon ce mode de réalisation, les suréchantillonne afin de les rendre de même résolution que l’image à décoder. (FMd2 est suréchantillonnée d’un facteur 2 dans chaque dimension, FMd3 est suréchantillonnée d’un facteur 4 dans chaque dimension, etc.)
- Ensuite, le module XTR' extrait, pour chaque position d'échantillon, un vecteur Zdn sous forme d'un 5-uplet (zd1...zd5) constitué des valeurs des cartes FMdi transformées situées aux coordonnées (xn, yn) du pixel courant Pdn. Le vecteur Zdn est traité par le réseau de neurones MLP’ pour générer en sortie un vecteur ZPdn, selon l’exemple un quadruplet représentatif de l’échantillon Pdn à décoder, qui est réinjecté dans les cartes de valeurs latentes L'i aux coordonnées (xn, yn) dans les composantes.
- Selon cet exemple, les cartes de valeurs latentes L'i sont au nombre de 4.
- Les 4 cartes de valeurs latentes sont traitées par le module de convolution MPP', pour produire en sortie, selon cet exemple, les 3 composantes Rd, Gd et Bd de l'image décodée.
Claims (16)
- Procédé de codage d’une image au moins (I(Pn)) comportant les étapes suivantes :
- une étape de construction de ladite au moins une image codée puis décodée, comportant les sous-étapes de :
- construction (E21, E22) d’un groupe de (M) cartes de caractéristiques (FMi) ;
- traitement (E24, E25) dudit groupe de cartes de caractéristiques par un module de synthèse (MLP), défini par des paramètres de synthèse (Wk), pour fournir un groupe de (NL) cartes de valeurs latentes (Lj), le nombre de cartes de valeurs latentes étant inférieur ou égal au nombre de cartes de caractéristiques ;
- traitement (E26) dudit groupe de cartes de valeurs latentes par un réseau de neurones de convolution au moins (MPP), défini par des paramètres de convolution (Vk), pour fournir ladite au moins une image codée puis décodée (I(P'n)) ;
- mise à jour (E22, E28) d'au moins une valeur d’une desdites cartes de caractéristiques et/ou d’au moins un paramètre de synthèse et/ou d’au moins d'un paramètre de convolution, en fonction d’une mesure de performance de codage ;
- une étape de codage (E23, E27) dudit groupe de cartes de caractéristiques (FMi) et dudit ensemble de paramètres de synthèse et de convolution (Wk/Vk). - Procédé de codage selon la revendication 1, caractérisé en ce que ladite au moins une image comprend une pluralité d’échantillons (Pn) à coder, et en ce que l'étape de traitement dudit groupe de cartes de caractéristiques (FMi) pour fournir un groupe de cartes de valeurs latentes (Li) comprend les sous-étapes suivantes :
- pour au moins un échantillon, dit échantillon courant (Pn), de ladite au moins une image à coder, associé à une position (xn, yn) :
- construction (E24) d’un vecteur caractéristique (Zn) à partir desdites cartes de caractéristiques (FMi), en fonction de ladite position (xn, yn) dudit échantillon courant (Pn) ;
- traitement (E25) dudit vecteur caractéristique (Zn) par ledit module de synthèse (MLP), pour fournir un vecteur latent, représentatif d’une valeur latente (ZLn) de l’échantillon courant ;
- construction du groupe de cartes de valeurs latentes (Li) à partir dudit au moins un vecteur latent (ZLn) ; - Procédé de décodage d’une image au moins (I(Pdn)) à partir d'un flux binaire (B1, B2), comportant les étapes suivantes :
- décodage (E31) d’un groupe de (M) cartes de caractéristiques (FMdi) ;
- obtention (E30, E32) d’un ensemble de paramètres de synthèse (Wck) représentatifs d’un module de synthèse (MLP’) ;
- obtention (E30, E32) d’un ensemble de paramètres de convolution (Vck) représentatifs d’un réseau de neurones de convolution au moins ;
- traitement (E33, E34) dudit groupe de cartes de caractéristiques par ledit module de synthèse (MLP') pour fournir un groupe de cartes de valeurs latentes (L'j), le nombre (NL) de cartes de valeurs latentes étant inférieur ou égal au nombre (M) de cartes de caractéristiques ;
- traitement (E35) dudit groupe de cartes de valeurs latentes par ledit au moins un réseau de neurones de convolution (MPP) pour fournir ladite au moins une image décodée (I(Pdn)). - Procédé de décodage d’un signal selon la revendication 3, caractérisé en ce que ladite au moins une image comprend une pluralité d’échantillons (Pdn) à décoder, et en ce que l'étape de traitement dudit groupe de cartes de caractéristiques pour fournir un groupe de cartes de valeurs latentes comprend les sous-étapes suivantes :
- pour au moins un échantillon, dit échantillon courant (Pdn), de ladite au moins une image à décoder, associé à une position (xn, yn) :
- construction (E33) d’un vecteur caractéristique (Zdn) à partir des cartes de caractéristiques, en fonction de ladite position (xn, yn) dudit échantillon courant, et :
- traitement (E34) dudit vecteur caractéristique (Zdn) par ledit module de synthèse (MLP’) pour fournir un vecteur latent (ZLdn), représentatif d’une valeur latente de l’échantillon courant ;
- construction du groupe de cartes de valeurs latentes (L'i) à partir dudit au moins un vecteur latent (ZLdn). - Procédé de décodage ou de codage selon l'une des revendications précédentes, caractérisé en ce que ledit au module de synthèse (MLP, MLP') comprend un perceptron multicouche.
- Procédé de décodage ou de codage selon l'une des revendications précédentes, caractérisé en ce que ledit au moins un réseau de convolution (MPP, MPP') comporte au moins une couche de convolution (C, C1, C2, C3, C4, C5).
- Procédé de décodage ou de codage selon l'une des revendications précédentes, caractérisé en ce que le nombre (NL) de cartes de valeurs latentes est égal au nombre de composantes (NC) de ladite au moins une image.
- Procédé de décodage selon l'une des revendications 3 à 7, caractérisé en ce que une partie au moins de l'ensemble de paramètres de synthèse et/ou de convolution (Wck, Vck) est obtenue à partir de données dudit flux binaire.
- Procédé de décodage selon l'une des revendications 3 à 8, caractérisé en ce que une partie au moins de l'ensemble de paramètres de synthèse et/ou de convolution (Wck, Vck) est obtenue à partir de paramètres prédéterminés.
- Procédé de décodage selon l'une des revendications 3 à 9, caractérisé en ce que une partie au moins de l'ensemble de paramètres de synthèse et/ou de convolution (Wck, Vck) est décodée en fonction de paramètres de référence.
- Procédé de décodage selon l'une des revendications 3 à 10, caractérisé en ce que ledit au moins un réseau de convolution comporte au moins deux réseaux de convolution.
- Procédé de décodage selon la revendication précédente, pour lequel le flux binaire comporte un indicateur indiquant l'utilisation d'un desdits réseaux au moins.
- Procédé de décodage selon l'une des revendications 6 à 12, caractérisé en ce que ladite au moins une image comporte au moins deux dimensions (x,y), et ladite couche de convolution utilise un noyau séparable selon lesdites au moins deux dimensions.
- Dispositif de codage d’une image au moins (I(Pn)), caractérisé en ce que ledit dispositif est configuré pour mettre en œuvre :
- une étape de construction de ladite au moins une image codée puis décodée, comportant les sous-étapes de :
- construction (INIT, MAJ) d’un groupe de (M) cartes de caractéristiques (FMi) ;
- traitement (XTR, MLP) dudit groupe de cartes de caractéristiques par un module de synthèse (MLP) défini par des paramètres de synthèse (Wk) pour fournir un groupe de cartes de valeurs latentes (Lj), le nombre de cartes de valeurs latentes (NL) étant inférieur ou égal au nombre de cartes de caractéristiques (M) ;
- traitement (MPP) dudit groupe de cartes de valeurs latentes par un réseau de neurones de convolution (MPP) défini par des paramètres de convolution (Vk) pour fournir ladite au moins une image codée puis décodée (I(P'n)) ;
- mise à jour (EVAL, MAJ) d'au moins une valeur d’une desdites cartes de caractéristiques et/ou d’au moins un paramètre de synthèse et/ou d’au moins un paramètre de convolution, en fonction d’une mesure de performance de codage ;
- une étape de codage (FMC, NNC) dudit groupe de cartes de caractéristiques (FMi) et dudit ensemble de paramètres de synthèse et de convolution (Wk/Vk). - Dispositif de décodage d’une image au moins (I(Pdn)), à partir d'un flux binaire, caractérisé en ce que ledit dispositif est configuré pour mettre en œuvre :
- décodage (FMD) d’un groupe de (M) cartes de caractéristiques (FMdi) ;
- obtention (NND) d’un ensemble de paramètres de synthèse (Wck) représentatifs d’un module de synthèse (MLP’);
- obtention (NND) d’un ensemble de paramètres de convolution (Vck) représentatifs d’un réseau de neurones de convolution au moins;
- traitement (XTR', MLP') dudit groupe de cartes de caractéristiques par ledit module de synthèse (MLP') pour fournir un groupe de (NL) cartes de valeurs latentes (L'j), le nombre de cartes de valeurs latentes étant inférieur ou égal au nombre de cartes de caractéristiques ;
- traitement (MPP ) dudit groupe de cartes de valeurs latentes par ledit au moins un réseau de neurones de convolution pour fournir ladite au moins une image décodée (I(Pdn)). - 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 |
|---|---|---|---|
| FR2305153A FR3151727A1 (fr) | 2023-05-24 | 2023-05-24 | Procédé et dispositif de codage et décodage d'images. |
| PCT/EP2024/062654 WO2024240497A1 (fr) | 2023-05-24 | 2024-05-07 | Procédé et dispositif de codage et décodage d'images. |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4721402A1 true EP4721402A1 (fr) | 2026-04-08 |
Family
ID=88505230
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24724529.3A Pending EP4721402A1 (fr) | 2023-05-24 | 2024-05-07 | Procédé et dispositif de codage et décodage d'images |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP4721402A1 (fr) |
| KR (1) | KR20260017390A (fr) |
| CN (1) | CN121533015A (fr) |
| FR (1) | FR3151727A1 (fr) |
| WO (1) | WO2024240497A1 (fr) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12206851B2 (en) | 2021-05-21 | 2025-01-21 | Qualcomm Incorporated | Implicit image and video compression using machine learning systems |
-
2023
- 2023-05-24 FR FR2305153A patent/FR3151727A1/fr not_active Withdrawn
-
2024
- 2024-05-07 KR KR1020257042281A patent/KR20260017390A/ko active Pending
- 2024-05-07 CN CN202480047882.9A patent/CN121533015A/zh active Pending
- 2024-05-07 EP EP24724529.3A patent/EP4721402A1/fr active Pending
- 2024-05-07 WO PCT/EP2024/062654 patent/WO2024240497A1/fr not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| FR3151727A1 (fr) | 2025-01-31 |
| KR20260017390A (ko) | 2026-02-05 |
| CN121533015A (zh) | 2026-02-13 |
| WO2024240497A1 (fr) | 2024-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2024121109A1 (fr) | Procédé et dispositif de codage et décodage d'images | |
| FR2755818A1 (fr) | Codage de signal numerique par decomposition en sous-bandes de frequence et quantification vectorielle a etats finis | |
| WO2024240496A1 (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. | |
| FR2935864A1 (fr) | Procede de codage par blocs d'une image matricielle de pixels, programme d'ordinateur et dispositif de capture d'images correspondants | |
| WO2024260629A1 (fr) | Procédé et dispositif de codage et décodage de séquences d'images | |
| EP4630971A1 (fr) | Procédé et dispositif de codage et décodage d'images | |
| WO2024121110A1 (fr) | Procédé et dispositif de codage et décodage de séquences d'images | |
| EP4631248A1 (fr) | Procédé et dispositif de codage et décodage d'images | |
| WO2024260628A1 (fr) | Procédé et dispositif de codage et décodage de séquences d'images | |
| WO2025056651A1 (fr) | Procédé et dispositif de codage et décodage de séquences d'images | |
| WO2025180859A1 (fr) | Procédé et dispositif de codage et décodage d'images avec mécanisme de correction | |
| WO2025180860A1 (fr) | Procédé et dispositif de codage et décodage d'images avec mécanisme de correction | |
| WO2025056653A1 (fr) | Procédé et dispositif de codage et décodage d'images | |
| WO2026003351A1 (fr) | Procédé et dispositif de codage et décodage d'un signal | |
| WO2026003293A1 (fr) | Procédé et dispositif de codage et décodage d'un signal | |
| FR3156567A1 (fr) | Procédé et dispositif de codage et décodage contextuel de séquences d’images. | |
| WO2026087142A1 (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 | |
| WO2026003294A1 (fr) | Procédé et dispositif de codage et décodage d'un signal | |
| Bacchus | Deep learning for satellite image compression | |
| EP2839648A1 (fr) | Procédé de codage et de décodage d'images intégrales, dispositif de codage et de décodage d'images intégrales et programmes d'ordinateur correspondants | |
| WO2025261758A1 (fr) | Procédés de codage et de décodage, dispositifs et programme d'ordinateur correspondants |
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: 20251124 |
|
| 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 |