FR3112662A1 - Procédé et dispositif électronique de décodage d’un flux de données, et flux de données associé - Google Patents

Procédé et dispositif électronique de décodage d’un flux de données, et flux de données associé Download PDF

Info

Publication number
FR3112662A1
FR3112662A1 FR2007530A FR2007530A FR3112662A1 FR 3112662 A1 FR3112662 A1 FR 3112662A1 FR 2007530 A FR2007530 A FR 2007530A FR 2007530 A FR2007530 A FR 2007530A FR 3112662 A1 FR3112662 A1 FR 3112662A1
Authority
FR
France
Prior art keywords
data
artificial neural
neural network
fet
decoding
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
FR2007530A
Other languages
English (en)
Inventor
HENRY FéLIX
Félix Henry
Clare Gordon
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.)
Fondation B Com
Original Assignee
Orange SA
Fondation B Com
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, Fondation B Com filed Critical Orange SA
Priority to FR2007530A priority Critical patent/FR3112662A1/fr
Priority to KR1020237005501A priority patent/KR20230039714A/ko
Priority to US18/016,568 priority patent/US20230283790A1/en
Priority to JP2023503012A priority patent/JP2023534495A/ja
Priority to CN202180050576.7A priority patent/CN115956365A/zh
Priority to EP21745307.5A priority patent/EP4183133A1/fr
Priority to PCT/EP2021/069515 priority patent/WO2022013247A1/fr
Publication of FR3112662A1 publication Critical patent/FR3112662A1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals

Landscapes

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

Abstract

Dans un procédé de décodage d’un flux de données au moyen d’un dispositif électronique (10) comprenant un processeur (14), et une unité de traitement parallélisé (16) conçue pour effectuer en parallèle à un instant donné une pluralité d’opérations du même type, le flux de données comprend un premier ensemble de données (Fet) et un second ensemble de données (Fnn) représentatives d’un contenu audio ou vidéo. Le procédé de décodage comprend les étapes suivantes : - traitement des données du premier ensemble de données (Fet) par le processeur (14) ; - obtention du contenu audio ou vidéo par traitement (E70) des données du second ensemble de données (Fnn) selon un processus dépendant d’une partie au moins des données du premier ensemble (Fet) et utilisant un réseau de neurones artificiels (18) mis en œuvre par l’unité de traitement parallélisé (16). Figure pour l’abrégé : figure 7

Description

