FR3137809A1 - Codage et décodage de données audio et/ou vidéo - Google Patents

Codage et décodage de données audio et/ou vidéo Download PDF

Info

Publication number
FR3137809A1
FR3137809A1 FR2207026A FR2207026A FR3137809A1 FR 3137809 A1 FR3137809 A1 FR 3137809A1 FR 2207026 A FR2207026 A FR 2207026A FR 2207026 A FR2207026 A FR 2207026A FR 3137809 A1 FR3137809 A1 FR 3137809A1
Authority
FR
France
Prior art keywords
decoding
coding
audio
video data
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2207026A
Other languages
English (en)
Inventor
Félix Henry
Gordon Clare
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Priority to FR2207026A priority Critical patent/FR3137809A1/fr
Priority to PCT/EP2023/068806 priority patent/WO2024008905A1/fr
Publication of FR3137809A1 publication Critical patent/FR3137809A1/fr
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Codage et décodage de données audio et/ou vidéo L’invention concerne un procédé de codage de données audio et/ou vidéo, mis en œuvre par un dispositif de codage configuré pour mettre en œuvre au moins une étape de codage des données audio et/ou vidéo à l’aide d’un réseau de neurones artificiels de codage, ledit procédé de codage comprenant ce qui suit : - coder (C2-C4) lesdites données, - générer (C5) un signal de données qui contient lesdites données codées, - coder (C6) une information représentative d’une configuration de décodage à posséder par un dispositif de décodage pour décoder lesdites données codées, - insérer (C7) l’information codée dans ledit signal. Figure pour l’abrégé : Figure 1

Description