Procédé et dispositif électronique de décodage d’un flux de données, et flux de données associé
Domaine technique de l'invention
La présente invention concerne le domaine technique du décodage de contenus, notamment de contenus audio ou vidéo.
Elle concerne en particulier un procédé et un dispositif électronique de décodage d’un flux de données, ainsi qu’un flux de données associé.
Etat de la technique
Il est connu, notamment dans le domaine du décodage vidéo, d’utiliser un dispositif électronique comprenant à la fois un processeur (généralement une unité centrale du dispositif électronique, ou CPU pour "Central Processing Unit") et une unité de traitement parallélisé conçue pour effectuer en parallèle à un instant donné une pluralité d’opérations du même type. Une telle unité de traitement parallélisé est par exemple une unité de traitement graphique ou GPU (pour "Graphical Processing Unit"), ou une unité de traitement de tenseur ou TPU (pour "Tensor Processing Unit"), telle que décrite par exemple dans l’article "Google’s Tensor Processing Unit explained : this is what the future of computing looks like", de Joe Osborne, Techradar, 22 août 2016.
Il a par ailleurs été proposé de compresser des données représentatives d’un contenu vidéo au moyen d’un réseau de neurones artificiels. Le décodage des données compressées peut alors s’effectuer au moyen d’un autre réseau de neurones artificiels, comme décrit par exemple dans l’article "DVC : An End-to- e nd Deep Video Compression Framework", de Guo Lu et al., 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Long Beach, CA, USA, 2019, pp. 10998-11007.
Présentation de l'invention
Dans ce contexte, la présente invention propose un procédé de décodage d’un flux de données au moyen d’un dispositif électronique comprenant un processeur, et une unité de traitement parallélisé conçue pour effectuer en parallèle à un instant donné une pluralité d’opérations du même type, caractérisé en ce que le flux de données comprend un premier ensemble de données et un second ensemble de données représentatives d’un contenu audio ou vidéo, et en ce que le procédé comprend les étapes suivantes :
- traitement des données du premier ensemble de données par le processeur ;
- obtention du contenu audio ou vidéo par traitement des données du second ensemble de données selon un processus dépendant d’une partie au moins des données du premier ensemble et utilisant un réseau de neurones artificiels mis en œuvre par l’unité de traitement parallélisé.
Le traitement des données du second ensemble au moyen du réseau de neurones artificiels mis en œuvre par l’unité de traitement parallélisé peut ainsi être adapté en fonction des données du premier ensemble contenues dans le flux de données. On obtient ainsi un traitement souple et efficace des secondes données en vue de leur décodage par un réseau de neurones artificiels.
Le procédé peut ainsi par exemple comprendre une étape de configuration de l’unité de traitement parallélisé en fonction d’une partie au moins des données du premier ensemble de données.
La configuration de l’unité de traitement parallélisé peut comprendre une allocation de mémoire de l’unité de traitement parallélisé et/ou une instanciation de la mémoire de l’unité de traitement parallélisé et/ou une affectation de valeurs (en fonction de ladite partie au moins des données du premier ensemble de données) aux traitements implémentés sur l’unité de traitement parallélisé (ici en pratique une affectation de poids et/ou de fonctions d’activation définissant le réseau de neurones artificiels, ces poids et/ou fonctions d’activation étant déterminés en fonction de ladite partie au moins des données du premier ensemble de données).
Selon une première possibilité, le premier ensemble de données peut comprendre des donnés descriptives du réseau de neurones artificiels (par exemple des données de codage du réseau de neurones artificiels). Dans ce cas, à l’étape de configuration, le processeur peut configurer l’unité de traitement parallélisé sur la base de ces données descriptives.
Selon une seconde possibilité, le dispositif électronique peut comprendre une unité de stockage d’une pluralité de jeux de paramètres définissant respectivement une pluralité de réseaux de neurones artificiels. Le premier ensemble de données peut dans ce cas comprendre un identifiant. À l’étape de configuration, le processeur peut alors configurer l’unité de traitement parallélisé sur la base d’un jeu de paramètres associé à cet identifiant parmi la pluralité de jeux de paramètres.
Le processeur est par exemple un microprocesseur ; le processeur peut ainsi exécuter successivement une pluralité d’instructions d’un programme d’ordinateur.
On peut prévoir par ailleurs que le flux de données comprenne en outre des instructions exécutables (par exemple par le processeur, ou en variante par une machine virtuelle) au sein du dispositif électronique. Le traitement des données du premier ensemble de données peut dans ce cas être au moins en partie effectué du fait de l’exécution d’une partie au moins de ces instructions.
En particulier, l’étape de configuration de l’unité de traitement parallélisé peut alors être effectuée du fait de l’exécution d’une partie au moins de ces instructions.
Le procédé de décodage peut comprendre par ailleurs une étape d’identification du premier ensemble de données et du second ensemble de données au sein du flux de données (par exemple grâce à l’utilisation d’une longueur en bits prédéterminée pour le premier ensemble de données et/ou le second ensemble de données, ou grâce à l’utilisation d’un indicateur de frontière entre le premier ensemble de données et le second ensemble de données).
Le premier ensemble de données peut par ailleurs comprendre des données représentatives de caractéristiques du format du contenu codé par le flux de données.
Lorsque le contenu est un contenu vidéo (c’est-à-dire que ce contenu comprend au moins une image, éventuellement une séquence d’images), le traitement des données du second ensemble peut produire par exemple au moins une représentation matricielle d’une partie au moins d’une image (par exemple un bloc de l’image ou d’une composante de l’image, ou encore l’image entière).
Le réseau de neurones artificiels peut recevoir en entrée (c’est-à-dire au niveau d’une couche d’entrée du réseau de neurones artificiels) des données du second ensemble de données. Le réseau de neurones artificiels peut par ailleurs produire en sortie (c’est-à-dire au niveau d’une couche de sortie du réseau de neurones artificiels) la représentation matricielle précitée.
Selon une possibilité de réalisation, le réseau de neurones artificiels peut recevoir en outre en entrée (c’est-à-dire au niveau de la couche d’entrée susmentionnée) des données produites au préalable en sortie (c’est-à-dire au niveau de la couche de sortie) du réseau de neurones artificiels.
L'invention propose également un dispositif électronique de décodage d’un flux de données comprenant un premier ensemble de données et un second ensemble de données représentatives d’un contenu audio ou vidéo, le dispositif électronique comprenant :
- un processeur adapté à traiter les données du premier ensemble de données ;
- une unité de traitement parallélisé conçue pour effectuer en parallèle à un instant donné une pluralité d’opérations du même type et adaptée à obtenir le contenu audio ou vidéo par traitement des données du second ensemble de données selon un processus dépendant d’une partie au moins des données du premier ensemble et utilisant un réseau de neurones artificiels mis en œuvre par l’unité de traitement parallélisé.
Comme déjà indiqué, le processeur peut en outre être adapté à configurer l’unité de traitement parallélisé en fonction d’une partie au moins des données du premier ensemble de données.
L’unité de traitement parallélisé peut quant à elle être adaptée pour produire au moins une représentation matricielle d’une partie au moins d’une image.
L’invention propose enfin un flux de données comprenant un premier ensemble de données et un second ensemble de données représentatives d’un contenu audio ou vidéo, dans lequel le premier ensemble de données comprend des données définissant au moins en partie un processus de traitement des données du second ensemble de données utilisant un réseau de neurones artificiels.
Comme déjà indiqué et expliqué dans la suite, ces données définissant au moins en partie le processus de traitement peuvent être un identifiant du réseau de neurones artificiels (parmi un ensemble prédéterminé de réseaux de neurones artificiels) ou des données descriptives (par exemple des données de codage) du réseau de neurones artificiels.
Bien entendu, les différentes caractéristiques, variantes et formes de réalisation de l'invention peuvent être associées les unes avec les autres selon diverses combinaisons dans la mesure où elles ne sont pas incompatibles ou exclusives les unes des autres.
Description détaillée de l'invention
De plus, diverses autres caractéristiques de l'invention ressortent de la description annexée effectuée en référence aux dessins qui illustrent des formes, non limitatives, de réalisation de l'invention et où :
représente un dispositif électronique de codage utilisé dans le cadre de l’invention ;
est un logigramme représentant des étapes d’un procédé de codage mis en œuvre au sein du dispositif électronique de codage de la figure 1 ;
est un premier exemple de flux de données obtenu par le procédé de la figure 2 ;
est un second exemple de flux de données obtenu par le procédé de la figure 2 ;
est un troisième exemple de flux de données obtenu par le procédé de la figure 2 ;
est un quatrième exemple de flux de données obtenu par le procédé de la figure 2 ;
représente un dispositif électronique de codage selon un mode de réalisation de l’invention ; et
est un logigramme représentant des étapes d’un procédé de décodage mis en œuvre au sein du dispositif électronique de décodage de la figure 7.
La figure 1 représente un dispositif électronique de codage 2 utilisant au moins un réseau de neurones artificiels 8.
Ce dispositif électronique de codage 2 comprend un processeur 4 (par exemple un microprocesseur) et une unité de traitement parallélisé 6, par exemple une unité de traitement graphique (ou GPU pour "Graphical Processing Unit") ou une unité de traitement de tenseur (ou TPU pour "Tensor Processing Unit").
Comme schématiquement représenté en figure 1, le processeur 4 reçoit des données P, B représentant un contenu audio ou vidéo à compresser, ici des données de format P et des données de contenu B.
Les données de format P indiquent des caractéristiques du format de représentation du contenu audio ou vidéo, par exemple pour un contenu vidéo les dimensions (en pixels) des images, la fréquence d’image, la profondeur en bits des informations de luminance et la profondeur en bits des informations de luminance.
Les données de contenu B forment une représentation (ici non compressée) du contenu audio ou vidéo. Par exemple, dans le cas d’un contenu vidéo, les données de contenu comprennent, pour chaque pixel de chaque image d’une séquence d’image, des données représentant une valeur de luminance du pixel et des données représentant des valeurs de chrominance du pixel.
L’unité de traitement parallélisé 6 est conçue pour mettre en œuvre un réseau de neurones artificiels 8 après avoir été configurée par le processeur 4. Pour ce faire, l’unité de traitement parallélisé est conçue pour effectuer en parallèle à un instant donné une pluralité d’opérations du même type.
Comme expliqué dans la suite, le réseau de neurones artificiels 8 est utilisé dans le cadre d’un traitement des données de contenu B visant à obtenir des données compressées C.
Dans le mode de réalisation décrit ici, lorsque les données de contenu B sont appliquées en entrée du réseau de neurones artificiels 8, le réseau de neurones artificiels 8 produit en sortie les données compressées C.
Les données de contenu B appliquées en entrée du réseau de neurones artificiels 8 (c’est-à-dire appliquées à une couche d’entrée du réseau de neurones artificiels 8) peuvent représenter un bloc d’une image, ou un bloc d’une composante d’une image (par exemple un bloc d’une composante de luminance ou de chrominance de cette image, ou un bloc d’une composante de couleur de cette image), ou une image d’une séquence vidéo, ou une composante d’une image d’une séquence vidéo (par exemple une composante de luminance ou de chrominance, ou une composant de couleur), ou encore une série d’images de la séquence vidéo.
On peut prévoir par exemple dans ce cas que certains au moins des neurones de la couche d’entrée reçoivent chacun une valeur de pixel d’une composante d’une image, valeur représentée par l’une des données de contenu B.
En variante, le traitement des données de contenu B peut comprendre l’utilisation de plusieurs réseaux de neurones artificiels, comme décrit par exemple dans l’article précité "DVC : An End-to-end Deep Video Compression Framework", de Guo Luet al., 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), juin 2019.
On décrit à présent en référence à la figure 2 un exemple de procédé de codage mis en œuvre par le dispositif électronique de codage 2.
Une mémoire liée au processeur 4 mémorise par exemple des instructions de programme d’ordinateur conçues pour la mise en œuvre d’une partie au moins des étapes du procédé de la figure 2 lorsque ces instructions sont exécutées par le processeur 4. Autrement dit, le processeur 4 est programmé pour mettre en œuvre une partie au moins des étapes de la figure 2.
Le procédé de la figure 2 débute ici par une étape optionnelle E2 de réception d’une liste de réseaux de neurones artificiels accessibles par un dispositif électronique de décodage.
La liste est par exemple reçue par le processeur 4 du dispositif électronique de codage 2 directement en provenance d’un dispositif électronique de décodage (conforme par exemple au dispositif électronique de décodage 10 de la figure 7 décrit plus loin).
Comme expliqué ci-dessous, les réseaux de neurones artificiels accessibles par le dispositif électronique de décodage sont des réseaux de neurones artificiels pour lesquels le dispositif électronique de décodage mémorise des paramètres définissant le réseau de neurones artificiels concerné ou peut avoir accès à ces paramètres par connexion à un équipement électronique distant tel qu’un serveur.
En variante, la liste pourrait être reçue par le processeur 4 du dispositif électronique 2 en provenance d’un serveur distant, tel que le serveur précité.
Le procédé de la figure 2 se poursuit par une étape E4 de sélection d’un couple processus de codage – processus de décodage. Comme déjà indiqué pour le processus de codage, le processus de codage et le processus de décodage utilisent chacun au moins un réseau de neurones artificiels.
Dans l’exemple décrit ici, le processus de codage est mis en œuvre par un réseau de neurones artificiels de codage et le processus de décodage est mis en œuvre par un réseau de neurones artificiels de décodage.
L’ensemble formé par le réseau de neurones artificiels de codage et par le réseau de neurones artificiels de décodage (la sortie du réseau de neurones artificiels de codage étant appliquée à l’entrée du réseau de neurones artificiels de décodage) constitue par exemple un auto-encodeur.
Le couple processus de codage – processus de décodage est par exemple sélectionné parmi une pluralité de couples processus de codage – processus de décodage prédéfinis, c’est-à-dire ici parmi une pluralité de couples réseau de neurones artificiels de codage – réseau de de neurones artificiels de décodage.
Lorsqu’une liste de réseaux de neurones artificiels accessibles par un dispositif électronique de décodage est préalablement reçue (comme expliqué ci-dessus à l’étape E2), le couple processus de codage – processus de décodage est par exemple sélectionné parmi des couples processus de codage – processus de décodage pour lesquels le processus de décodage utilise un réseau de neurones artificiels présent dans la liste reçue.
Le couple processus de codage – processus de décodage peut également être sélectionné en fonction de l’application visée (indiquée par exemple par un utilisateur au moyen d’une interface utilisateur non représentée du dispositif électronique de codage 2). Par exemple, si l’application visée est une visioconférence, le couple processus de codage – processus de décodage sélectionné comprend un processus de décodage à faible latence. Dans d’autres applications, le couple processus de codage – processus de décodage sélectionné comprendra un processus de décodage à accès aléatoire.
Dans un processus de décodage à faible latence d’une séquence vidéo, une image de la séquence vidéo est par exemple représentée par des données codées qui peuvent être envoyées et décodées immédiatement ; les données peuvent alors être envoyées dans l’ordre d’affichage des images de la vidéo, ce qui garantit dans ce cas une latence d’une image entre le codage et le décodage.
Dans un processus de décodage à accès aléatoire d’une séquence vidéo, les données codées relatives respectivement à une pluralité d’images sont envoyées dans un ordre différent de l’ordre d’affichage de ces images, ce qui permet d’augmenter la compression. Des images codées sans référence aux autres images (images ditesintra) peuvent alors être codées régulièrement, ce qui permet de démarrer le décodage de la séquence vidéo depuis plusieurs endroits dans le flux codé.
On pourra se référer à ce sujet à l’article "Overview of the High Efficiency Video Coding (HEVC) Standard", de G. J. Sullivan, J.-R. Ohm, W.-J. Han and T. Wiegand,inIEEE Transactions on Circuits and Systems for Video Technology, vol. 22, no. 12, pp. 1649-1668, déc. 2012.
Le couple processus de codage – processus de décodage peut également être sélectionné afin d’obtenir le meilleur compromis compression-distorsion possible.
Pour ce faire, on peut appliquer aux données de contenu B une pluralité d’ensembles processus de codage – processus de décodage et sélectionner l’ensemble pour lequel le meilleur compromis compression-distorsion est atteint.
En variante, on peut déterminer le type de contenu (par exemple par analyse des données de contenu B) et sélectionner le couple processus de codage – processus de décodage en fonction du type déterminé.
Le couple processus de codage – processus de décodage peut également être sélectionné en fonction de la puissance de calcul disponible au niveau du dispositif électronique de décodage. Une information représentative de cette puissance de calcul peut au préalable avoir été transmise du dispositif électronique de décodage au dispositif électronique de codage (et reçue par exemple par le dispositif électronique de codage à l’étape E2 décrite ci-dessus).
Les différents critères de sélection du couple processus de codage – processus de décodage peuvent éventuellement être combinés.
Une fois le couple processus de codage – processus de décodage sélectionné, le processeur 4 procède à l’étape E6 à la configuration de l’unité de traitement parallélisé 6 afin que l’unité de traitement parallélisé 6 puisse mettre en œuvre le processus de codage sélectionné.
Cette étape E6 comprend en particulier l’instanciation, au sein de l’unité de traitement parallélisé 6, du réseau de neurones artificiels de codage 8 utilisé par le processus de codage sélectionné.
Cette instanciation peut notamment comprendre les étapes suivantes :
- réservation, au sein de l’unité de traitement parallélisé 6, de l’espace mémoire nécessaire à la mise en œuvre du réseau de neurones artificiels de codage ; et/ou
- programmation de l’unité de traitement parallélisé 6 avec les poids W et les fonctions d’activation définissant le réseau de neurones artificiels de codage 8 ; et/ou
- chargement d’une partie au moins des données de contenu B sur une mémoire locale de l’unité de traitement parallélisé 6.
Le procédé de la figure 2 comprend alors une étape E8 de mise en œuvre du processus de codage, c’est-à-dire ici d’application des données de contenu B en entrée du réseau de neurones artificiels de codage 8 (ou autrement dit d’activation du réseau de neurones artificiels de codage 8 en prenant en entrée les données de contenu B).
L’étape E8 permet ainsi de produire (ici en sortie du réseau de neurones artificiels de codage 8) les données compressées C.
Les étapes qui suivent visent le codage (c’est-à-dire la préparation) du flux de données contenant notamment les données compressées C et destiné au dispositif électronique de décodage (par exemple le dispositif électronique de décodage 10 décrit ci-dessous en référence à la figure 7).
Le procédé comprend ainsi notamment une étape E10 de codage d’une première partie Fc d’en-tête qui comprend des données caractéristiques du format de représentation du contenu audio ou vidéo (ici par exemple des données liées au format de la séquence vidéo en cours de codage).
Ces données formant la première partie Fc d’en-tête indiquent par exemple les dimensions (en pixels) des images, la fréquence d’image, la profondeur en bits des informations de luminance et la profondeur en bits des informations de luminance. Ces données sont par exemple construites sur la base des données de format F susmentionnées (après un reformatage éventuel).
Le procédé de la figure 2 se poursuit alors par une étape E12 de détermination de la disponibilité du réseau de neurones artificiels de décodage (utilisé par le processus de décodage sélectionné à l’étape E4) pour le dispositif électronique de décodage susceptible de décoder le flux de données (par exemple le dispositif électronique de décodage 10 décrit ci-dessous en référence à la figure 7).
Cette détermination peut être réalisée sur la base de la liste reçue à l’étape E2 : le processeur 4 détermine dans ce cas si le réseau de neurones artificiels de décodage utilisé par le processus de décodage sélectionné à l’étape E4 fait partie de la liste reçue à l’étape E2. (Naturellement, dans les modes de réalisation où le couple processus de codage – processus de décodage est systématiquement choisi pour correspondre à un réseau de neurones artificiels de décodage disponible pour le dispositif électronique de décodage, l’étape E12 peut être omise et le procédé se poursuit alors à l’étape E14.)
Selon une possibilité de réalisation, en l’absence d’information sur la disponibilité du réseau de neurones artificiels de décodage pour le dispositif électronique de décodage, le procédé se poursuit à l’étape E16 (afin que des données descriptives du réseau de neurones artificiels de décodage soient transmises au dispositif électronique de décodage comme expliqué ci-dessous).
Si le processeur 4 détermine à l’étape E12 que le réseau de neurones artificiels de décodage est disponible pour le dispositif électronique de décodage (flèche P), le procédé se poursuit à l’étape E14 décrite plus bas.
Si le processeur 4 détermine à l’étape E12 que le réseau de neurones artificiels de décodage n’est pas disponible pour le dispositif électronique de décodage (flèche N), le procédé se poursuit à l’étape E16 décrite plus bas.
En variante, le choix de l’étape E14 ou de l’étape E16 en tant qu’étape postérieure à l’étape E12 pourrait être réalisé sur un autre critère, par exemple en fonction d’un indicateur dédié mémorisé au sein du dispositif électronique de codage 2 (et éventuellement réglable par l’utilisateur via une interface utilisateur du dispositif électronique de codage 2) ou en fonction d’un choix de l’utilisateur (obtenu par exemple via une interface utilisateur du dispositif électronique de codage 2).
Le processeur 4 procède à l’étape E14 au codage d’une seconde partie d’en-tête comprenant un indicateur IND et d’une troisième partie d’en-tête comprenant ici un identifiant Inn du réseau de neurones artificiels de décodage.
L’indicateur IND codé dans le flux de données à l’étape E14 indique que le réseau de neurones artificiels de décodage fait partie d’un ensemble prédéterminé de réseaux de neurones artificiels, ici l’ensemble des réseaux de neurones artificiels disponibles (ou accessibles) pour le dispositif électronique de décodage (c’est-à-dire par exemple l’ensemble des réseaux de neurones artificiels de la liste reçue à l’étape E2).
L’identifiant Inn du réseau de neurones artificiels de décodage est un identifiant définissant par convention (partagée notamment par le dispositif électronique de codage et le dispositif électronique de décodage) ce réseau de neurones artificiels de décodage, par exemple au sein de l’ensemble prédéterminé susmentionné.
Le processeur 4 procède à l’étape E16 au codage d’une seconde partie d’en-tête comprenant un indicateur IND’ et d’une troisième partie d’en-tête comprenant ici des données descriptives Rc du réseau de neurones artificiels de décodage.
L’indicateur IND’ codé dans le flux de données à l’étape E16 indique que le réseau de neurones artificiels de décodage est codé dans le flux de données, c’est-à-dire représenté au moyen des données descriptives Rc précitées.
Le réseau de neurones artificiels de décodage est par exemple codé (c’est-à-dire représenté) par les données descriptives (ou données de codage du réseau de neurones artificiels de décodage) Rc conformément à une norme telle que la norme MPEG-7 partie 17 ou à un format tel que le format JSON.
On pourra se référer à ce sujet à l’article "DeepCABAC : Context-adaptive binary arithmetic coding for deep neural network compression", de S. Wiedemannet al., in Proceedings of the 36th International Conference on Machine Learning, Long Beach, California, PMLR 97, 2019, ou à l’article "Compact and Computationally Efficient Representation of Deep Neural Networks", de S. Wiedemannet al., in IEEE Transactions on Neural Networks and Learning Systems (Vol. 31 , Iss. 3), mars 2020.
Après l’étape E14 comme après l’étape E16, le procédé de la figure 2 se poursuit par une étape E18 de détermination de la possibilité pour le dispositif électronique de décodage de mettre en œuvre le processus de décodage utilisant le réseau de neurones artificiels de décodage.
Le processeur 4 détermine par exemple cette possibilité en déterminant (éventuellement au moyen d’échanges préalables entre le dispositif électronique de codage et le dispositif électronique de décodage) si le dispositif électronique de décodage comprend un module adapté à mettre en œuvre ce processus de décodage ou un logiciel adapté à la mise en œuvre de ce processus de décodage par le dispositif électronique de décodage lorsque ce logiciel est exécuté par un processeur du dispositif électronique de décodage.
Si le processeur 4 détermine qu’il est possible pour le dispositif électronique de décodage de mettre en œuvre le processus de décodage, le procédé se poursuit à l’étape E22 décrite plus bas.
Si le processeur 4 détermine qu’il n’est pas possible pour le dispositif électronique de décodage de mettre en œuvre le processus de décodage, le procédé effectue l’étape E20 décrite ci-dessous (avant de passer à l’étape E22).
En variante, le choix d’effectuer ou non l’étape E20 (avant d’effectuer l’étape E22) pourrait être réalisé sur un autre critère, par exemple en fonction d’un indicateur dédié mémorisé au sein du dispositif électronique de codage 2 (et éventuellement réglable par l’utilisateur via une interface utilisateur du dispositif électronique de codage 2) ou en fonction d’un choix de l’utilisateur (obtenu par exemple via une interface utilisateur du dispositif électronique de codage 2).
Le processeur 4 code dans le flux de données à l’étape E20 une quatrième partie d’en-tête contenant un programme d’ordinateur Exe (ou code) exécutable par un processeur du dispositif électronique de décodage. (L’utilisation du programme d’ordinateur Exe au sein du dispositif électronique de décodage est décrite ci-dessous en référence à la figure 8.)
Afin d’être adapté à une exécution au sein du dispositif électronique de décodage, le programme d’ordinateur est par exemple choisi au sein d’une bibliothèque en fonction d’informations relatives à la configuration matérielle du dispositif électronique de décodage (informations reçues par exemple au cours d’échange préalable entre le dispositif électronique de codage 2 et le dispositif électronique de décodage).
Le processeur 4 procède ensuite à une étape E22 de codage d’un flux compressé Fnn sur la base des données compressées C obtenues à l’étape E8.
On remarque à ce sujet que, dans la description qui précède, l’étape E8 a été décrite avant les étapes de codage de l’en-tête Fet (étapes E10 à E20). L’étape E8 pourrait toutefois en pratique être réalisée juste avant l’étape E22.
En particulier, lorsque l’étape E8 permet le traitement d’une partie seulement du contenu audio ou vidéo à compresser (par exemple lorsque l’étape E8 effectue le traitement d’un bloc, ou d’une composante, ou d’une image d’une séquence vidéo à compresser), il est possible de répéter la mise en œuvre des étapes E8 (pour obtenir des données compressées relatives aux parties successives du contenu) et E22 (pour coder dans le flux de données les données compressés obtenues).
Le processeur 4 peut ainsi construire à l’étape E24 le flux de données complet comprenant l’en-tête Fet et le flux compressé Fnn.
Le flux de données complet est construit de sorte que l’en-tête Fet et le flux compressé Fnn soient identifiables individuellement.
Selon une possibilité de réalisation, l’en-tête Fet contient un indicateur de début du flux compressé Fnn dans le flux de données complet. Cet indicateur est par exemple la localisation, en bits, du début du flux compressé Fnn à partir du début du flux de donnée complet. (Autrement dit, l’en-tête a dans ce cas une longueur fixe prédéterminée.)
D’autres moyens d’identification de l’en-tête Fet et du flux compressé Fnn sont envisageables en variante, comme par exemple un marqueur (c’est-à-dire une combinaison de bits utilisée pour indiquer le début du flux compressé Fnn et dont l’usage est interdite dans le reste du flux de données, ou au moins dans l’en-tête Fet).
On a représenté sur les figures 3 à 6 des exemples de flux de données complet qu’il est possible d’obtenir par le procédé de la figure 2.
Comme expliqué ci-dessus, ces flux de données comprennent un en-tête Fet et un flux compressé Fnn.
Dans le cas de la figure 3 (qui correspond à la situation où l’étape E14 a été mise en œuvre et où l’étape E20 n’a pas été mise en œuvre), l’en-tête comprend :
- une première partie Fc comprenant les données caractéristiques du format de représentation du contenu audio ou vidéo ;
- une seconde partie comprenant l’indicateur IND indiquant que le réseau de neurones artificiels de décodage fait partie d’un ensemble prédéterminé de réseaux de neurones artificiels ; et
- une troisième partie comprenant l’identifiant Inn du réseau de neurones artificiels de décodage.
Dans le cas de la figure 4 (qui correspond à la situation où l’étape E16 a été mise en œuvre et où l’étape E20 n’a pas été mise en œuvre), l’en-tête comprend :
- une première partie Fc comprenant les données caractéristiques du format de représentation du contenu audio ou vidéo ;
- une seconde partie comprenant l’indicateur IND’ indiquant que le réseau de neurones artificiels de décodage est codé dans le flux de données ; et
- une troisième partie comprenant les données Rc descriptives (ici les données de codage) du réseau de neurones artificiels de décodage.
Dans le cas de la figure 5 (qui correspond à la situation où les étapes E14 et E20 ont été mises en œuvre), l’en-tête comprend :
- une première partie Fc comprenant les données caractéristiques du format de représentation du contenu audio ou vidéo ;
- une seconde partie comprenant l’indicateur IND indiquant que le réseau de neurones artificiels de décodage fait partie d’un ensemble prédéterminé de réseaux de neurones artificiels ;
- une troisième partie comprenant l’identifiant Inn du réseau de neurones artificiels de décodage ; et
- une quatrième partie comprenant le programme d’ordinateur Exe.
Dans le cas de la figure 6 (qui correspond à la situation où les étapes E16 et E20 ont été mises en œuvre), l’en-tête comprend :
- une première partie Fc comprenant les données caractéristiques du format de représentation du contenu audio ou vidéo ;
- une seconde partie comprenant l’indicateur IND’ indiquant que le réseau de neurones artificiels de décodage est codé dans le flux de données ; et
- une troisième partie comprenant les données Rc descriptives (ici les données de codage) du réseau de neurones artificiels de décodage ; et
- une quatrième partie comprenant le programme d’ordinateur Exe.
Le flux de données construit à l’étape E24 peut être encapsulé dans des formats de transmission connus en soi, comme le format "Packet -Transport System" ou le format "Byte-Stream".
Dans le cas du format "Packet -Transport S ystem" (comme proposé par exemple par le protocole RTP), les données sont codées par paquets identifiables et transmis sur un réseau de communication. Le réseau peut aisément identifier les frontières des données (images, groupes d’images et ici en-tête Fet et flux compressé Fnn), à l’aide des informations d’identification de paquets fournies par la couche réseau.
Dans le format "Byte-Stream", il n’y a pas spécifiquement de paquets et la construction de l’étape E24 doit permettre d’identifier les frontières des données pertinentes (telles que frontières entre parties du flux correspondant à chaque image, et ici entre en-tête Fet et flux compressé Fnn) à l’aide de moyens supplémentaires, tels que l’utilisation d’unités de couche d’abstraction de réseau (ou unités NAL pour "Network Abstraction Layer"), où des combinaisons uniques de bits (telles que 0x00000001) permettent d’identifier les frontières entre données).
Le flux de données complet construit à l’étape E24 peut alors être émis à l’étape E26 à destination du dispositif électronique de décodage 26 (par des moyens de communication non représenté et/ou à travers au moins un réseau de communication), ou mémorisé au sein du dispositif électronique de codage 2 (pour émission ultérieure ou, en variante, décodage ultérieur, par exemple au sein même du dispositif électronique de codage, qui est dans ce cas conçu pour mettre en œuvre en outre le procédé de décodage décrit ci-dessous en référence à la figure 8).
Lorsque le contenu audio ou vidéo comprend une pluralité de parties (par exemple une pluralité de groupes d’images lorsque le contenu est une séquence vidéo), le procédé des étapes E4 à E24 peut éventuellement être mis en œuvre pour chacune des parties du contenu (par exemple pour chaque groupe d’images) de façon à obtenir un flux de données tel que représenté sur l’une des figures 3 à 6 pour chaque partie de contenu (par exemple pour chaque groupe d’image). Ainsi, le flux compressé Fnn relatif à chaque groupe d’images pourra être décodé en utilisant un réseau de neurones artificiels propre au groupe d’images concerné et éventuellement différent des réseaux de neurones artificiels utilisés pour les autres groupes d’image, comme décrit dans la suite. Les réseaux de neurones artificiels pourront éventuellement avoir des structures identiques (et ne différer que par les poids et/ou les fonctions d’activation qui définissent un réseau de neurones artificiels particulier).
La figure 7 représente un dispositif électronique de décodage 10 utilisant au moins un réseau de neurones artificiels 18.
Ce dispositif électronique de décodage 10 comprend une unité de réception 11, un processeur 14 (par exemple un microprocesseur) et une unité de traitement parallélisé 16, par exemple une unité de traitement graphique (ou GPU pour "Graphical Processing Unit") ou une unité de traitement de tenseur (ou TPU pour "Tensor Processing Unit").
L’unité de réception 11 est par exemple un circuit de communication (tel qu’un circuit de communication radiofréquence) et permet de recevoir des données (et notamment ici le flux de données codées) d’un disposition électronique extérieur, tel que le dispositif électronique de codage 2, et de communiquer ces données au processeur 14 (auquel l’unité de réception 11 est par exemple relié par un bus).
Le dispositif électronique de codage 10 comprend également une unité de mémorisation 12, par exemple une mémoire (éventuellement une mémoire non-volatile réinscriptible) ou un disque dur. Bien que l’unité de mémorisation 12 soit représentée en figure 7 comme un élément distinct du processeur 14, l’unité de mémorisation 12 pourrait en variante être intégrée au (c’est-à-dire comprise dans le) processeur 14.
Le processeur 14 est dans ce cas conçu pour exécuter successivement une pluralité d’instructions d’un programme d’ordinateur mémorisé par exemple dans l’unité de mémorisation 12.
L’unité de traitement parallélisé 16 est conçue pour mettre en œuvre le réseau de neurones artificiels 18 après avoir été configurée par le processeur 14. Pour ce faire, l’unité de traitement parallélisé 16 est conçue pour effectuer en parallèle à un instant donné une pluralité d’opérations du même type.
Comme schématiquement représenté en figure 7, le processeur 14 reçoit un flux de données (par exemple via des moyens de communication non représentés du dispositif électronique de décodage 10) comprenant un premier ensemble de données, ici l’en-tête Fet, et un second ensemble de données représentatives du contenu audio ou vidéo, ici le flux compressé Fnn.
Comme expliqué dans la suite, le réseau de neurones artificiels 18 est utilisé dans le cadre d’un traitement du second ensemble de données (c’est-à-dire ici des données compressées Fnn) pour obtenir un contenu audio ou vidéo correspondant au contenu audio ou vidéo initial B.
L’unité de mémorisation 12 peut mémoriser une pluralité de jeux de paramètres, chaque jeu de paramètres définissant un réseau de neurones artificiels de décodage. Comme expliqué dans la suite, le processeur 14 peut dans ce cas configurer l’unité de traitement parallélisé 16 au moyen d’un jeu de paramètres particulier parmi ces jeux de paramètres de sorte que l’unité de traitement parallélisé 16 puisse alors mettre en œuvre le réseau de neurones artificiels défini par ce jeu de paramètres particulier.
L’unité de mémorisation 12 peut notamment mémoriser un premier jeu de paramètres définissant un premier réseau de neurones artificiels formant décodeur à accès aléatoire et/ou un second jeu de paramètres définissant un second réseau de neurones artificiels formant un décodeur à faible latence.
Le dispositif électronique de décodage 10 détient dans ce cas à l’avance des possibilités de décodage tant pour des situations où l’on souhaite obtenir un accès aléatoire au contenu que pour des situations où l’on souhaite afficher sans retard le contenu.
On décrit à présent en référence à la figure 8 un procédé de décodage mis en œuvre au sein du dispositif électronique de décodage 10 et utilisant le réseau de neurones artificiels 18 mis en œuvre par l’unité de traitement parallélisé 16.
Ce procédé peut débuter par une étape optionnelle d’émission, par le dispositif électronique de décodage 10 et à destination d’un dispositif de commande de l’émission du flux de données à décoder, d’une liste L de réseaux de neurones artificiels accessibles par le dispositif électronique de décodage 10. Le dispositif de commande de l’émission du flux de données peut être par exemple le dispositif électronique de codage 2. (Le dispositif électronique de codage 2 reçoit dans ce cas cette liste L à l’étape E2 décrite plus haut en référence à la figure 2.) En variante, le dispositif de commande de l’émission du flux de données pourrait être un serveur dédié, fonctionnant en coopération avec le dispositif électronique de codage 2.
Les réseaux de neurones artificiels accessibles par le dispositif électronique de décodage 10 sont les réseaux de neurones artificiels pour lesquels le dispositif électronique de décodage 10 mémorise un jeu de paramètres définissant le réseau de neurones artificiels concerné (comme indiqué ci-dessus) ou peut avoir accès à ce jeu de paramètres par connexion à un équipement électronique distant tel qu’un serveur (comme expliqué ci-dessous).
Le procédé de la figure 8 comprend une étape E52 de réception (par le dispositif électronique de décodage 10, et précisément ici par l’unité de réception 11) du flux de données comprenant le premier ensemble de données, à savoir l’en-tête Fet ; et le second ensemble de données, à savoir le flux compressé Fnn. L’unité de réception 11 transmet le flux de données reçu au processeur 14.
Le processeur 14 procède alors à une étape E54 d’identification du premier ensemble de données (en-tête Fet) et du second ensemble de données (flux compressé Fnn) au sein du flux de données reçu, par exemple au moyen de l’indicateur de début de flux compressé (déjà mentionné lors de la description de l’étape E24).
Le processeur 14 peut également identifier à l’étape E54 les différentes parties du premier ensemble de données (en-tête), à savoir ici au sein de l’en-tête Fet : la première partie Fc (comprenant des données représentatives de caractéristiques du format du contenu codé par le flux de données), la seconde partie (indicateur IND ou IND’), la troisième partie (identifiant Inn ou données de codage Rc) et éventuellement la quatrième partie (programme d’ordinateur Exe), comme illustré sur les figures 3 à 6 décrites plus haut.
Dans les cas où des instructions exécutables (telles que les instructions du programme d’ordinateur Exe) sont identifiées (i.e.détectées) au sein des premières données à l’étape E54, le processeur 14 peut lancer à l’étape E56 l’exécution de ces instructions exécutables afin de mettre en œuvre certaines au moins des étapes (décrites ci-dessous) de traitement des données du premier ensemble de données. Ces instructions peuvent être exécutées par le processeur 14 ou, en variante, par une machine virtuelle instanciée au sein du dispositif électronique de décodage 10.
Le procédé de la figure 7 se poursuit par une étape E58 de décodage des données Fc caractéristiques du format de représentation du contenu audio ou vidéo de manière à obtenir des caractéristiques de ce format. Dans le cas d’un contenu vidéo par exemple, le décodage des données Fc permet d’obtenir les dimensions (en pixels) des images et/ou la fréquence d’image et/ou la profondeur en bits des informations de luminance et/ou la profondeur en bits des informations de luminance.
Le processeur 14 procède alors (dans certains modes de réalisation, du fait de l’exécution d’instructions identifiées au sein du premier ensemble de données à l’étape E54, comme déjà indiqué) à une étape E60 de décodage de l’indicateur IND, IND’ contenu ici dans la seconde partie de l’en-tête Fet.
Si le décodage de l’indicateur IND, IND’ présent dans le flux de données reçues indique que le réseau de neurones artificiels 18 à utiliser pour le décodage fait partie d’un ensemble prédéterminé de réseaux de neurones artificiels (c’est-à-dire si l’indicateur présent dans le premier ensemble de données est l’indicateur IND indiquant que le réseau de neurones artificiels de décodage 18 fait partie d’un ensemble prédéterminé de réseaux de neurones artificiels), le procédé se poursuit à l’étape E62 décrite plus bas.
Si le décodage de l’indicateur IND, IND’ présent dans le flux de données reçues indique que le réseau de neurones artificiels 18 à utiliser pour le décodage est codé dans le flux de données (c’est-à-dire si l’indicateur présent dans le premier ensemble de données est l’indicateur IND’ indiquant que le réseau de neurones artificiels de décodage 18 est codé dans le flux de données), le procédé se poursuit à l’étape E66 décrite plus bas.
À l’étape E62, le processeur 14 procède (dans certains modes de réalisation, du fait de l’exécution d’instructions identifiées au sein du premier ensemble de données à l’étape E54, comme déjà indiqué) au décodage de l’identifiant Inn (contenu ici dans la troisième partie de l’en-tête Fet). Comme déjà indiqué, cet identifiant Inn est un identifiant désignant le réseau de neurones artificiels de décodage 18, par exemple au sein de l’ensemble prédéterminé de réseaux de neurones artificiels susmentionné.
Le processeur 14 peut alors procéder (dans certains modes de réalisation, du fait de l’exécution d’instructions identifiées au sein du premier ensemble de données à l’étape E54, comme déjà indiqué) à l’étape E64 à la lecture, par exemple dans l’unité de mémorisation 12, d’un jeu de paramètres associé à l’identifiant décodé Inn (ce jeu de paramètres définissant le réseau de neurones artificiels identifié par l’identifiant décodé Inn).
Selon une possibilité de réalisation, on peut prévoir que le processeur 14 génère un message d’erreur en cas d’absence (ici au sein de l’unité de mémorisation 12) de données (notamment de paramètres) relatives à ce réseau de neurones artificiels identifié par l’identifiant décodé Inn.
En variante (ou dans le cas où aucun jeu de paramètres n’est mémorisé dans l’unité de mémorisation 12 pour le réseau de neurones artificiels identifié par l’identifiant décodé Inn), le dispositif électronique de décodage 10 peut émettre (dans certains modes de réalisation, du fait de l’exécution d’instructions identifiées au sein du premier ensemble de données à l’étape E54, comme déjà indiqué) une requête d’un jeu de paramètres à destination d’un serveur distant (cette requête incluant par exemple l’identifiant décodé Inn) et recevoir en réponse à l’étape E64 le jeu de paramètres définissant le réseau de neurones artificiels identifié par l’identifiant décodé Inn.
Le procédé se poursuit ensuite à l’étape E68 décrite plus bas.
À l’étape E66, le processeur 14 procède (dans certains modes de réalisation, du fait de l’exécution d’instructions identifiées au sein du premier ensemble de données à l’étape E54, comme déjà indiqué) au décodage des données descriptives Rc du réseau de neurones artificiels 18 (contenues ici dans la troisième partie de l’en-tête Fet).
Comme déjà indiqué, ces données descriptives (ou données de codage) Rc sont par exemple codées conformément à une norme telle que la norme MPEG-7 partie 17 ou à un format tel que le format JSON.
Le décodage des données descriptives Rc permet d’obtenir les paramètres définissant le réseau de neurones artificiels à utiliser pour le décodage des données du second ensemble de données (c’est-à-dire ici des données du flux compressé Fnn).
Le procédé se poursuit dans ce cas aussi à l’étape E68 décrite à présent.
Le processeur 14 procède alors (dans certains modes de réalisation, du fait de l’exécution d’instructions identifiées au sein du premier ensemble de données à l’étape E54, comme déjà indiqué) à l’étape E68 à la configuration de l’unité de traitement parallélisé 16 au moyen des paramètres définissant le réseau de neurones artificiels de décodage 18 (paramètres obtenus à l’étape E64 ou à l’étape E66) afin que l’unité de traitement parallélisé 16 puisse mettre en œuvre le réseau de neurones artificiels de décodage 18.
Cette étape de configuration E68 comprend notamment l’instanciation du réseau de neurones artificiels de décodage 18 au sein de l’unité de traitement parallélisé 16, ici en utilisant les paramètres obtenus à l’étape E64 ou à l’étape E66.
Cette instanciation peut notamment comprendre les étapes suivantes :
- réservation, au sein de l’unité de traitement parallélisé 16, de l’espace mémoire nécessaire à la mise en œuvre du réseau de neurones artificiels de décodage 18 ; et/ou
- programmation de l’unité de traitement parallélisé 16 avec les paramètres (incluant par exemple des poids W’ et des fonctions d’activation) définissant le réseau de neurones artificiels de décodage 18 (paramètres obtenus à l’étape E64 ou à l’étape E66) ; et/ou
- chargement d’une partie au moins des données du second ensemble de données (c’est-à-dire d’une partie au moins des données du flux compressé Fnn) sur une mémoire locale de l’unité de traitement parallélisé 16.
Comme cela ressort de la description des étapes E58 à E68 qui précède, les données du premier ensemble de données Fet sont ainsi traitées par le processeur 14.
Le processeur 14 peut alors appliquer (i.e.présenter) à l’étape E70 les données du second ensemble de données (ici des données du flux compressé Fnn) au réseau de neurones artificiels 18 mis en œuvre par l’unité de traitement parallélisé 16 afin que ces données soient traitées par un processus de décodage utilisant en partie au moins le réseau de neurones artificiels 18.
Dans l’exemple décrit ici, le réseau de neurones artificiels 18 reçoit en entrée les données du second ensemble de données Fnn et produit en sortie une représentation I du contenu codé adaptée à une reproduction sur un dispositif de reproduction audio ou vidéo. Autrement dit, certaines au moins des données du second ensemble de données Fnn sont appliquées sur la couche d’entrée du réseau de neurones artificiels 18 et la couche de sortie du réseau de neurones artificiels 18 produit la représentation I du contenu codé susmentionnée. Dans le cas d’un contenu vidéo (comprenant une image ou une séquence d’images), le réseau de neurones artificiels 18 produit ainsi en sortie (c’est-à-dire au niveau de sa couche de sortie) au moins une représentation matricielle I d’une image.
Dans certains modes de réalisation, pour le traitement de certaines données du flux compressé Fc (correspondant par exemple à un bloc ou une image), le réseau de neurones artificiels 18 peut recevoir en entrée certaines au moins des données produites en sortie du réseau de neurones artificiels 18 lors du traitement de données antérieures (correspondant par exemple au bloc précédent ou à l’image précédente) dans le flux compressé Fc. On procède dans ce cas à une étape E72 de réinjection de données produites en sortie du réseau de neurones artificiels 18 vers l’entrée du réseau de neurones artificiels 18.
Par ailleurs, selon d’autres possibilité de réalisation, le processus de décodage pourrait utiliser une pluralité de réseaux de neurones artificiels, comme déjà mentionné plus haut à propos du traitement des données de contenu B.
Les données du second ensemble (ici certaines données au moins du flux compressé Fnn) ont ainsi été traitées par un processus dépendant d’une partie des données du premier ensemble (processus dépendant ici de l’identifiant Inn ou des données de codage Rc) et utilisant le réseau de neurones artificiels 18 mis en œuvre par l’unité de traitement parallélisé 16.
Le processeur 14 détermine alors à l’étape E74 si le traitement du flux compressé Fnn au moyen du réseau de neurones artificiels 18 est terminé.
En cas de détermination négative (N), le procédé boucle à l’étape E70 pour application d’autres données du flux compressé Fnn au réseau de neurones artificiels 18.
En cas de détermination positive (P), le procédé se poursuit à l’étape E76 où le processeur 14 détermine s’il reste des données à traiter dans le flux de données reçu.
En cas de détermination négative (N) à l’étape E76, il est mis fin au procédé à l’étape E78.
En cas de détermination positive (P) à l’étape E76, le procédé boucle à l’étape E52 pour traitement d’une nouvelle partie du flux de données telle que représentée sur l’une des figures 3 à 6.
Comme indiqué plus haut en ce qui concerne la réitération des étapes de codage E4 à E24, cette autre partie du flux de données comprend alors elle aussi un premier ensemble de données et un second ensemble de données représentatives d’un autre contenu audio ou vidéo (par exemple, dans le cas d’un contenu vidéo, un autre groupe d’images pour le format de représentation du contenu utilisé). Un autre réseau de neurones artificiels peut dans ce cas être déterminé sur la base de certaines de ces premières données (identifiant Inn ou données de codage Rc), comme décrit ci-dessus aux étapes E54 à E66, puis l’unité de traitement parallélisé 16 peut être configurée pour mettre en œuvre cet autre réseau de neurones artificiels (conformément à l’étape E68 décrite ci-dessus). Les données du second ensemble de données de cette autre partie du flux de données (relative par exemple à l’autre groupe d’images susmentionné) peuvent ainsi être décodées au moyen de cet autre réseau de neurones artificiels (comme décrit ci-dessus à l’étape E70).
L’autre réseau de neurones artificiels qui vient d’être mentionné peut avoir une structure identique au réseau de neurones artificiels 18 mentionné plus haut, ce qui simplifie l’étape de configuration de l’unité de traitement parallélisé 16 (seuls les poids et/ou les fonctions d’activation définissant le réseau de neurones artificiels courant étant par exemple mis à jour).

Claims (16)

  1. Procédé de décodage d’un flux de données au moyen d’un dispositif électronique (10) comprenant un processeur (14), et une unité de traitement parallélisé (16) conçue pour effectuer en parallèle à un instant donné une pluralité d’opérations du même type, caractérisé en ce que le flux de données comprend un premier ensemble de données (Fet) et un second ensemble de données (Fnn) représentatives d’un contenu audio ou vidéo, et en ce que le procédé comprend les étapes suivantes :
    - traitement (E56 ; E58 ; E60 ; E62 ; E66) des données du premier ensemble de données (Fet) par le processeur (14) ;
    - obtention du contenu audio ou vidéo par traitement (E70) des données du second ensemble de données (Fnn) selon un processus dépendant d’une partie au moins des données du premier ensemble (Fet) et utilisant un réseau de neurones artificiels (18) mis en œuvre par l’unité de traitement parallélisé (16).
  2. Procédé de décodage selon la revendication 1, comprenant une étape de configuration (E68) de l’unité de traitement parallélisé (16) en fonction d’une partie au moins des données du premier ensemble de données (Fet).
  3. Procédé de décodage selon la revendication 2, dans lequel le premier ensemble de données (Fet) comprend des donnés descriptives (Rc) du réseau de neurones artificiels (18) et dans lequel, à l’étape de configuration (E68), le processeur (14) configure l’unité de traitement parallélisé (16) sur la base desdites données descriptives (Rc).
  4. Procédé de décodage selon la revendication 2, dans lequel le dispositif électronique (10) comprend une unité de stockage (12) d’une pluralité de jeux de paramètres définissant respectivement une pluralité de réseaux de neurones artificiels, dans lequel le premier ensemble de données (Fet) comprend un identifiant (Inn) et dans lequel, à l’étape de configuration (E68), le processeur (14) configure l’unité de traitement parallélisé (16) sur la base d’un jeu de paramètres associé à cet identifiant (Inn) parmi la pluralité de jeux de paramètres.
  5. Procédé de décodage selon l’une des revendications 1 à 4, dans lequel le flux de données comprend en outre des instructions (Exe) exécutables au sein du dispositif électronique (10) et dans lequel le traitement des données du premier ensemble de données (Fet) est au moins en partie effectué du fait de l’exécution d’une partie au moins desdites instructions (Exe).
  6. Procédé de décodage selon la revendication 5 prise dans la dépendance directe ou indirecte de la revendication 2, dans lequel l’étape de configuration (E68) de l’unité de traitement parallélisé (16) est effectuée du fait de l’exécution d’une partie au moins desdites instructions (Exe).
  7. Procédé de décodage selon l’une des revendications 1 à 6, comprenant une étape (E54) d’identification du premier ensemble de données (Fet) et du second ensemble de données (Fnn) au sein du flux de données.
  8. Procédé de décodage selon l’une des revendications 1 à 7, dans lequel le premier ensemble de données (Fet) comprend des données (Fc) représentatives de caractéristiques du format du contenu codé par le flux de données.
  9. Procédé de décodage selon l’une des revendications 1 à 8, dans lequel le traitement des données du second ensemble (Fnn) produit au moins une représentation matricielle (I) d’une partie au moins d’une image.
  10. Procédé de décodage selon l’une des revendications 1 à 9, dans lequel le réseau de neurones artificiels (18) reçoit en entrée des données du second ensemble de données (Fnn).
  11. Procédé de décodage selon l’une des revendications 1 à 10, dans lequel le réseau de neurones artificiels (18) reçoit en entrée des données produites au préalable en sortie du réseau de neurones artificiels (18).
  12. Dispositif électronique (10) de décodage d’un flux de données comprenant un premier ensemble de données (Fet) et un second ensemble de données (Fnn) représentatives d’un contenu audio ou vidéo, le dispositif électronique (10) comprenant :
    - un processeur (14) adapté à traiter les données du premier ensemble de données (Fet) ;
    - une unité de traitement parallélisé (16) conçue pour effectuer en parallèle à un instant donné une pluralité d’opérations du même type et adaptée à obtenir le contenu audio ou vidéo par traitement des données du second ensemble de données (Fnn) selon un processus dépendant d’une partie au moins des données du premier ensemble (Fet) et utilisant un réseau de neurones artificiels (18) mis en œuvre par l’unité de traitement parallélisé (16).
  13. Dispositif électronique selon la revendication 12, dans lequel le processeur (14) est adapté à configurer l’unité de traitement parallélisé (16) en fonction d’une partie au moins des données du premier ensemble de données (Fet).
  14. Dispositif électronique selon la revendication 13, comprenant une unité de stockage (12) d’une pluralité de jeux de paramètres définissant respectivement une pluralité de réseaux de neurones artificiels, dans lequel le premier ensemble de données (Fet) comprend un identifiant (Inn) et dans lequel le processeur (14) est adapté à configurer l’unité de traitement parallélisé (16) sur la base d’un jeu de paramètres associé à cet identifiant (Inn) parmi la pluralité de jeux de paramètres.
  15. Dispositif électronique selon l’une des revendications 12 à 14, dans lequel l’unité de traitement parallélisé (16) est adaptée pour produire au moins une représentation matricielle (I) d’une partie au moins d’une image.
  16. Flux de données comprenant un premier ensemble de données (Fet) et un second ensemble de données (Fnn) représentatives d’un contenu audio ou vidéo, dans lequel le premier ensemble de données (Fet) comprend des données (Inn ; Rc) définissant au moins en partie un processus de traitement des données du second ensemble de données (Fnn) utilisant un réseau de neurones artificiels.