Codage et décodage de données audio et/ou vidéo Domaine de l'invention
La présente invention se rapporte de manière générale au domaine du traitement de données audio et/ou vidéo, et en particulier au codage et au décodage d'images numériques et de séquences d'images numériques.
Le codage/décodage d’images numériques s’applique notamment à des images issues d’au moins une séquence vidéo comprenant :
- des images issues d’une même caméra et se succédant temporellement (codage/décodage de type 2D),
- des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D),
- des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D),
- etc…
La présente invention s’applique de manière similaire au codage/décodage d’images de type 2D ou 3D.
L’invention peut notamment, mais non exclusivement, s’appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels AVC («AdvancedVideoCoding» en anglais), HEVC («High Efficiency Video Coding» en anglais), VVC («Versatile Video Coding» en anglais), et leurs extensions (MVC (« Multiview Video Coding » en anglais), 3D-AVC, MV-HEVC, 3D-HEVC, etc.), et au décodage correspondant.
Art antérieur
A l’heure actuelle, des approches d’intelligence artificielle, notamment neuronales, tendent à se développer pour la compression de données d’image fixe, de vidéo ou audio et de nombreuses études font état de résultats spectaculaires sur leur capacité à représenter un signal de données compressées de manière efficace.
Par exemple dans le cadre du traitement d’images, de telles approches neuronales sont désormais capables d'aborder la compression d'image, non plus seulement en tant que méthode visant à remplacer ou améliorer une étape de l'approche classique de compression (comme la prédiction ou le filtrage), mais en remplaçant complètement l'encodeur et le décodeur, à l'aide notamment d'«auto-encodeurs». Un tel auto-encodeur est par exemple décrit dans le document : Théo Ladune, Pierrick Philippe, «AIC ARTIFICIAL INTELLIGENCE BASED VIDEO CODEC», 17 Feb 2022. Un tel auto-encodeur comprend un réseau de neurones d’encodage, qui prend en entrée les images de la vidéo et fournit en sortie des variables latentes qui représentent le signal représentatif de ces images compressées. Ces variables latentes sont ensuite quantifiées puis codées par un codage entropique, par exemple par un codage de Huffman ou un codage CABAC (« Context-adaptive binary arithmetic coding » en anglais), pour produire le signal représentatif de ces images compressées.
Ce signal est ensuite transmis à un décodeur, lequel procède à un décodage entropique, puis une déquantification des données de ce signal, le décodage entropique et la déquantification correspondant respectivement au codage entropique et à la quantification mis en œuvre dans l’auto-encodeur. A l’issue de ce décodage, des variables latentes décodées sont produites. Ces variables latentes décodées sont alors fournies à un réseau de neurones de décodage correspondant au réseau de neurones d’encodage, le réseau de neurones de décodage fournissant en sortie les images décodées de la vidéo.
Il est par ailleurs connu que dans les codeurs vidéo conventionnels, par exemple les codeurs VVC, il existe différentes tâches pour encoder une image ou une séquence d’images, une tâche étant associée à différentes contraintes au niveau du codeur, notamment en termes d’outils de codage utilisés, de puissance de calcul, de stockage de données, de résolution d’images, etc. A cet effet, le codeur transmet au décodeur des informations représentatives de ces contraintes sous la forme d’éléments de syntaxe. Un décodeur VVC sera configuré pour savoir interpréter de tels éléments de syntaxe et être donc en mesure de décoder le signal reçu du codeur. Un décodeur non conforme à VVC ne saura pas interpréter de tels éléments de syntaxe, et donc, ne sera pas en mesure de coder le signal reçu du décodeur.
Compte tenu du fait que les réseaux de neurones d’encodage fonctionnent de manière complètement différente de celle des codeurs vidéo classiques, et de ce fait répondent à des contraintes différentes, les éléments de syntaxe utilisés classiquement, notamment dans la norme VVC, ne sont pas adaptés à ces réseaux de neurones d’encodage. Par exemple, certains éléments de syntaxe VVC sont définis sur des intervalles de valeurs qui sont limités, alors que les réseaux de neurones d’encodage nécessitent des indications d’encodage de nature plus large.
Objet et résumé de l'invention
Un des buts de l'invention est de remédier à des inconvénients de l'état de la technique précité en proposant :
- un codeur audio et/ou vidéo basé sur une approche d’intelligence artificielle qui est configuré pour transmettre dans le signal audio et/ou vidéo compressé une ou plusieurs indications de caractéristiques de décodage qu’un décodeur audio et/ou vidéo doit supporter pour décoder le signal vidéo compressé,
- un décodeur audio et/ou vidéo configuré pour recevoir ce signal audio et/ou vidéo compressé et lire cette ou ces indication(s) de caractéristiques de décodage, de manière à identifier de manière très simple s’il est capable ou non de décoder le signal audio et/ou vidéo compressé.
Ainsi, l’invention permet avantageusement à un décodeur audio ou vidéo, qu’il soit normalisé (de type AVC, HEVC, VVC, AAC, MPEG-H 3D Audio, etc.) ou qu’il mette en œuvre un décodage basé intelligence artificielle, d’être compatible en mode lecture des informations lues dans le signal de données audio et/ou vidéo codées, quand bien même les données audio et/ou vidéo ont été encodées en utilisant un codeur basé sur une approche d’intelligence artificielle.
A cet effet, un objet de la présente invention concerne un procédé de codage de données audio et/ou vidéo, mis en œuvre par un dispositif de codage configuré pour mettre en œuvre au moins une étape de codage des données audio et/ou vidéo à l’aide d’un réseau de neurones artificiels de codage, ledit procédé de codage comprenant ce qui suit :
- coder les données audio et/ou vidéo,
- générer un signal de données qui contient les données audio et/ou vidéo codées,
- coder une information représentative d’une configuration de décodage à posséder par un dispositif de décodage pour décoder lesdites données codées,
- insérer l’information codée dans le signal de données.
L’invention permet avantageusement à un codeur audio et/ou vidéo dont au moins une étape de codage est mise en œuvre à l’aide d’un réseau de neurones artificiels de codage, et donc nécessitant un ou plusieurs éléments de configuration dédiés à la mise en œuvre de cette étape de codage particulière, de coder une information représentative de ce ou ces éléments de configuration de codage et donc de décodage correspondants, en vue de transmettre cette information à un décodeur de données audio et/ou vidéo pour l’informer des capacités de décodage que ce décodeur doit posséder pour être en mesure de décoder les données audio et/ou vidéo.
Un objet de la présente invention concerne également un procédé de décodage de données audio et/ou vidéo codées, mis en œuvre par un dispositif de décodage, comprenant ce qui suit :
- recevoir un signal de données audio et/ou vidéo codées,
- décoder, à partir du signal, une information représentative d’une configuration de décodage selon laquelle au moins une étape de décodage des données audio et/ou vidéo est mise en œuvre à l’aide d’un réseau de neurones artificiels de décodage,
- vérifier si le dispositif de décodage possède la configuration de décodage correspondant à l’information décodée,
- décoder ou non le signal, en fonction du résultat de la vérification.
L’invention permet avantageusement à un décodeur audio et/ou vidéo d’identifier, dans le signal de données audio et/ou vidéo codées qu’il reçoit, le ou les informations relatives à la configuration de décodage qu’il doit avoir pour décoder le signal.
Selon un mode de réalisation particulier du procédé de codage ou de décodage précité, la configuration de décodage appartient :
- à une première catégorie correspondant à au moins une caractéristique physique particulière d’un matériel ou logiciel à supporter par le dispositif de décodage pour pouvoir décoder le signal, et/ou
- à une deuxième catégorie correspondant à une caractéristique particulière dudit signal, et/ou
- à une troisième catégorie correspondant à au moins une fonctionnalité de traitement particulière à appliquer par le dispositif de décodage pour pouvoir décoder le signal.
Un tel mode de réalisation permet avantageusement, dans le cas où une grande variété de configurations de codage/décodage est utilisée, de regrouper ces configurations par catégorie de manière à réduire le nombre d’informations à coder. Selon un mode de réalisation particulier du procédé de codage ou de décodage précité, l’information représentative d’une configuration de décodage, qui est respectivement codée ou décodée, est associée à au moins une catégorie parmi la première, deuxième ou troisième catégorie.
Un tel mode de réalisation permet avantageusement de coder/décoder de manière structurée des informations représentatives de configurations de décodage de différents types. Par ailleurs, lorsqu’il existe plusieurs informations représentatives d’une configuration de décodage, associées à différents paramètres ou caractéristiques de décodage d’une même catégorie, un tel mode de réalisation permet de générer une signalisation plus compacte de ces informations, puisqu’un seul élément de syntaxe ou indicateur est signalé pour toute une catégorie de paramètres ou caractéristiques de décodage, au lieu que chaque paramètre ou caractéristique de décodage soit indiqué individuellement dans le signal.
Selon un mode de réalisation particulier du procédé de codage ou de décodage précité, la configuration de décodage appartient à un ensemble comprenant :
- une taille maximale d’une mémoire de stockage de données ;
- un nombre minimal d’opérations par seconde ;
- un débit minimal de variables latentes ;
- un type de circuit électronique particulier ;
- un niveau de précision de représentation mathématique d’au moins un paramètre de fonctionnement du réseau de neurones artificiels de décodage ;
- l’activation ou non d’au moins une étape de décodage de référence ;
- au moins un opérateur mathématique particulier ou une liste d’opérateurs mathématiques particuliers ;
- une fonction mathématique particulière ;
- un nombre de sources statistiques de décodage entropique.
Selon un mode de réalisation particulier du procédé de codage ou de décodage précité, l’information représentative d’une configuration de décodage est contenue dans un ensemble de paramètres vidéo prédéfinis du procédé de codage ou de décodage respectivement, ou, lorsque les données vidéo sont représentatives d’une séquence d’images, dans un ensemble de paramètres associés à ladite séquence.
Un tel mode de réalisation permet avantageusement d’utiliser la syntaxe de codage des codeurs existants ou standardisés pour coder l’information représentative d’un élément de configuration. Dans le cas par exemple d’un codeur AVC, HEVC ou VVC, l’ensemble de paramètres vidéo prédéfinis du procédé de codage est par exemple le VPS (« VideoParameter Set» en anglais) et l’ensemble de paramètres associés à ladite séquence est le SPS («Sequence Parameter Set» en anglais). Dans un autre exemple, l’information représentative d’une configuration de décodage est associée à une sous-image, notamment une tuile ou une slice telle que définie par exemple dans la norme HEVC.
Selon un mode de réalisation particulier du procédé de codage ou de décodage précité, l’information représentative d’une configuration de décodage comprend :
- une première valeur qui est associée à un premier élément de configuration de ladite configuration de décodage, et
- une deuxième valeur qui est associée au premier élément de configuration et à un deuxième élément de configuration de ladite configuration de décodage.
Un tel mode de réalisation permet avantageusement, lorsque la configuration comprend plusieurs éléments de configuration correspondant à différentes capacités de décodage à supporter par le dispositif de décodage, de les indiquer par emboîtement dans le signal transmis au décodeur.
Les différents modes ou caractéristiques de réalisation précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, au procédé de codage ou de décodage défini ci-dessus.
Un objet de la présente invention concerne également un signal de données audio et/ou vidéo, ledit signal comprenant :
- des données audio et/ou vidéo qui ont été codées par un dispositif de codage configuré pour mettre en œuvre au moins une étape de codage des données audio et/ou vidéo à l’aide d’un réseau de neurones artificiels de codage,
- une information codée qui est représentative d’une configuration de décodage à posséder par un dispositif de décodage pour décoder lesdites données audio et/ou vidéo codées.
Un objet de la présente invention concerne également un dispositif de codage de données audio et/ou vidéo, configuré pour mettre en œuvre au moins une étape de codage des données audio et/ou vidéo à l’aide d’un réseau de neurones artificiels de codage, ledit dispositif de codage étant configuré pour mettre en œuvre ce qui suit :
- coder les données audio et/ou vidéo,
- générer un signal de données qui contient les données audio et/ou vidéo codées,
- coder une information représentative d’une configuration de décodage à posséder par un dispositif de décodage pour décoder lesdites données codées,
- insérer ladite information codée dans ledit signal de données.
Un tel dispositif de codage est notamment apte à mettre en œuvre le procédé de codage précité.
Un objet de la présente invention concerne également un dispositif de décodage de données audio et/ou vidéo codées, configuré pour mettre en œuvre ce qui suit :
- recevoir un signal de de données audio et/ou vidéo codées,
- décoder, à partir dudit signal, une information représentative d’une configuration de décodage selon laquelle au moins une étape de décodage des données audio et/ou vidéo est mise en œuvre à l’aide d’un réseau de neurones artificiels de décodage,
- vérifier si le dispositif de décodage possède la configuration de décodage correspondant à l’information décodée,
- décoder ou non ledit signal, en fonction du résultat de la vérification.
Un tel dispositif de décodage est notamment apte à mettre en œuvre le procédé de décodage précité.
L'invention concerne encore un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de codage ou de décodage selon l’invention, selon l’un quelconque des modes particuliers de réalisation décrits précédemment, lorsque ledit programme est exécuté par un processeur.
De telles instructions peuvent être stockées durablement dans un support mémoire non transitoire du dispositif de codage mettant en œuvre le procédé de codage précité ou du dispositif de décodage mettant en œuvre le procédé de décodage précité.
Ce programme peut utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable.
L’invention vise également un support d’enregistrement ou support d’informations lisible par un ordinateur, et comportant des instructions d’un programme d’ordinateur tel que mentionné ci-dessus.
Le support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM, un DVD-ROM, un ADN (acide désoxyribonucléique) synthétique, etc… ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une clé USB ou un disque dur.
D'autre part, le support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé de codage ou de décodage selon l’invention.
D'autres caractéristiques et avantages apparaîtront à la lecture de modes de réalisation particuliers de l'invention, donnés à titre d’exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels :
- la représente les principales étapes d’un procédé de codage de données audio et/ou vidéo, dans un mode de réalisation particulier de l’invention,
- la représente un mode de transport des données codées conformément au procédé de codage de la , dans un mode de réalisation particulier de l’invention,
- la représente un mode de transport des données codées conformément au procédé de codage de la , dans un autre mode de réalisation particulier de l’invention,
- la représente un dispositif de codage mettant en œuvre le procédé de codage de la , dans un mode de réalisation particulier de l’invention,
- la représente les principales étapes d’un procédé de décodage de données audio et/ou vidéo, dans un mode de réalisation particulier de l’invention,
- la représente un dispositif de décodage mettant en œuvre le procédé de décodage de la , dans un mode de réalisation particulier de l’invention.
Description détaillé e de différents mode s de réalisation de l’invention
Codage de données audio et/ou vidéo
On décrit ci-après un procédé de codage de données audio et/ou vidéo représentatives d’une image ou d’une séquence d’images de type 2D ou 3D. Un tel procédé de codage est apte à être mis en œuvre dans tout type de codeurs ou décodeurs vidéo, par exemple conformes au standard JPEG, AVC, HEVC, VVC et leurs extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), ou autre, par exemple les codeurs vidéo basés réseaux de neurones. Un tel procédé de codage est apte à être également mis en œuvre dans tout type de codeurs ou décodeurs audio, par exemple conformes au standard MP3, AAC («Advanced Audio Coding» en anglais), MPEG-H 3D Audio, ou autre, par exemple les codeurs audio basés réseaux de neurones.
En référence à la , le procédé de codage selon l’invention comprend ce qui suit :
En C1, des données audio et/ou vidéo courantes sont sélectionnées.
De telles données audio se présentent sous la forme d’un ensemble d’échantillons courant Bcqui peut être :
- un signal audio temporel monodimensionnel ;
- une partie d’un tel signal ;
- un signal audio temporel multidimensionnel (stéréo ou de dimension supérieure à deux).
De telles données vidéo se présentent sous la forme d’un ensemble de pixels courant Bc qui peut être :
- une image courante originale ;
- une partie ou une zone de l’image courante originale ;
- un bloc de l’image courante résultant d’un partitionnement de cette image conformément à ce qui est pratiqué dans les codeurs normalisés de type AVC, HEVC ou VVC.
En C2, un ensemble de données de prédiction courant BPc, les données étant par exemple des pixels, est calculé selon une prédiction Intra, Inter, IBC («Intra Block Copy» en anglais), SKIP, etc. bien connue de l’Homme du métier.
Dans le cadre d’un codage audio, les données de l’ensemble de données de prédiction courant BPcsont des échantillons.
En C3, est calculé un signal BEcreprésentatif de l’écart entre l’ensemble de pixels courant Bcet l’ensemble de pixels de prédiction courant BPcobtenu en C2.
En C4, dans le cas où ce signal BEcest celui qui optimise le codage par rapport à un critère de performance de codage classique, comme par exemple la minimisation du coût débit/distorsion ou bien le choix du meilleur compromis efficacité/complexité, qui sont des critères bien connus de l'homme du métier, le signal BEcest quantifié et codé.
A l’issue de cette opération, un signal d’écart quantifié et codé entropiquement BEc codest obtenu. Un tel codage entropique est par exemple par un codage de Huffman ou un codage CABAC. Dans le mode préféré de réalisation le codage entropique est de type CABAC.
En C5, un signal ou flux F est généré de manière à contenir des données DAT du signal d’écart quantifié et codé BEc cod. De façon connue en soi, le signal F est apte à être transmis à un dispositif de décodage ou décodeur qui sera décrit ultérieurement dans la description.
Conformément à l’invention, au moins une des opérations C1 à C5 est mise en œuvre à l’aide d’un dispositif de calcul basé sur de l’intelligence artificielle, référencé DCIA_C, qui est configuré pour automatiser ladite au moins une opération de codage pour la rendre plus efficace et plus adaptative. Un tel dispositif de calcul comprend par exemple un réseau de neurones ou plusieurs réseaux de neurones, une machine à vecteur de support, un moteur de raisonnement, un système expert, un système en logique floue, etc.
Dans le mode de réalisation préféré, le dispositif de calcul est un réseau de neurones artificiels de codage, tel que par exemple un réseau neuronal convolutif ou CNN («C onvolutional N eural N etwork» en anglais), un perceptron multicouche, un LSTM («Long Short Term Memory» en anglais), etc. Un tel réseau de neurones est défini par une structure comprenant par exemple une pluralité de couches de neurones artificiels et/ou par un ensemble de poids associés respectivement aux neurones artificiels de ce réseau.
De manière plus particulière, dans le mode de réalisation préféré, le réseau neuronal utilisé est un réseau neuronal convolutif. Dans un mode de réalisation particulier, ce dernier calcule en C3 le signal d’écart BEcou code l’ensemble de pixels courant Bcconjointement avec l’ensemble de pixels de prédiction BPcgénéré en C2, réalisant ainsi les opérations C3 et C4. Un tel réseau neuronal est par exemple du type décrit dans le document : Ladune «Optical Flow and Mode Selection for Learning-based Video Coding», IEEE MMSP 2020. Dans un autre mode de réalisation particulier, l’opération de prédiction C2 est également mise en œuvre à l’aide d’un réseau neuronal convolutif et non à l’aide d’un dispositif de prédiction classique, par exemple du type VVC ou CELP (« Code-Excited LinearPrediction » en anglais) dans le cas d’échantillons audio. Un tel réseau neuronal est décrit notamment dans le document Théo Ladune, Pierrick Philippe, «AIC ARTIFICIAL INTELLIGENCE BASED VIDEO CODEC», 17 Feb 2022.
L’utilisation d’un ou de plusieurs dispositifs de calcul basés sur de l’intelligence artificielle pour mettre en œuvre un procédé de codage de données audio et/ou vidéo impose au dispositif de codage qui met en œuvre le procédé de codage d’avoir une configuration matérielle ou logicielle spécifique. Une telle configuration est exigée de manière correspondante dans un dispositif de décodage, afin que ce dernier soit capable de décoder en temps réel le signal de données audio et/ou vidéo codées, reçu en provenance du dispositif de codage comprenant ce ou ces dispositifs de calcul. Cette configuration de décodage appartient à une ou plusieurs catégories comprenant par exemple :
- une première catégorie correspondant à au moins une caractéristique physique particulière d’un matériel ou logiciel à supporter par le dispositif de décodage pour pouvoir décoder le signal F, et/ou
- une deuxième catégorie correspondant à une ou plusieurs caractéristiques particulières du signal de données F, lorsque au moins une étape de codage est mise en œuvre par le dispositif de calcul DCIA_C,
- une troisième catégorie correspondant à au moins une fonctionnalité de traitement particulière à appliquer par le dispositif de décodage pour pouvoir décoder le signal F.
A titre d’exemples non exhaustifs, la première catégorie de caractéristiques de décodage comprend :
- un circuit électronique d’un type spécifique utilisé par le dispositif de calcul, par exemple un GPU («Graphical Processing U nit» en anglais), un TPU («Tensor Processing Unit» en anglais), un DSP («Digital Signal Processor» en anglais), ou tout autre type de circuit électronique adapté ;
- une taille de mémoire de données, par exemple une mémoire tampon, dont le dispositif de décodage doit disposer afin de stocker toutes les données nécessaires au décodage neuronal du signal F ;
- un nombre minimal d’opérations par seconde, par exemple le TOPS («Tera Operations Per Second» en anglais) que le dispositif de décodage doit être capable de mettre en œuvre ;
- un niveau de précision de représentation des paramètres du dispositif de calcul DCIA_C que le dispositif de décodage doit respecter pour être en mesure de décoder le signal F, de tels paramètres comprenant par exemple les poids du et/ou des réseaux de neurones artificiels de décodage utilisés par le dispositif de décodage, les paramètres des fonctions d’activation appliquées en sortie des neurones artificiels, etc. ;
- un nombre de sources de décodage entropique de variables latentes que doit supporter le dispositif de décodage pour être en mesure de décoder le signal F,
- etc….
A titre d’exemples non exhaustifs, la deuxième catégorie de caractéristiques de décodage comprend :
- un nombre de variables latentes minimal à traiter par unité de temps par le dispositif de décodage, lorsqu’un ou plusieurs réseaux de neurones sont utilisés, afin que le dispositif de décodage maintienne ses capacités de décodage temps réel ;
- un nombre de bits représentatifs d’éléments de syntaxes visant à reconstruire des variables latentes par unité de temps (débit entropique) ;
- etc.
A titre d’exemples non exhaustifs, la troisième catégorie de caractéristiques de décodage comprend :
- un ensemble d’opérateurs logiques et/ou mathématiques prédéfinis et standardisés et/ou une liste d’opérateurs logiques et/ou mathématiques à supporter par le dispositif de décodage pour être en mesure de décoder le signal ;
- une liste de fonctions d’activation à appliquer par le dispositif de décodage en sortie du et/ou des réseaux de neurones pour être en mesure de décoder le signal ;
- une capacité de reproduction des résultats du décodage fidèle à une référence (reproductibilité inter-plateforme) que doit avoir le dispositif de décodage pour être en mesure de décoder le signal ;
- etc….
L’ensemble de ces caractéristiques de décodage est considéré aussi bien dans le cadre d’un codage/décodage de données audio, que dans le cadre d’un codage/décodage de données vidéo.
Conformément à l’invention, le procédé de codage comprend une étape C6 de codage d’une ou de plusieurs informations ICD représentatives d’une configuration de décodage à posséder par le dispositif de décodage pour décoder lesdites données codées DAT, une telle configuration de décodage appartenant à la première et/ou deuxième et/ou troisième catégorie précitées.
A l’issue du codage C6, une ou plusieurs informations ICDcodsont obtenues.
La ou les informations ICDcodsont alors inscrites en C7 soit dans le signal de données F, soit dans un signal F’ associé au signal F.
En référence à la , la ou les informations ICDcodsont inscrites en C7 dans le signal F, dans un paquet de données indépendamment identifiable et décodable par rapport aux données audio et/ou vidéo codées DAT, paquet comprenant d’autres informations qui sont nécessaires au décodage des données codées DAT, tels que des paramètres audio et/ou vidéo prédéfinis du procédé de codage ou, lorsque les données codées DAT sont représentatives d’une séquence d’images, des paramètres associés à cette séquence d’images, à la façon de la syntaxe VPS ou SPS respectivement, telle que mise en œuvre par exemple dans la norme VVC. Selon un autre exemple, la ou les informations ICDcodsont des paramètres associés à une sous-image, notamment une tuile ou une slice telle que définie par exemple dans la norme HEVC.
En référence à la , la ou les informations ICDcodsont inscrites en C7 dans un paquet optionnel F’, dont le décodage n’est pas nécessaire au décodage des données DAT, à la façon de l’inscription d’informations dans un message SEI («S upplemental E nhancement I nformation» en anglais) conforme par exemple à la norme VVC.
En C8, le signal F contenant les données codées DAT et la ou les informations codées ICDcod, alternativement le signal F contenant les données codées DAT et le message F’ contenant la ou les informations codées ICDcod, sont stockés ou transmis à un dispositif de décodage qui sera décrit plus loin dans la description.
Dans un mode préféré de réalisation, chaque configuration ou caractéristique de décodage représentée par une information ICDcodest signalée individuellement.
Différents exemples de codage d’informations ICDcodsont représentés ci-dessous dans des tableaux de syntaxe correspondants.
S’agissant d’un matériel particulier, tel que par exemple un circuit électronique ou processeur d’un type spécifique, devant être supporté par le dispositif de décodage, un indicateur proc_idc tel que représenté dans le tableau de syntaxe T1 ci-dessous, prend par exemple huit valeurs allant de 0 à 7 pour indiquer au dispositif de décodage le type de processeur à supporter pour décoder le signal F.
T1
Valeur de proc_idc Type de processeur nécessaire au décodage
0 Indifférent
1 CPU, GPU, DSP
2 CPU ou GPU
3 CPU ou DSP
4 GPU ou DSP
5 GPU
6 CPU
7 DSP
S’agissant de la taille de la mémoire de données dont le dispositif de décodage doit disposer, un indicateur buffer_size_idc spécifie la taille de cette mémoire en octets, ou alternativement peut prendre un nombre prédéterminé de valeurs qui sont associées à des limites de taille prédéfinies, comme dans le tableau de syntaxe T2 suivant. L’indicateur buffer_size_idc prend par exemple ici huit valeurs allant de 0 à 7.
T2
Valeur de buffer_size_idc Taille mémoire nécessaire
0 Au moins 6 Go
1 Au moins 8 Go
2 Au moins 10 Go
3 Au moins 12 Go
4 Au moins 24 Go
5 Au moins 36 Go
6 Au moins 72 Go
7 Indifférent
S’agissant du nombre minimal d’opérations par seconde devant être supporté par le dispositif de décodage, un indicateur ops_idc spécifie le nombre d’opérations par seconde, ou alternativement peut prendre un nombre prédéterminé de valeurs qui sont associées à des limites prédéfinies, comme dans le tableau de syntaxe T3 suivant, où l’indicateur ops_idc prend par exemple quatre valeurs 0 à 3 :
T3
Valeur de ops_idc Nombre d’opérations par seconde nécessaire
0 Au moins 1 TOPS
1 Au moins 5 TOPS
2 Au moins 20 TOPS
3 Indifférent
S’agissant du nombre de variables latentes minimal à traiter par unité de temps par le dispositif de décodage, un indicateur latent_rate_idc spécifie ce nombre en nombre de variables par seconde, c’est-à-dire en débit, ou alternativement peut prendre un nombre prédéterminé de valeurs qui sont associées à des limites de débit prédéfinies, comme dans le tableau de syntaxe T4 suivant, où l’indicateur latent_rate_idc prend par exemple sept valeurs 0 à 6 :
T4
Valeur de latent_rate_idc Débit de variables latentes nécessaire
0 Au moins 100000 variables par seconde
1 Au moins 500000 variables par seconde
2 Au moins 1000000 variables par seconde
3 Au moins 5000000 variables par seconde
4 Au moins 10000000 variables par seconde
5 Au moins 50000000 variables par seconde
6 Indifférent
S’agissant du niveau de précision de représentation des paramètres du dispositif de calcul DCIA_C, et dans le cas où ce dispositif est un réseau neuronal, un indicateur precision_idc spécifie la précision requise des poids de ce réseau à l’aide de la table d’association prédéterminée suivante T5, où l’indicateur precision_idc prend par exemple huit valeurs 0 à 7 :
T5
Valeur de precision _idc Précision des poids du réseau de décodage
0 Entiers sur 8 bits
1 Entiers sur 16 bits
2 Entiers sur 32 bits
3 Entiers sur 64 bits
4 Flottants sur 16 bits
5 Flottants sur 32 bits
6 Flottants sur 64 bits
7 Indifférent
S’agissant de la capacité de reproduction des résultats du décodage fidèle à une référence (reproductibilité inter plateforme) que le dispositif de décodage doit posséder, dans la table T6 ci-dessous, un indicateur repro_flag est mis :
- soit à une première valeur, par exemple 0, pour indiquer qu’il n’est pas nécessaire que le dispositif de décodage reproduise un décodage de référence à l’identique,
- soit à une deuxième valeur, par exemple 1, pour indiquer qu’il est nécessaire que le dispositif de décodage reproduise un décodage de référence à l’identique.
T6
Valeur de repro_flag Décodage de référence à l’identique
0 Non
1 Oui
S’agissant du nombre de sources de décodage entropique de variables latentes que doit supporter le dispositif de décodage, un indicateur sources_idc spécifie le nombre de sources, ou alternativement peut prendre un nombre prédéterminé de valeurs qui sont associées à des limites prédéfinies de nombres de sources, comme dans le tableau suivant T7, où l’indicateur sources_idc prend par exemple quatre valeurs 0 à 3 :
T7
Valeur de sources_idc Nombre de sources de codage entropique nécessaire
0 Au plus 10
1 Au plus 100
2 Au plus 1000
3 Indifférent
S’agissant de l’ensemble ou liste d’opérateurs logiques et/ou mathématiques prédéfinis et standardisés à supporter par le dispositif de décodage, un indicateur operators_idc spécifie les opérateurs logiques et/ou mathématiques à supporter côté décodeur. Selon un mode de réalisation préféré représenté dans le tableau de syntaxe T8 suivant, l’indicateur operators_idc comprend cinq valeurs 0 à 4, les valeurs 0 à 3 étant construites de manière emboîtée de telle sorte que :
- la valeur 0 est associée à un ensemble d’opérateurs mathématiques de base « +, -, x, / »,
- la valeur 1 est associée à l’ensemble d’opérateurs mathématiques de base « +, -, x, / » et à l’ensemble d’opérateurs mathématiques « xy, exp(), sqrt() »,
- la valeur 2 est associée à l’ensemble d’opérateurs mathématiques de base « +, -, x, / », à l’ensemble d’opérateurs mathématiques « xy, exp(), sqrt() », et à l’opérateur « N ! », où N est un entier naturel,
- la valeur 3 est associée à l’ensemble d’opérateurs mathématiques de base « +, -, x, / », à l’ensemble d’opérateurs mathématiques « xy, exp(), sqrt() », à l’opérateur « N ! », et à l’ensemble d’opérateurs mathématiques « sin(), cos(), tan() ».
T8
Valeur de operators _idc Liste d’opérateurs à supporter
0 +,-,x,/
1 Les précédents et xy, exp(), sqrt()
2 Les précédents et N!,
3 Les précédents et sin(), cos(), tan()
4 Indifférent
Bien entendu, cette façon de signaler les opérateurs n’est pas exhaustive. Dans d’autres modes de réalisation, chaque opérateur ou une liste d’opérateurs peut être signalé(e) individuellement, ce qui génère un coût de signalisation plus élevé.
S’agissant de la liste de fonctions d’activation à appliquer par le dispositif de décodage, un indicateur activations_idc spécifie les fonctions d’activation à supporter par le dispositif de décodage. Selon un mode de réalisation préféré représenté dans le tableau de syntaxe T9 suivant, l’indicateur activations_idc comprend trois valeurs 0 à 2, les valeurs 0 et 1 étant construites de manière emboîtée de telle sorte que :
- la valeur 0 est associée à la liste de fonctions d’activation suivante :
F(x) = x,
G(x) = 0 si x<0, 1 sinon
H(x) = 0 si x<0, x sinon
- la valeur 1 est associée à cette liste de fonctions d’activation, ainsi qu’à la liste de fonctions d’activation suivante :
I(x) = 1/(1+exp(-x))
J(x) = tan-1(x)
T9
Valeur de activations_idc Liste de fonctions d’activation à supporter
0 F(x) = x,
G(x) = 0 si x<0, 1 sinon
H(x) = 0 si x<0, x sinon
1 Fonctions précédentes et
I(x) = 1/(1+exp(-x))
J(x) = tan-1(x)
2 Indifférent
Dans un mode particulier de réalisation, un seul indicateur level_idc spécifie à la fois plusieurs caractéristiques de décodage devant être supportées par le dispositif de décodage. A cet effet, une table de correspondance, référencée T10 ci-dessous, qui est prédéfinie aussi bien côté dispositif de codage que dispositif de décodage, est générée. La table T10 fait correspondre au moins une valeur particulière de l’indicateur level_idc avec un débit particulier de variables latentes, une taille particulière de mémoire de données, etc. Dans l’exemple représenté, l’indicateur level_idc a six valeurs 0 à 5.
T10
Valeur de level_idc Débit de variables latentes nécessaire Taille mémoire nécessaire Nombre d’opérations par seconde nécessaire Précision requise des poids du réseau de décodage
0 Au moins 100000 variables par seconde Au moins 6 Go Au moins 1 TOPS Entier sur 8 bits
1 Au moins 500000 variables par seconde Au moins 8 Go Au moins 2 TOPS Entiers sur 16 bits
2 Au moins 1000000 variables par seconde Au moins 10 Go Au moins 4 TOPS Flottants sur 16 bits
3 Au moins 5000000 variables par seconde Au moins 12 Go Au moins 8 TOPS Flottants sur 32 bits
4 Au moins 10000000 variables par seconde Au moins 24 Go Au moins 16 TOPS Flottants sur 64 bits
5 Indifférent Indifférent Indifférent Indifférent
Dans un mode particulier de réalisation, une série d’indicateurs, cat1_level_idc, cat2_level_idc, cat3_level_idc, au lieu d’un seul indicateur level_idc, spécifie une ou plusieurs caractéristiques de décodage selon la première, deuxième ou troisième catégorie à laquelle cette ou ces caractéristiques de décodage appartiennent.
A cet effet, pour chaque indicateur cat1_level_idc, cat2_level_idc, cat3_level_idc, une table de correspondance, prédéfinie aussi bien côté dispositif de codage que dispositif de décodage, est générée. Une telle table est représentée ci-dessous et porte la référence T11.
S’agissant de la première catégorie, la table T11 ci-dessous fait correspondre au moins une valeur particulière de l’indicateur cat1_level_idc avec un type de processeur particulier, une taille particulière de mémoire de données, etc. Dans l’exemple représenté, l’indicateur cat1_level_idc a six valeurs 0 à 5.
T11
Valeur de cat1_level_idc Type de processeur nécessaire Taille de mémoire nécessaire Nombre d’opérations par seconde nécessaire Précision requise des poids du réseau de décodage
0 CPU Au moins 6 Go Au moins 1 TOPS Entier sur 8 bits
1 CPU Au moins 8 Go Au moins 2 TOPS Entiers sur 16 bits
2 GPU Au moins 10 Go Au moins 4 TOPS Flottants sur 16 bits
3 GPU Au moins 12 Go Au moins 8 TOPS Flottants sur 32 bits
4 TPU Au moins 24 Go Au moins 16 TOPS Flottants sur 64 bits
5 Indifférent Indifférent Indifférent Indifférent
S’agissant de la deuxième catégorie, la table T12 ci-dessous fait correspondre au moins une valeur particulière de l’indicateur cat2_level_idc avec un débit de variables latentes particulier. Dans l’exemple représenté, l’indicateur cat2_level_idc a cinq valeurs 0 à 4.
T12
Valeur de cat2_level_idc Débit de variables latentes nécessaire
0 Au moins 100000 variables par seconde
1 Au moins 500000 variables par seconde
2 Au moins 1000000 variables par seconde
3 Au moins 5000000 variables par seconde
4 Indifférent
S’agissant de la troisième catégorie, la table T13 ci-dessous fait correspondre au moins une valeur particulière de l’indicateur cat3_level_idc avec une capacité ou non de reproduction des résultats de décodage, une liste d’opérateurs mathématiques particuliers, etc. Dans l’exemple représenté, l’indicateur cat3_level_idc a quatre valeurs 0 à 3.
T13
Valeur de cat3_level_idc Capacité de reproduction Liste d’opérateurs à supporter Liste de fonctions d’activation à supporter
0 Non +, -, x, / F(x) = x,
G(x) = 0 si x<0, 1 sinon
H(x) = 0 si x<0, x sinon
1 Oui Les précédents et xy, exp(), sqrt() Les précédentes et
I(x) = 1/(1+exp(-x))
J(x) = tan-1(x)
2 Oui Les précédents et N! Indifférent
3 Indifférent Indifférent Indifférent
On décrit maintenant en référence à la un codeur COD représenté sous forme schématique, le codeur COD étant adapté pour mettre en œuvre le procédé de codage illustré en , dans un mode de réalisation particulier de l'invention.
Selon ce mode de réalisation particulier, les actions exécutées par le procédé de codage sont mises en œuvre par des instructions de programme d'ordinateur. Pour cela, le dispositif de codage COD a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEM_C, une unité de traitement UT_C, équipée par exemple d'un processeur PROC_C, et pilotée par le programme d'ordinateur PG_C stocké en mémoire MEM_C. Le programme d'ordinateur PG_C comprend des instructions pour mettre en œuvre les actions du procédé de codage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur PROC_C.
A l'initialisation, les instructions de code du programme d'ordinateur PG_C sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur PROC_C. Le processeur PROC_C de l'unité de traitement UT_C met notamment en œuvre les actions du procédé de codage décrit ci-dessus, selon les instructions du programme d'ordinateur PG_C.
Le codeur COD reçoit en entrée E_C un ensemble de pixels ou d’échantillons courant Bcet délivre en sortie S_C le flux de transport F qui est transmis à un décodeur à l’aide d’une interface de communication adaptée (non représentée).
Le codeur COD comprend un dispositif de prédiction PRED configuré pour mettre en œuvre l’étape de prédiction C2 précitée. Comme déjà expliqué plus haut dans la description, ce dispositif de prédiction :
- peut être conventionnel et configuré selon par exemple la norme HEVC, VVC, CELP, etc. ;
- peut être un réseau neuronal, par exemple du type décrit dans le document précité Théo Ladune, Pierrick Philippe, «AIC ARTIFICIAL INTELLIGENCE BASED VIDEO CODEC», 17 Feb 2022,
- etc...
Le codeur COD comprend également le dispositif de calcul DCIA_C basé intelligence artificielle qui est par exemple du type décrit dans le document précité : Ladune «Optical Flow and Mode Selection for Learning-based Video Coding», IEEE MMSP 2020.
Le codeur COD comprend également un dispositif CICD de codage d’information configuré pour mettre en œuvre l’étape C6 précitée de codage d’une ou de plusieurs informations ICD représentatives d’une configuration de décodage à posséder par le dispositif de décodage pour décoder le signal F.
Le codeur COD comprend également un dispositif IICD configuré pour mettre en œuvre l’étape C7 précitée d’inscription d’informations ICDcodobtenues par le dispositif CICD soit dans le signal de données F, soit dans le message F’ associé au signal F.
Le codeur COD comprend également une mémoire de stockage MS_C configurée pour stocker les tables de syntaxe T1 à T12. Alternativement, cette mémoire de stockage MS_C n’est pas contenue dans le codeur COD mais est accessible par ce dernier par tout moyen adapté, via un réseau de communication par exemple. Dans un mode de réalisation, le signal de données F et le message optionnel F’ peuvent également être stocké dans la mémoire de stockage MS_C ou dans une mémoire de stockage additionnelle (non représentée).
Décodage de données audio et/ou vidéo codées
On décrit ci-après un procédé de décodage d’un signal de données codées audio et/ou vidéo relatives à une image ou une séquence d’images de type 2D ou 3D. Un tel procédé de décodage est apte à être mis en œuvre dans tout type de décodeurs vidéo, par exemple conformes au standard JPEG, AVC, HEVC, VVC et leurs extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), ou autre, par exemple les décodeurs vidéo basés réseaux de neurones. Un tel procédé de décodage est apte à être également mis en œuvre dans tout type de décodeurs audio, par exemple conformes au standard MP3, AAC, MPEG-H 3D Audio, ou autre, par exemple les décodeurs audio basés réseaux de neurones.
En référence à la , le procédé de décodage selon l’invention comprend ce qui suit.
En D1, est reçu par un dispositif de décodage DEC représenté à la , le signal de données F précité, qui contient les données audio et/ou vidéo codées DAT et les informations codées ICDcodreprésentatives d’une configuration de décodage particulière à posséder par le dispositif de décodage DEC pour décoder le signal F.
Alternativement, en D1, sont reçus par le dispositif de décodage DEC :
- le signal de données F contenant les données audio et/ou vidéo codées DAT,
- le message F’ contenant les informations codées ICDcodreprésentatives d’une configuration de décodage particulière à posséder par le dispositif de décodage DEC pour décoder le signal F.
En D2, il est procédé à une extraction du signal de données F reçu des données audio et/ou vidéo codées DAT et des informations codées ICDcod.
Alternativement, en D2, il est procédé à une extraction, du signal de données F reçu, des données audio et/ou vidéo codées DAT et à une extraction, du message F’ reçu, des informations codées ICDcod.
Conformément à l’invention, la ou les informations codées ICDcodsont décodées en D3. A l’issue de cette opération, les informations ICD sont reconstruites, ce qui permet au décodeur d’identifier la ou les caractéristiques de décodage requises pour qu’il soit capable de décoder les données audio et/ou vidéo codées DAT. A cet effet, dans un mode de réalisation particulier de l’invention, la valeur d’un ou de plusieurs indicateurs, tels que par exemple les indicateurs proc_idc, buffer_size_idc, ops_idc, latent_rate_idc, precision_idc, repro_flag, sources_idc, operators_idc, activations_idc, level_idc, cat1_level_idc, cat2_level_idc, cat3_level_idc, est lue, puis mise en correspondance avec sa caractéristique de décodage associée ou bien ses caractéristiques de décodage associées dans le cas notamment des indicateurs cat1_level_idc et cat3_level_idc. Une telle mise en correspondance est mise en œuvre à l’aide des tables de correspondance T1 à T13 précitées qui sont rendues accessibles par le dispositif de décodage DEC.
En D4, Le dispositif de décodage DEC compare la ou les caractéristiques de décodage identifiées en D3 avec respectivement la ou les caractéristiques de décodage qui lui sont propres. Une telle comparaison est rendue possible par le fait que le dispositif de décodage DEC est en mesure d’accéder aux caractéristiques techniques de la plateforme sur lequel il fonctionne (qu’il soit logiciel ou matériel ou hybride) et des performances qu’il est capable d’atteindre.
Si à l’issue de la comparaison D4, le dispositif de décodage DEC ne possède pas la ou les caractéristiques de décodage identifiées en D3, le décodage des données audio et/ou vidéo codées DAT n’est pas mis en œuvre. Le décodage est donc abandonné (ABD).
Si à l’issue de la comparaison D4, le dispositif de décodage DEC possède la ou les caractéristiques de décodage identifiées en D3, le décodage des données audio et/ou vidéo codées DAT est mis en œuvre à l’aide d’un dispositif de calcul DCIA_D basé sur de l’intelligence artificielle, le dispositif de calcul DCIA_D mettant en œuvre un décodage correspondant au codage mis en œuvre par le dispositif de calcul DCIA_C.
A cet effet, il est procédé en D5 à une déquantification et à un décodage entropique des données audio et/ou vidéo codées DAT. Un tel décodage entropique est par exemple un décodage de Huffman ou un décodage CABAC. Dans le mode préféré de réalisation, le décodage entropique est de type CABAC. A l’issue de cette opération, un signal d’écart décodé BEc decest obtenu.
En D6, une prédiction est mise en œuvre, générant l’ensemble de données de prédiction courant BPc, ces données étant par exemple ici des pixels mais pouvant être également des échantillons d’un signal audio.
Les étapes D5 et D6 peuvent être mises en œuvre dans n’importe quel ordre ou simultanément.
En D7, un ensemble de pixels courant reconstruit BDcest calculé en combinant le signal d’écart décodé BEc decobtenu en D5 à l’ensemble de pixels ou d’échantillons de prédiction BPcobtenu en D6.
De façon connue en soi, l’ensemble de pixels courant reconstruit BDcpourra éventuellement subir un filtrage par un filtre de boucle du signal reconstruit qui est bien connu de l’homme du métier.
Bien entendu, dans le cas où le signal d’écart BEcqui a été calculé lors du procédé de codage précité est nul, ce qui peut être le cas pour le mode de codage SKIP, l’étape D2 d’extraction du signal d’écart BEcet l’étape D5 de déquantification et de décodage entropique ne sont pas mises en œuvre.
On décrit maintenant en référence à la un décodeur DEC représenté sous forme schématique, le décodeur DEC étant adapté pour mettre en œuvre le procédé de décodage illustré en , dans un mode de réalisation particulier de l'invention.
Selon ce mode de réalisation particulier, les actions exécutées par le procédé de décodage sont mises en œuvre par des instructions de programme d'ordinateur. Pour cela, le dispositif de décodage DEC a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEM_D, une unité de traitement UT_D, équipée par exemple d'un processeur PROC_D, et pilotée par le programme d'ordinateur PG_D stocké en mémoire MEM_D. Le programme d'ordinateur PG_D comprend des instructions pour mettre en œuvre les actions du procédé de décodage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur PROC_D.
Le décodeur DEC reçoit en entrée E_D le signal de données F, éventuellement le message F’, transmis par le codeur COD de la , et délivre en sortie S_D l’ensemble de pixels ou d’échantillons décodé courant BDc.
Le décodeur DEC comprend également un dispositif DICD de décodage d’information, configuré pour mettre en œuvre l’étape D3 précitée de décodage d’une ou de plusieurs informations codées ICDcodreprésentatives d’une configuration de décodage à posséder par le décodeur DEC pour décoder le signal F.
Le décodeur DEC comprend également un dispositif COMP configuré pour comparer en D4 la ou les informations ICD reconstruites et représentatives d’une configuration de décodage à posséder par le décodeur DEC pour décoder le signal F avec les propres caractéristiques de décodage du décodeur DEC.
De façon correspondante au codeur COD de la , le décodeur DEC comprend également une mémoire de stockage MS_D configurée pour stocker les tables de syntaxe T1 à T13 précitées. Alternativement, cette mémoire de stockage MS_D n’est pas contenue dans le décodeur DEC mais est accessible par ce dernier par tout moyen adapté, via un réseau de communication par exemple. Dans un mode de réalisation, le signal de données F et le message optionnel F’ peuvent également être stockés dans la mémoire de stockage MS_D ou dans une mémoire de stockage additionnelle (non représentée).
Le décodeur DEC comprend un dispositif de prédiction PRED_D configuré pour mettre en œuvre l’étape de prédiction D6 précitée. Comme déjà expliqué plus haut dans la description, ce dispositif de prédiction :
- peut être conventionnel et configuré selon par exemple la norme HEVC, VVC, CELP, etc. ;
- peut être un réseau neuronal, par exemple du type décrit dans le document précité Théo Ladune, Pierrick Philippe, «AIC ARTIFICIAL INTELLIGENCE BASED VIDEO CODEC», 17 Feb 2022,
- etc...
Le décodeur DEC peut comprendre également un dispositif de calcul basé sur de l’intelligence artificielle, référencé DCIA_D, qui est configuré pour automatiser au moins une opération de décodage pour la rendre plus efficace et plus adaptative. Un tel dispositif de calcul comprend par exemple un réseau ou plusieurs réseaux de neurones artificiels de décodage, une machine à vecteur de support, un moteur de raisonnement, un système expert, un système en logique floue, etc.
Dans le mode de réalisation préféré, le dispositif de calcul DCIA_D est un réseau neuronal, tel que par exemple un réseau neuronal convolutif ou CNN, un perceptron multicouche, un LSTM, etc. De manière plus particulière, dans le mode de réalisation préféré, le réseau neuronal utilisé est un réseau neuronal convolutif. Un tel réseau de neurones est défini par une structure comprenant par exemple une pluralité de couches de neurones artificiels et/ou par un ensemble de poids associés respectivement aux neurones artificiels de ce réseau.
Dans un mode de réalisation particulier, le réseau neuronal DCIA_D combine en D7 le signal d’écart décodé BEc decobtenu en D5 à l’ensemble de pixels ou d’échantillons de prédiction BPcgénéré en D6. Un tel réseau neuronal est par exemple du type décrit dans le document : Ladune «Optical Flow and Mode Selection for Learning-based Video Coding», IEEE MMSP 2020. Dans un autre mode de réalisation particulier, l’opération de prédiction D6 est également mise en œuvre à l’aide d’un réseau neuronal convolutif et non à l’aide d’un dispositif de prédiction classique du type VVC par exemple. Un tel réseau neuronal est décrit notamment dans le document Théo Ladune, Pierrick Philippe, «AIC ARTIFICIAL INTELLIGENCE BASED VIDEO CODEC», 17 Feb 2022.
Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l’homme de l’art sans pour autant sortir du cadre de l’invention.