FR2007530A 2020-07-17 2020-07-17 Procédé et dispositif électronique de décodage d’un flux de données, et flux de données associé Pending FR3112662A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FR2007530A FR3112662A1 (fr) 2020-07-17 2020-07-17 Procédé et dispositif électronique de décodage d’un flux de données, et flux de données associé
KR1020237005501A KR20230039714A (ko) 2020-07-17 2021-07-13 뉴럴 네트워크를 사용한 병렬화된 비디오 디코딩
US18/016,568 US20230283790A1 (en) 2020-07-17 2021-07-13 Parallelized video decoding using a neural network
JP2023503012A JP2023534495A (ja) 2020-07-17 2021-07-13 ニューラルネットワークを使用した並列ビデオ復号化
CN202180050576.7A CN115956365A (zh) 2020-07-17 2021-07-13 使用神经网络的并行化视频解码
EP21745307.5A EP4183133A1 (fr) 2020-07-17 2021-07-13 Decodage video parallelise utilisant un reseau de neurones
PCT/EP2021/069515 WO2022013247A1 (fr) 2020-07-17 2021-07-13 Decodage video parallelise utilisant un reseau de neurones

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2007530 2020-07-17
FR2007530A FR3112662A1 (fr) 2020-07-17 2020-07-17 Procédé et dispositif électronique de décodage d’un flux de données, et flux de données associé