Claims (11)

  1. Procédé de codage de données audio et/ou vidéo, mis en œuvre par un dispositif de codage configuré pour mettre en œuvre au moins une étape de codage des données audio et/ou vidéo à l’aide d’un réseau de neurones artificiels de codage (DCIA_C), ledit procédé de codage comprenant ce qui suit :
    - coder (C2-C4) les données audio et/ou vidéo,
    - générer (C5) un signal de données qui contient les données audio et/ou vidéo codées,
    - coder (C6) une information représentative d’une configuration de décodage à posséder par un dispositif de décodage pour décoder lesdites données codées,
    - insérer (C7) l’information codée dans le signal de données.
  2. Procédé de décodage de données audio et/ou vidéo codées, mis en œuvre par un dispositif de décodage, comprenant ce qui suit :
    - recevoir (D1) un signal de données audio et/ou vidéo codées,
    - décoder (D3), à partir dudit signal, une information représentative d’une configuration de décodage selon laquelle au moins une étape de décodage des données audio et/ou vidéo est mise en œuvre à l’aide d’un réseau de neurones artificiels de décodage (DCIA_D),
    - vérifier (D4) si le dispositif de décodage possède la configuration de décodage correspondant à l’information décodée,
    - décoder (D5-D7) ou non ledit signal, en fonction du résultat de la vérification.
  3. Procédé de codage selon la revendication 1 ou de décodage selon la revendication 2, dans lequel la configuration de décodage appartient :
    - à une première catégorie correspondant à au moins une caractéristique physique particulière d’un matériel ou logiciel à supporter par le dispositif de décodage pour pouvoir décoder le signal, et/ou
    - à une deuxième catégorie correspondant à une caractéristique particulière dudit signal, et/ou
    - à une troisième catégorie correspondant à au moins une fonctionnalité de traitement particulière à appliquer par le dispositif de décodage pour pouvoir décoder le signal.
  4. Procédé de codage ou de décodage selon la revendication 3, dans lequel l’information représentative d’une configuration de décodage, qui est respectivement codée ou décodée, est associée à au moins une catégorie parmi la première, deuxième ou troisième catégorie.
  5. Procédé de codage selon l’une quelconque des revendications 1, 3 à 4 ou de décodage selon l’une quelconque des revendications 2 à 4, dans lequel la configuration de décodage appartient à un ensemble comprenant :
    - une taille maximale d’une mémoire de stockage de données ;
    - un nombre minimal d’opérations par seconde ;
    - un débit minimal de variables latentes ;
    - un type de circuit électronique particulier ;
    - un niveau de précision de représentation mathématique d’au moins un paramètre de fonctionnement du réseau de neurones artificiels de décodage ;
    - l’activation ou non d’au moins une étape de décodage de référence ;
    - au moins un opérateur mathématique particulier ou une liste d’opérateurs mathématiques particuliers ;
    - une fonction mathématique particulière ;
    - un nombre de sources statistiques de décodage entropique.
  6. Procédé de codage selon l’une quelconque des revendications 1, 3 à 5 ou de décodage selon l’une quelconque des revendications 2 à 5, dans lequel l’information représentative d’une configuration de décodage est contenue dans un ensemble de paramètres vidéo prédéfinis du procédé de codage ou de décodage respectivement, ou, lorsque les données vidéo sont représentatives d’une séquence d’images, dans un ensemble de paramètres associés à ladite séquence.
  7. Procédé de codage selon l’une quelconque des revendications 1, 3 à 6 ou de décodage selon l’une quelconque des revendications 2 à 6, dans lequel l’information représentative d’une configuration de décodage comprend :
    - une première valeur qui est associée à un premier élément de configuration de ladite configuration de décodage, et
    - une deuxième valeur qui est associée au premier élément de configuration et à un deuxième élément de configuration de ladite configuration de décodage.
  8. Dispositif de codage de données audio et/ou vidéo, configuré pour mettre en œuvre au moins une étape de codage des données audio et/ou vidéo à l’aide d’un réseau de neurones artificiels de codage, ledit dispositif de codage étant configuré pour mettre en œuvre ce qui suit :
    - coder les données audio et/ou vidéo,
    - générer un signal de données qui contient les données audio et/ou vidéo codées,
    - coder une information représentative d’une configuration de décodage à posséder par un dispositif de décodage pour décoder lesdites données codées,
    - insérer ladite information codée dans ledit signal de données.
  9. Dispositif de décodage de données audio et/ou vidéo codées, configuré pour mettre en œuvre ce qui suit :
    - recevoir un signal de de données audio et/ou vidéo codées,
    - décoder, à partir dudit signal, une information représentative d’une configuration de décodage selon laquelle au moins une étape de décodage des données audio et/ou vidéo est mise en œuvre à l’aide d’un réseau de neurones artificiels de décodage,
    - vérifier si le dispositif de décodage possède la configuration de décodage correspondant à l’information décodée,
    - décoder ou non ledit signal, en fonction du résultat de la vérification.
  10. Programme d'ordinateur comportant des instructions de code de programme pour la mise en œuvre du procédé de codage selon l’une quelconque des revendications 1, 3 à 7, ou du procédé de décodage selon l’une quelconque des revendications 2 à 7, lorsqu'il est exécuté sur un ordinateur.
  11. Support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur selon la revendication 10.
FR2207026A 2022-07-08 2022-07-08 Codage et décodage de données audio et/ou vidéo Pending FR3137809A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2207026A FR3137809A1 (fr) 2022-07-08 2022-07-08 Codage et décodage de données audio et/ou vidéo
PCT/EP2023/068806 WO2024008905A1 (fr) 2022-07-08 2023-07-07 Codage et décodage de données audio et/ou vidéo

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2207026 2022-07-08
FR2207026A FR3137809A1 (fr) 2022-07-08 2022-07-08 Codage et décodage de données audio et/ou vidéo

Publications (1)

Publication Number Publication Date
FR3137809A1 true FR3137809A1 (fr) 2024-01-12

Family

ID=84331136

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2207026A Pending FR3137809A1 (fr) 2022-07-08 2022-07-08 Codage et décodage de données audio et/ou vidéo

Country Status (2)

Country Link
FR (1) FR3137809A1 (fr)
WO (1) WO2024008905A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014055594A2 (fr) * 2012-10-04 2014-04-10 Qualcomm Incorporated Format de fichier pour données vidéo
KR20200005402A (ko) * 2018-07-05 2020-01-15 (주)인시그널 도구 단위의 dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법
US20200175396A1 (en) * 2018-12-04 2020-06-04 Intel Corporation Deterministic neural networking interoperability
WO2021140275A1 (fr) * 2020-01-07 2021-07-15 Nokia Technologies Oy Syntaxe de haut niveau pour représentation compressée de réseaux neuronaux

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014055594A2 (fr) * 2012-10-04 2014-04-10 Qualcomm Incorporated Format de fichier pour données vidéo
KR20200005402A (ko) * 2018-07-05 2020-01-15 (주)인시그널 도구 단위의 dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법
US20200175396A1 (en) * 2018-12-04 2020-06-04 Intel Corporation Deterministic neural networking interoperability
WO2021140275A1 (fr) * 2020-01-07 2021-07-15 Nokia Technologies Oy Syntaxe de haut niveau pour représentation compressée de réseaux neuronaux

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CHUJOH T ET AL: "AHG9/AHG11: Level information for super-resolution neural network", no. JVET-U0053, 30 December 2020 (2020-12-30), XP030293098, Retrieved from the Internet <URL:https://jvet-experts.org/doc_end_user/documents/21_Teleconference/wg11/JVET-U0053-v2.zip JVET-U0053-v2.docx> [retrieved on 20201230] *
LADUNE: "Optical Flow and Mode Sélection for Learning-based Video Coding", 2020, IEEE MMSP
MCCARTHY (DOLBY) S ET AL: "AHG9: Neural-network post filtering SEI message", no. JVET-Z0121 ; m59453, 22 April 2022 (2022-04-22), XP030300974, Retrieved from the Internet <URL:https://jvet-experts.org/doc_end_user/documents/26_Teleconference/wg11/JVET-Z0121-v2.zip JVET-Z0121_v2.docx> [retrieved on 20220422] *
THÉO LADUNEPIERRICK PHILIPPE, AIC ARTIFICIAL INTELLIGENCE BASED VIDEO CODEC, 17 February 2022 (2022-02-17)
THÉO LADUNEPIERRICK PHILIPPE: "AIC ARTIFICIAL INTELLIGENCE BASED VIDEO CODEC", 17 February 2022