Publications (1)

Publication Number Publication Date
FR3112662A1 true FR3112662A1 (fr) 2022-01-21

Family

ID=72885742

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2007530A Pending FR3112662A1 (fr) 2020-07-17 2020-07-17 Procédé et dispositif électronique de décodage d’un flux de données, et flux de données associé

Country Status (7)

Country Link
US (1) US20230283790A1 (fr)
EP (1) EP4183133A1 (fr)
JP (1) JP2023534495A (fr)
KR (1) KR20230039714A (fr)
CN (1) CN115956365A (fr)
FR (1) FR3112662A1 (fr)
WO (1) WO2022013247A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734589A (en) * 1995-01-31 1998-03-31 Bell Atlantic Network Services, Inc. Digital entertainment terminal with channel mapping
WO2017036370A1 (fr) * 2015-09-03 2017-03-09 Mediatek Inc. Procédé et appareil de traitement basé sur un réseau neuronal dans un codage vidéo
US20190075301A1 (en) * 2017-09-01 2019-03-07 Apple Inc. Machine learning video processing systems and methods

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734589A (en) * 1995-01-31 1998-03-31 Bell Atlantic Network Services, Inc. Digital entertainment terminal with channel mapping
WO2017036370A1 (fr) * 2015-09-03 2017-03-09 Mediatek Inc. Procédé et appareil de traitement basé sur un réseau neuronal dans un codage vidéo
US20190075301A1 (en) * 2017-09-01 2019-03-07 Apple Inc. Machine learning video processing systems and methods

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
CARRATO S ET AL: "PARALLEL STRUCTURE BASED ON NEURAL NETWORKS FOR IMAGE COMPRESSION", ELECTRONICS LETTERS, IEE STEVENAGE, GB, vol. 28, no. 12, 4 June 1992 (1992-06-04), XP000304646, ISSN: 0013-5194 *
DE JOE OSBORNE: "Google's Tensor Processing Unit explained: this is what the future of computing looks like", TECHRADAR, 22 August 2016 (2016-08-22)
G. J. SULLIVANJ.-R. OHMW.-J. HANT. WIEGAND: "Overview of the High Efficiency Video Coding (HEVC) Standard", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, vol. 22, no. 12, December 2012 (2012-12-01), pages 1649 - 1668
GUO LU ET AL.: "DVC : An End-to-end Deep Video Compression Framework", 2019 IEEE/CVF CONFÉRENCE ON COMPUTER VISION AND PATTERN RÉCOGNITION (CVPR, 2019, pages 10998 - 11007, XP033686979, DOI: 10.1109/CVPR.2019.01126
GUO LU ET AL.: "DVC : An End-to-end Deep Video Compression Framework", IEEE/CVF CONFÉRENCE ON COMPUTER VISION AND PATTERN RÉCOGNITION (CVPR, June 2019 (2019-06-01)
S. WIEDEMANN ET AL.: "Compact and Computationally Efficient Representation of Deep Neural Networks", IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS, vol. 31, March 2020 (2020-03-01)
S. WIEDEMANN ET AL.: "Proceedings of the 36th International Conférence on Machine Learning", vol. 97, 2019, PMLR, article "DeepCABAC: Context-adaptive binary arithmetic coding for deep neural network compression"

Also Published As

Publication number Publication date
KR20230039714A (ko) 2023-03-21
EP4183133A1 (fr) 2023-05-24
WO2022013247A1 (fr) 2022-01-20
JP2023534495A (ja) 2023-08-09
CN115956365A (zh) 2023-04-11
US20230283790A1 (en) 2023-09-07

Similar Documents

Publication Publication Date Title
EP4183130A2 (fr) Decodage video utilisant un reseau de neurones
EP2700226B1 (fr) Procedes et appareils de production et de traitement de representations de scenes multimedias
EP3707900A1 (fr) Procede de formation d'une sequence d'images de sortie a partir d'une sequence d'images d'entree, procede de reconstruction d'une sequence d'images d'entree a partir d'une sequence d'images de sortie, dispositifs, equipement serveur, equipement client et programmes d'ordinateurs associes
CN112261349B (zh) 图像处理方法、装置和电子设备
EP2368367B1 (fr) Système et procédé interactif pour la transmission sur un réseau bas débit d'images clefs sélectionnées dans un flux video
WO2022013247A1 (fr) Decodage video parallelise utilisant un reseau de neurones
JP2005136566A (ja) 動画像変換装置および方法、動画像配信装置、メール中継装置並びにプログラム
FR3050090A1 (fr) Extraction de flux video
CN116193197A (zh) 一种数据处理方法、装置、设备以及可读存储介质
WO2022073885A1 (fr) Procédé et dispositif électronique de décodage d'un flux de données, et programme d'ordinateur associé
WO2022069437A1 (fr) Procédé et dispositif électronique de décodage d'un flux de données, programme d'ordinateur et flux de données associés
WO2018073523A1 (fr) Procédé de codage et de décodage de paramètres d'image, dispositif de codage et de décodage de paramètres d'image et programmes d'ordinateur correspondants
CN115412731A (zh) 视频处理方法、装置、设备及存储介质
WO2022263297A1 (fr) Procédés et dispositifs de décodage d'une partie au moins d'un flux de données, programme d'ordinateur et flux de données associés
EP2594069B1 (fr) Procédé de diffusion de séquences de données vidéo par un serveur vers un terminal client
JP2024520961A (ja) データストリームの少なくとも一部を復号化するための方法と装置、コンピュータプログラム、及び関連するデータストリーム
EP2914005B1 (fr) Générateur de flux vidéo
WO2016132074A1 (fr) Codage d'images par quantification vectorielle
FR3137518A1 (fr) Procédé et dispositif de décodage, programme d’ordinateur et flux de données associés
WO2022069809A1 (fr) Codage et decodage d'une video multi-vues
FR2927494A1 (fr) Procede de decodage et codage d'une sequence d'images avec compensation de mouvement

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20220121

TP Transmission of property

Owner name: FONDATION B-COM, FR

Effective date: 20220215

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4