Also Published As

Publication number Publication date
WO2024008905A1 (fr) 2024-01-11

Similar Documents

Publication Publication Date Title
EP2981088B1 (fr) Support d&#39;enregistrement mémorisant un flux de données d&#39;images codées
EP3694209B1 (fr) Procédé de décodage d&#39;images, dispositif de décodage d&#39;images, et programme d&#39;ordinateur correspondant
EP3716623A1 (fr) Procédé de décodage d&#39;images
EP2932714B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP2868088A1 (fr) Procédé de codage d&#39;un bloc courant d&#39;une première composante d&#39;image par rapport a un bloc de référence d&#39;au moins une deuxième composante d&#39;image, dispositif de codage et programme d&#39;ordinateur correspondant
US20240105193A1 (en) Feature Data Encoding and Decoding Method and Apparatus
EP3198876B1 (fr) Génération et codage d&#39;images intégrales résiduelles
EP3180914B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP4344203A2 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d ordinateur correspondants
FR3137809A1 (fr) Codage et décodage de données audio et/ou vidéo
EP2901698B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP3529987A1 (fr) Procédé de codage et de décodage de paramètres d&#39;image, dispositif de codage et de décodage de paramètres d&#39;image et programmes d&#39;ordinateur correspondants
WO2017129880A1 (fr) Procédé de codage et décodage de données, dispositif de codage et décodage de données et programmes d&#39;ordinateur correspondants
EP3259909B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR2907989A1 (fr) Procede et dispositif d&#39;optimisation de la compression d&#39;un flux video
FR3044507A1 (fr) Procede de codage et de decodage d&#39;images, dispositif de codage et de decodage d&#39;images et programmes d&#39;ordinateur correspondants
FR2957744A1 (fr) Procede de traitement d&#39;une sequence video et dispositif associe
FR3143245A1 (fr) Procédé et dispositif de codage et décodage d’images.
FR3120173A1 (fr) Détermination d’au moins un mode de codage d’image ou d’au moins un mode de décodage d’image, codage et décodage d’image utilisant une telle détermination
FR2717927A1 (fr) Procédé et appareil de compression, de palettisation, d&#39;émission et de réception d&#39;images en couleur.
FR3129802A1 (fr) Procédé d’encodage de partitions d’images, et dispositif associé
FR3033114A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants
FR2880744A1 (fr) Procede et dispositif de quantification progressive, procede et dispositif de decodage, programmes informatiques, signaux et supports de donnees correspondants

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240112