Brevet FR3114717A1 — publié le 20220401

Un flux de données comprend une pluralité d’identifiants et une séquence d’éléments binaires (Fnn). Un procédé de décodage de ce flux de données en une suite de données (V) de types respectifs prédéterminés comprend les étapes suivantes pour obtenir chaque donnée (V) de ladite suite : - détermination d’un contexte (C) sur la base d’un identifiant associé, parmi la pluralité d’identifiants, au type de la donnée concernée ; - décodage d’une partie de la séquence d’éléments binaires (Fnn) au moyen d’un décodeur entropique (23) recevant en entrée la séquence d’éléments binaires (Fnn) et paramétré dans le contexte déterminé (C). Un dispositif électronique de décodage (20) et un programme d’ordinateur associés sont également proposés. Figure pour l’abrégé : figure 5 Procédé et dispositif électronique de décodage d’un flux de données, programme d’ordinateur et flux de données associés Domaine technique de l'invention La présente invention concerne le domaine technique du décodage de données. Elle concerne en particulier un procédé et un dispositif électronique de décodage d’un flux de données, ainsi qu’un programme d’ordinateur et un flux de données associés. Etat de la technique Le codage entropique est utilisé, notamment dans le domaine du codage de contenus audio ou vidéo, pour compresser de manière optimale des données en tenant compte des statistiques d’apparition des différents symboles dans ces données. On connaît par exemple dans ce cadre le codage CABAC (pour " Context-based adaptive binary arithmetic coding ") tel que décrit dans l’article "Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard ", de D. Marpe, H. Schwarz, et T. Wiegand, in IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 7, pp. 620–636, juillet 2003. Lorsqu’il est utilisé pour le codage entropique ou le décodage entropique de données dans le cadre d’une norme (par exemple une norme définissant une manière de compresser un contenu audio ou vidéo), le décodeur entropique est à chaque instant paramétré dans un contexte qui dépend, de manière prédéfinie dans la norme concernée, des éléments de syntaxe préalablement codés ou décodés. Présentation de l'invention La présente invention propose un procédé de décodage d’un flux de données comprenant une pluralité d’identifiants et une séquence d’éléments binaires, en une suite de données de types respectifs prédéterminés, le procédé comprenant les étapes suivantes pour obtenir chaque donnée de ladite suite : - détermination d’un contexte sur la base d’un identifiant associé, parmi la pluralité d’identifiants, au type de la donnée concernée ; - décodage d’une partie de la séquence d’éléments binaires au moyen d’un décodeur entropique recevant en entrée la séquence d’éléments binaires et paramétré dans le contexte déterminé. La présence, dans le flux de données, d’identifiants indicatifs du contexte à utiliser pour décoder les différents types de données donne une plus grande souplesse dans l’utilisation du codage entropique, ce qui est intéressant en particulier lorsque le format des données n’est pas totalement prédéfini. Les données obtenues sont par exemple des valeurs représentatives d’un contenu audio ou vidéo. Ces valeurs représentatives peuvent être produites, au cours d’un procédé de codage, par un réseau de neurones artificiels de codage, comme décrit dans la suite (ou, plus généralement, par un procédé à apprentissage automatique tel qu’un procédé à apprentissage profond ou un procédé à apprentissage par forêt d’arbres décisionnels). Le flux de données peut comprendre également une information indicative d’un ensemble de contextes utilisables au sein du décodeur entropique. Une telle information est par exemple indicative d’un nombre de contextes utilisables au sein du décodeur entropique. Le flux de données peut comprendre par ailleurs, pour chaque contexte utilisable au sein du décodeur entropique, une donnée de paramétrisation du contexte concerné. Le procédé de décodage peut alors comprendre une étape d’initialisation de chaque contexte utilisable au sein du décodeur entropique au moyen de la donnée de paramétrisation du contexte concerné. L’information indicative susmentionnée et les données de paramétrisation permettent ainsi de configurer le décodeur entropique avant mise en œuvre effective du décodage entropique. Le procédé de décodage peut comprendre par ailleurs une étape d’application des données obtenues en entrée d’un réseau de neurones artificiels. Un tel réseau de neurones artificiels est par exemple mis en œuvre par une unité de traitement (éventuellement une unité de traitement parallélisé). Le procédé peut alors comprendre une étape de configuration de l’unité de traitement en fonction de données comprises dans le flux de données. L’invention est particulièrement intéressante dans ce contexte où la nature technique de chacune des différentes données manipulées (ou valeurs représentatives) dépend du réseau de neurones artificiels utilisé (défini quant à lui par des données qui viennent d’être mentionnées) et n’est donc pas prédéterminée, de sorte que le contexte utilisé pour le codage entropique d’une donnée particulière ne peut pas être défini à l’avance (comme déjà indiqué, une telle définition préalable pouvant par exemple être donnée dans une norme). Comme déjà indiqué, l’invention n’est toutefois pas limitée à ce contexte et présente un intérêt dès lors que l’association respective des données à coder et des contextes de codage entropique ne peut pas être définie à l’avance. Ainsi, l’invention peut être utilisée avantageusement pour le codage entropique de textes écrits dans plusieurs langues utilisant des alphabets différents. Le nombre de signes de l’alphabet et la probabilité d’apparition de ceux-ci étant différents dans chaque langue, l’invention permet dans une telle situation de spécifier le contexte à utiliser pour le codage entropique des signes ou des mots spécifiques à une langue. De manière générale, le procédé de décodage peut d’ailleurs comprendre un procédé à apprentissage automatique, tel qu’un procédé à apprentissage profond (ou " deep learning " selon l’appellation anglo-saxonne souvent utilisée) ou un procédé à apprentissage par forêt d’arbres décisionnels (ou " random forest ") selon l’application anglo-saxonne souvent utilisée). Le flux de données peut alors comprendre des données de configuration de ce procédé à apprentissage automatique et/ou on peut prévoir une étape de configuration d’une unité de traitement au moyen de ces données de configuration de façon à mettre en œuvre ce procédé à apprentissage automatique. D’une manière générale, l’invention est utilisable pour coder des données issues d’un réseau de neurones ou décoder des données à fournir à un réseau de neurones. Un réseau de neurone s’entend comme un processus de traitement comportant de très nombreuses étapes similaires, seuls les paramètres de ces étapes étant différents entre eux, et fixés par un processus d’apprentissage, les étapes étant adaptées à être mises en œuvre de façon massivement parallèle. Ainsi, un réseau de neurones peut désigner une série de couches effectuant un filtrage linéaire des données issues de la couche d’entrée ou de la couche précédente, chaque filtrage étant suivi de l’application d’une fonction non linéaire (réseau de neurones au sens classique). Alternativement, un réseau de neurone peut désigner une série de tests, le résultat de chaque test déterminant les tests suivant à appliquer (forêt d’arbres décisionnels), ou encore d’autres processus de traitement ayant la caractéristique précitée. Selon le mode de réalisation décrit ci-après, la suite de données précitée forme un ensemble de cartes de caractéristiques. Dans ce cas, selon une première possibilité, les identifiants de la pluralité d’identifiants sont respectivement associés aux cartes de caractéristiques de l’ensemble de cartes de caractéristiques. On peut prévoir dans ce cas que le contexte déterminé pour l’obtention d’un élément d’une carte de caractéristiques donnée soit déterminé sur la base de l’identifiant associé à la carte de caractéristiques donnée. Selon une seconde possibilité, lorsque les cartes de caractéristiques de l’ensemble de cartes de caractéristiques ont une structure commune au sein de laquelle chaque élément d’une carte de caractéristiques est défini par une position, les identifiants de la pluralité d’identifiants peuvent être respectivement associés aux différentes positions dans la structure commune. On peut alors prévoir que le contexte déterminé pour l’obtention d’un élément donné d’une carte de caractéristiques soit déterminé sur la base de l’identifiant associé à la position définissant cet élément donné. L’invention propose également un dispositif électronique de décodage d’un flux de données comprenant une pluralité d’identifiants et une séquence d’éléments binaires, en une suite de données de types respectifs prédéterminés, le dispositif électronique comprenant un décodeur entropique recevant en entrée la séquence d’éléments binaires, et un module de configuration conçu pour déterminer un contexte sur la base d’un identifiant associé, parmi la pluralité d’identifiants, au type de la donnée à obtenir, et pour paramétrer le décodeur entropique dans le contexte déterminé de manière à obtenir ladite donnée en sortie du décodeur entropique. L’invention propose en outre un programme d’ordinateur comprenant des instructions exécutables par un processeur et conçues pour mettre en œuvre un procédé de décodage comme proposé ci-dessus lorsque ces instructions sont exécutées par le processeur. L’invention propose enfin un flux de données représentant une suite de données de types respectifs prédéterminés, et comprenant une pluralité d’identifiants et une séquence d’éléments binaires, chaque identifiant étant représentatif d’un contexte dans lequel un décodeur entropique est paramétré pour obtenir, lorsque ce décodeur entropique reçoit en entrée une partie de la séquence d’éléments binaires, au moins une donnée ayant un type associé à cet identifiant. 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 ; illustre schématiquement des cartes de caractéristiques utilisées par le dispositif électronique de codage de la figure 1 ; 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 ; représente le flux de données produit par le dispositif électronique de codage de la figure 1 ; représente un exemple de dispositif électronique de décodage conforme à 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 5. La figure 1 représente un dispositif électronique de codage 2 incluant un codeur entropique 10. 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 "). Le processeur 4 est programmé (par exemple au moyen d’instructions de programme d’ordinateur exécutables par le processeur 4 et mémorisées dans une mémoire – non représentée – associée au processeur 4) pour mettre en œuvre un module de commande 5 et le codeur entropique 10 déjà mentionné. Comme schématiquement représenté en figure 1, le module de commande 5 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 chrominance. 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’images, 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 (par exemple par le module de commande 5). Pour ce faire, l’unité de traitement parallélisé 6 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 valeurs V représentatives du contenu audio ou vidéo. En variante, on pourrait utiliser un autre type de procédé à apprentissage automatique qu’un réseau de neurones artificiels, par exemple un autre type de procédé à apprentissage profond ou un procédé à apprentissage par forêt d’arbres décisionnels. 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 valeurs représentatives V. 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 (ou nœuds) 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 Lu et al., 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), juin 2019. Les valeurs représentatives V produites en sortie du réseau de neurones artificiels 8 sont ici organisées en une séquence de cartes de caractéristiques F (ou " feature maps " selon l’appellation anglo-saxonne parfois utilisée), comme schématiquement représenté en figure 2. Le réseau de neurones artificiels 8 produit par exemple ici N cartes de caractéristiques F. Chaque carte de caractéristiques F présente par exemple une structure bidimensionnelle (ou structure matricielle). Ainsi, chaque carte de caractéristiques F forme ici une matrice à H lignes et W colonnes. Un élément situé à une position donnée dans une carte de caractéristiques F donnée correspond à la valeur représentative V produite par un nœud de sortie (ou nœud de la couche de sortie) du réseau de neurones artificiels, ce nœud de sortie étant associé de manière prédéfinie à cette position donnée et à cette carte de caractéristiques F donnée. Selon une possibilité de réalisation, le réseau de neurones artificiels 8 produit en sortie (c’est-à-dire sur sa couche de sortie) à un instant donné l’ensemble des N cartes de caractéristiques. Selon une autre possibilité de réalisation, différents ensembles de données de contenu B (correspondant par exemple à différentes positions dans l’image) sont appliqués à différents instants en entrée (c’est-à-dire sur la couche d’entrée) du réseau de neurones artificiels 8 et le réseau de neurones artificiels 8 produit à chacun de ces différents instants en sortie (c’est-à-dire sur sa couche de sortie) une carte de caractéristiques F correspondante (les nœuds de sortie du réseau de neurones artificiels 8 étant dans ce cas associés respectivement aux différentes positions d’une seule carte de caractéristiques F). En variante, les valeurs représentatives V produites en sortie du réseau de neurones artificiels 8 peuvent être organisées en une suite ordonnée de valeurs représentatives V. Lorsque les données de contenu B appliquées en entrée du réseau de neurones artificiels 8 représentent un bloc d’une image (ou un bloc d’une composante d’une image), la suite ordonnée de valeurs représentatives V produites en sortie du réseau de neurones artificiels 8 est associée à ce bloc. Les différentes suites de valeurs représentatives successivement produites par le réseau de neurones artificiels 8 sont ainsi respectivement associées aux différents blocs de l’image (ou aux différents blocs de la composante concernée de l’image). Selon une autre variante encore, les valeurs représentatives V produites en sortie du réseau de neurones artificiels 8 sont placées au sein d’une structure de données à plusieurs dimensions (par exemple M dimensions). Chaque élément de cette structure est alors repéré par sa position au sein de la structure, à savoir dans l’exemple précité au moyen d’un M-uplet de coordonnées. Une valeur représentative V produite par un nœud de sortie donné (c’est-à-dire par un nœud donné de la couche de sortie) du réseau de neurones artificiels 8 forme alors un élément de la structure désigné par une position au sein de la structure associée de manière prédéfinie à ce nœud de sortie (c’est-à-dire par des coordonnées associées de manière prédéfinie à ce nœud de sortie). Les valeurs représentatives V produites en sortie du réseau de neurones artificiels 8 sont appliquées en entrée du codeur entropique 10. Ces valeurs représentatives V sont par exemple appliquées dans un ordre prédéfini. Ainsi, lorsque les valeurs représentatives V sont organisées en une suite (ordonnée) de cartes de caractéristiques F, les différentes cartes de caractéristiques F sont appliquées l’une après l’autre (dans l’ordre de la suite susmentionné), et les différents éléments d’une même carte de caractéristiques F (qui correspondent chacun à une valeur représentative) sont appliqués selon un schéma prédéfini (selon leur position) au sein de la carte de caractéristiques F. Le codeur entropique 10 est conçu pour coder plusieurs sources statistiques correspondant chacune à une probabilité particulière d’apparition des symboles à coder. Pour ce faire, le codeur entropique 10 peut être paramétré dans un contexte particulier, associé à une source statistique donnée et dans lequel le codeur entropique 10 produit un codage entropique optimal si les symboles effectivement codés (ici les valeurs représentatives V) respectent la probabilité prévue pour cette source statistique. Le codeur entropique 10 est ici un codeur de type CABAC (pour " Context-based adaptive binary arithmetic coding "). En variante, il pourrait s’agir d’un autre type de codeur entropique, par exemple un codeur de type Huffman, un codeur arithmétique ou un codeur LZW (pour "Lempel-Ziv-Welch"). Comme expliqué dans la suite, le codeur entropique 10 est à chaque instant paramétré par le module de commande 5 dans un contexte C qui dépend du type de la valeur représentative V à coder à cet instant (valeur représentative V provenant du réseau de neurones artificiels 8). Dans le cas décrit ici où les valeurs représentatives V sont organisées en une suite de cartes de caractéristiques F, le contexte C sélectionné par le module de commande 5 pour paramétrer le codeur entropique 10 en vue du codage entropique d’un élément d’une carte de caractéristiques F peut par exemple dépendre (de manière prédéfinie) de la carte de caractéristiques F concernée et/ou de la position de l’élément dans la carte de caractéristiques F. (L’association d’un certain contexte à une carte de caractéristiques et/ou à une position dans la carte de caractéristiques est réalisée par exemple au moyen de mesures statistiques préalables, pour un grand nombre d’images traitées au moyen du réseau de neurones artificiels de codage 8, de la probabilité d’apparition des symboles dans cette carte de caractéristiques ou à cette position. Une telle association a pour but d’isoler les sources statistiques différentes au sein des valeurs représentatives V de façon à coder chacune de ces sources statistiques avec un contexte spécifique, et ainsi maximiser la compression.) Le codeur entropique 10 produit en sortie une séquence d’éléments binaires (ou séquence de bits) Fnn. On décrit à présent en référence à la figure 3 un exemple de procédé de codage mis en œuvre par le dispositif électronique de codage 2. Le procédé de la figure 3 débute par une étape E2 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. Le couple processus de codage – processus de décodage peut par exemple être 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 disponible pour un dispositif électronique de décodage (tel que le dispositif électronique de décodage 20 représenté sur la figure 5 et décrit plus loin). Pour ce faire, le dispositif électronique de codage peut éventuellement recevoir au préalable (en provenance du dispositif électronique de décodage ou d’un serveur dédié) une liste de réseaux de neurones artificiels accessibles par ce dispositif électronique de décodage. 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 dites intra) 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, in IEEE Transactions on Circuits and Systems for Video Technology, vol. 22, no. 12, pp. 1649-1668, déc. 2012. 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 module de commande 5 procède à l’étape E4 à 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 E4 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 Γ 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 3 comprend alors une étape E6 de mise en œuvre du processus de codage, c’est-à-dire ici une étape d’application des données de contenu B en entrée du réseau de neurones artificiels de codage 8 (ou autrement dit une étape d’activation du réseau de neurones artificiels de codage 8 en prenant en entrée les données de contenu B). L’étape E6 permet ainsi de produire (ici en sortie du réseau de neurones artificiels de codage 8) les valeurs représentatives V. Les étapes qui suivent visent le codage (c’est-à-dire la préparation) du flux de données destiné au dispositif électronique de décodage (par exemple le dispositif électronique de décodage 20 décrit ci-dessous en référence à la figure 5). Le procédé comprend ainsi notamment une étape E8 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 chrominance. Ces données sont par exemple construites sur la base des données de format P susmentionnées (après un reformatage éventuel). Le module de commande 5 procède à l’étape E10 au codage d’une seconde partie d’en-tête comprenant des données R indicatives du réseau de neurones artificiels de décodage (associé au couple processus de codage – processus de décodage sélectionné à l’étape E2). Selon une première possibilité de réalisation, ces données indicatives R peuvent comprendre un identifiant du réseau de neurones artificiels de décodage. Un tel identifiant désigne (parmi une pluralité de réseaux de neurones artificiels de décodage, par exemple parmi l’ensemble des réseaux de neurones artificiels de décodages disponibles pour le dispositif électronique de décodage) le réseau de neurones artificiels de décodage correspondant au réseau de neurones artificiels de codage 8 susmentionné, réseau de neurones artificiels de décodage qui doit donc être utilisé pour le décodage des valeurs représentatives V. Autrement dit, un tel identifiant définit 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 de réseaux de neurones artificiels de décodage disponibles pour (ou accessibles par) le dispositif électronique de décodage. Comme déjà indiqué, le dispositif électronique de codage 2 peut éventuellement recevoir au préalable (en provenance du dispositif électronique de décodage ou d’un serveur dédié) une liste de réseaux de neurones artificiels accessibles par le dispositif électronique de décodage. Selon une seconde possibilité de réalisation, ces données indicatives R peuvent comprendre des données descriptives du réseau de neurones artificiels de décodage. Le réseau de neurones artificiels de décodage (correspondant au réseau de neurones artificiels de codage 8 susmentionné) est par exemple codé (c’est-à-dire représenté) par ces données descriptives (ou données de codage du réseau de neurones artificiels de décodage) 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. Wiedemann et 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. Wiedemann et al., in IEEE Transactions on Neural Networks and Learning Systems (Vol. 31 , Iss. 3), mars 2020. On peut également prévoir que les données indicatives R comprennent un indicateur indiquant si le réseau de neurones artificiels de décodage fait partie d’un ensemble prédéterminé de réseaux de neurones artificiels (auquel cas la première possibilité de réalisation mentionnée ci-dessus est utilisée) ou si 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 précitées (auquel cas la seconde possibilité de réalisation mentionné ci-dessus est utilisée). Le procédé de la figure 3 se poursuit par une étape E12 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 module de commande 5 détermine par exemple cette possibilité en déterminant (éventuellement au moyen d’échanges préalables entre le dispositif électronique de codage 2 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 module de commande 5 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 E16 décrite plus bas. Si le module de commande 5 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 E14 décrite ci-dessous (avant de passer à l’étape E16). En variante, le choix d’effectuer ou non l’étape E14 (avant d’effectuer l’étape E16) 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 module de commande 5 code dans le flux de données à l’étape E14 une troisiè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 5.) 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’échanges préalables entre le dispositif électronique de codage 2 et le dispositif électronique de décodage). Le module de commande 5 procède ensuite à une étape E16 de configuration du codage entropique. Au cours de cette étape de configuration 16, le module de commande 5 détermine un ensemble de sources statistiques avec lesquelles effectuer le codage entropique. Le module de commande 5 détermine par exemple un nombre de sources statistiques (et donc de contextes) à utiliser pour le codage entropique. Pour ce faire, le module de commande 5 peut par exemple analyser les valeurs représentatives V produites comme indiqué ci-dessus et y identifier combien de sources statistiques différentes s’y trouvent. Selon une autre possibilité, le module de commande 5 peut choisir le nombre de sources statistiques en fonction de la complexité qu’il souhaite autoriser lors du codage et/ou du décodage. Ainsi, le module de commande 5 peut diviser le signal formé par l’ensemble des valeurs représentatives V en un certain nombre (par exemple inférieur ou égal à un nombre prédéterminé, ou, en variante, sans limitation de leur nombre) de sous-signaux selon des critères prédéfinis. On note dans la suite K le nombre de sources statistiques différentes identifiées dans le signal formé par les valeurs représentatives V (c’est-à-dire le nombre de contextes dans lesquels le codeur entropique pourra être paramétré lors du codage entropique des valeurs représentatives V). On a par exemple K = 160. Dans l’exemple décrit ici, le module de commande 5 peut créer autant de sous-signaux que de cartes de caractéristiques F, ou autant de sous-signaux que d’emplacements (c’est-à-dire de positions distinctes) dans une carte de caractéristiques F. On peut prévoir éventuellement en outre que le module de commande 5 puisse fusionner les sous-signaux qui possèdent les mêmes distributions statistiques (ou des distributions statistiques très similaires). Ainsi, le module de commande 5 détermine également au cours de l’étape de configuration E16 à quelle source statistique (et donc à quel contexte) est associé chaque type de valeur représentative V (c’est-à-dire ici chaque élément d’une carte de caractéristiques). Par exemple, si le module de commande 5 crée autant de sous-signaux que de cartes de caractéristiques F, le contexte associé à un élément d’une carte de caractéristiques F (c’est-à-dire à utiliser pour paramétrer le codage entropique de cet élément) dépend de la carte de caractéristiques F concernée. En revanche, si le module de commande 5 créé autant de sous-signaux que d’emplacements dans chaque carte de caractéristiques F, le contexte associé à un élément d’une carte de caractéristiques F (c’est-à-dire à utiliser pour paramétrer le codage entropique de cet élément) dépend de la position de cet élément dans la carte de caractéristiques F. Le procédé de la figure 3 se poursuit alors par des étapes de codage de données représentatives de la configuration du codeur entropique déterminée à l’étape E16. Ainsi, le procédé de la figure 3 comprend tout d’abord une étape E18 de codage d’une quatrième partie d’en-tête comprenant une information I1 indicative de l’ensemble de contextes utilisés pour le codage entropique. Dans l’exemple décrit ici, l’information I1 est indicative du nombre K de contextes utilisés pour le codage entropique. Le procédé de la figure 3 comprend ensuite une étape E20 de codage d’une cinquième partie d’en-tête comprenant, pour chaque contexte utilisé pour le codage entropique, une donnée Iinit de paramétrisation du contexte concerné. Dans le cas décrit ici où le codage entropique utilisé est de type CABAC, la donnée de paramétrisation Iinit associée à un contexte donné est une donnée d’initialisation de ce contexte, comme décrit par exemple dans la Recommandation ITU-T H.265, partie " 9.3.2.2 Initialization process for context variables ". Dans d’autres modes de réalisation, la donnée de paramétrisation associée à un contexte donné peut être une donnée indicative du modèle de probabilité utilisé pour le contexte concerné lors du codage entropique. Le procédé de la figure 3 comprend alors une étape E22 de codage d’une sixième partie d’en-tête comprenant des données I2 indiquant, pour chaque type de valeur représentative V, le contexte dans lequel le codage entropique des valeurs représentatives V ayant ce type est réalisé. Dans l’exemple décrit, comme déjà indiqué, le module de commande 5 sélectionne comme déjà indiqué l’affectation des différents contextes respectivement aux différentes cartes de caractéristiques F (chaque carte de caractéristiques F formant un sous-signal), ou respectivement aux différentes positions (ou emplacements) définies dans les cartes de caractéristiques F (les éléments ayant une position donnée formant un sous-signal). On propose donc ici que les données I2 comprennent : - un indicateur I2_mode qui indique, si sa valeur est 0, qu’un contexte est associé à chaque carte de caractéristiques F et, si sa valeur est 1, qu’un contexte est utilisé pour chaque position dans les cartes de caractéristiques F ; - une pluralité d’identifiants I2_map[i] indiquant respectivement les contextes utilisés pour les différents types de valeurs représentatives V. Si l’indicateur I2_mode est égal à 0, les différents types de valeurs représentatives correspondent aux différentes cartes de caractéristiques F. Si l’indicateur I2_mode est égal à 1, les différents types de valeurs représentatives correspondent aux différentes positions au sein d’une carte de caractéristiques F. On décrit dans la suite (sauf indication contraire) le cas où le module de commande 5 sélectionne l’affectation des différents contextes aux différentes cartes de caractéristiques, c’est-à-dire où l’indicateur I2_mode est égal à 0. Le procédé de la figure 3 se poursuit par une étape E24 d’initialisation du codeur entropique 10 (par le module de commande 5) au moyen des données de paramétrisation susmentionnées relatives aux différents contextes. Ce type d’initialisation est décrit dans le document déjà mentionné (Recommandation ITU-T H.265, partie " 9.3.2.2 Initialization process for context variables "). Le procédé de la figure 3 comprend alors une étape E26 de codage entropique des valeurs représentatives V par le codeur entropique 10, le codeur entropique 10 étant à chaque instant paramétré (par le module de commande 5) dans le contexte C utilisé (d’après les choix faits comme décrit ci-dessus) pour le type de la valeur représentative V en cours de traitement. Par exemple, dans l’exemple décrit ici, pour le codage entropique des valeurs représentatives V contenues dans une carte de caractéristiques F donnée, le module de commande 5 paramètre le codeur entropique 10 dans le contexte C associé à cette carte de caractéristiques F donnée et applique successivement (dans un ordre prédéfini) les éléments de cette carte de caractéristiques F en entrée du codeur entropique 10. Le codeur entropique 10 produit ainsi en sortie une séquence Fnn d’éléments binaires représentant, sous forme compressée, le contenu audio ou vidéo. L’étape E26 peut comprendre dans certains cas une sous-étape (antérieure au codage entropique à proprement parler) de binarisation des valeurs représentatives V, comme décrit dans l’article "Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard " précité. L’objectif de cette étape de binarisation est de convertir une valeur représentative V pouvant prendre un grand nombre de valeurs en une série d’éléments binaires, chaque élément binaire étant codé par codage entropique (et dans ce cas, un contexte est associé au codage de chaque élément binaire). On remarque que, lorsque l’étape E6 permet le traitement d’une partie seulement du contenu audio ou vidéo à compresser (par exemple lorsque l’étape E6 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 E6 (pour obtenir des valeurs représentatives des parties successives du contenu) et E26 (pour réaliser le codage entropique de ces valeurs représentatives). Le processeur 4 peut ainsi construire à l’étape E28 le flux de données complet comprenant l’en-tête Fet et la séquence d’éléments binaires Fnn. Le flux de données complet est construit de sorte que l’en-tête Fet et la séquence d’éléments binaires Fnn soient identifiables individuellement. Selon une possibilité de réalisation, l’en-tête Fet contient un indicateur de début de la séquence d’éléments binaires Fnn dans le flux de données complet. Cet indicateur est par exemple la localisation, en bits, du début de la séquence d’éléments binaires 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 de la séquence d’éléments binaires Fnn sont envisageables en variante, comme par exemple un marqueur (c’est-à-dire une combinaison de bits utilisée pour indiquer le début de la séquence d’éléments binaires Fnn et dont l’usage est interdit dans le reste du flux de données, ou au moins dans l’en-tête Fet). Le flux de données construit à l’étape E28 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 System " (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 séquence d’éléments binaires 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 E28 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 séquence d’éléments binaires 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 E28 peut alors être émis à l’étape E30 à destination du dispositif électronique de décodage 20 décrit ci-après (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 20 décrit ci-dessous en référence à la figure 5). Ce flux de données comprend ainsi, comme représenté en figure 4, l’en-tête Fet et la séquence d’éléments binaires Fnn. Comme cela ressort de ce qui précède, l’en-tête Fet comprend : - une première partie Fc qui comprend des données caractéristiques du format de représentation du contenu audio ou vidéo ; - une seconde partie qui comprend des données R indicatives du réseau de neurones artificiels de décodage (ou de manière générale des données indicatives d’un procédé à apprentissage automatique utilisé pour le décodage) ; - éventuellement une troisième partie qui comprend un programme d’ordinateur Exe exécutable par un processeur du dispositif électronique de décodage ; - une quatrième partie qui comprend une information I1 indicative de l’ensemble de contextes utilisés pour le codage entropique ; - une cinquième partie qui comprend, pour chaque contexte utilisé pour le codage entropique, une donnée Iinit de paramétrisation du contexte concerné ; - une sixième partie I2 qui comprend une pluralité d’identifiants I2_map[i] représentatifs chacun d’un contexte dans lequel le codeur entropique a été paramétré pour le codage entropique des données d’un certain type et par conséquent dans lequel un décodeur entropique est paramétré pour obtenir les données de ce type lorsque le décodeur entropique reçoit en entrée une partie de la séquence d’éléments binaires, comme décrit dans la suite. Selon une variante envisageable, on pourrait prévoir de ne pas transmettre l’information I1 indicative de l’ensemble de contexte utilisés pour le codage entropique, le codeur entropique et le décodeur entropique pouvant alors utiliser un nombre de contextes défini à l’avance (par convention). La figure 5 représente un dispositif électronique de décodage 20 incluant un décodeur entropique 23. Ce dispositif électronique de décodage 20 comprend une unité de réception 21, un processeur 24 (par exemple un microprocesseur) et une unité de traitement parallélisé 26, 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 21 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 décrit ci-dessus) d’un disposition électronique extérieur, tel que le dispositif électronique de codage 2, et de communiquer ces données au processeur 24 (auquel l’unité de réception 21 est par exemple relié par un bus). Le dispositif électronique de décodage 20 comprend également une unité de mémorisation 22, par exemple une mémoire (éventuellement une mémoire non-volatile réinscriptible) ou un disque dur. Bien que l’unité de mémorisation 22 soit représentée en figure 5 comme un élément distinct du processeur 24, l’unité de mémorisation 22 pourrait en variante être intégrée au (c’est-à-dire comprise dans le) processeur 24. Le processeur 24 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 22. Une partie de ces instructions permettent, lorsqu’elles sont exécutées par le processeur 24, de mettre en œuvre un module de commande 25 ayant notamment les fonctionnalités décrites dans la suite. En variante, certaines des fonctionnalités du module de commande 25 pourraient être mises en œuvre du fait de l’exécution, par le processeur 24, d’instructions identifiées au sein de l’en-tête Fet à l’étape E52 comme décrit ci-dessous. Une autre partie des instructions mémorisés dans l’unité de mémorisation 22 permettent, lorsqu’elles sont exécutées par le processeur 24, de mettre en œuvre le décodeur entropique 23 déjà mentionné. En variante, le décodeur entropique 23 pourrait être mis en œuvre du fait de l’exécution, par le processeur 24, d’instructions identifiées au sein de l’en-tête Fet à l’étape E52 comme décrit ci-dessous. Le décodeur entropique 23 est conçu pour effectuer un décodage entropique inverse du codage entropique effectué par le codeur entropique 10 du dispositif électronique de codage 2 décrit ci-dessus en référence à la figure 1. Le décodeur entropique 23 est donc ici un décodeur entropique de type CABAC (pour " Context-based adaptive binary arithmetic coding "). En variante, il pourrait s’agir d’un autre type de codeur entropique, par exemple un décodeur de type Huffman, un décodeur arithmétique ou un décodeur LZW (pour " Lempel-Ziv-Welch "). L’unité de traitement parallélisé 26 est conçue pour mettre en œuvre le réseau de neurones artificiels 28 après avoir été configurée par le processeur 24 (ici précisément par le module de commande 25). Pour ce faire, l’unité de traitement parallélisé 26 est conçue pour effectuer en parallèle à un instant donné une pluralité d’opérations du même type. De manière générale, l’unité de traitement parallélisé 26 est conçue pour mettre en œuvre un procédé à apprentissage automatique (tel que par exemple un procédé à apprentissage profond ou un procédé à apprentissage par forêt d’arbres décisionnels) après avoir été configurée par le processeur 24, par exemple au moyen de données de configuration d’un tel procédé à apprentissage automatique reçues au sein du flux de données. Comme schématiquement représenté en figure 5, le processeur 24 reçoit (ici via l’unité de réception 21) le flux de données comprenant l’en-tête Fet et la séquence d’élément binaires Fnn. Comme expliqué dans la suite, le réseau de neurones artificiels 28 est utilisé dans le cadre d’un traitement de données obtenues par décodage entropique de la séquence d’éléments binaires Fnn, ce traitement de données visant à obtenir un contenu audio ou vidéo correspondant au contenu audio ou vidéo initial B. L’unité de mémorisation 22 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 24 peut dans ce cas configurer l’unité de traitement parallélisé 26 au moyen d’un jeu de paramètres particulier parmi ces jeux de paramètres de sorte que l’unité de traitement parallélisé 26 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 22 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 20 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 6 un procédé de décodage mis en œuvre au sein du dispositif électronique de décodage 20 et utilisant d’une part le décodeur entropique 23 et d’autre part le réseau de neurones artificiels 28 mis en œuvre par l’unité de traitement parallélisé 26. Le procédé de la figure 6 débute une étape E50 de réception (par le dispositif électronique de décodage 20, et précisément ici par l’unité de réception 21) du flux de données comprenant l’en-tête Fet et la séquence d’éléments binaires Fnn. L’unité de réception 21 transmet le flux de données reçu au processeur 24 pour traitement par le module de commande 25. Le module de commande 25 procède alors à une étape E52 d’identification de l’en-tête Fet et de la séquence d’éléments binaires Fnn au sein du flux de données reçu, par exemple au moyen de l’indicateur de début de séquence d’éléments binaires (déjà mentionné lors de la description de l’étape E28). Le module de commande 25 peut également identifier à l’étape E52 les différentes parties de l’en-tête Fet (telles que décrites plus haut en référence à la figure 4). 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 E52, le module de commande 25 peut lancer à l’étape E54 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 d’en-tête (et éventuellement de décodage entropique). Ces instructions peuvent être exécutées par le processeur 24 ou, en variante, par une machine virtuelle instanciée au sein du dispositif électronique de décodage 20. Le procédé de la figure 5 se poursuit par une étape E56 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 module de commande 25 procède alors à une étape E58 de décodage des données R indicatives du réseau de neurones artificiels de décodage à utiliser. Selon une première possibilité, comme déjà indiqué, ces données R sont un identifiant désignant le réseau de neurones artificiels de décodage 28, par exemple au sein d’un ensemble prédéterminé de réseaux de neurones artificiels. Cet ensemble prédéterminé est par exemple l’ensemble des réseaux de neurones artificiels de décodage accessibles par le dispositif électronique de décodage 20, à savoir l’ensemble des réseaux de neurones artificiels pour lesquels le dispositif électronique de décodage 20 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 module de commande 25 peut dans ce cas procéder à la lecture, par exemple dans l’unité de mémorisation 22, d’un jeu de paramètres associé à l’identifiant décodé (ce jeu de paramètres définissant le réseau de neurones artificiels identifié par l’identifiant décodé). En variante (ou dans le cas où aucun jeu de paramètres n’est mémorisé dans l’unité de mémorisation 22 pour le réseau de neurones artificiels identifié par l’identifiant décodé), le module de commande 25 peut émettre une requête d’un jeu de paramètres à destination d’un serveur distant (cette requête incluant par exemple l’identifiant décodé) et recevoir en réponse le jeu de paramètres définissant le réseau de neurones artificiels identifié par l’identifiant décodé. Selon une seconde possibilité de réalisation, comme déjà indiqué, les données R sont des données descriptives Rc du réseau de neurones artificiels de décodage 28. Comme déjà indiqué, ces données descriptives (ou données de codage) 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 de ces données descriptives permet d’obtenir les paramètres définissant le réseau de neurones artificiels à utiliser pour le décodage des données obtenues (par décodage entropique) à partir de la séquence d’éléments binaires Fnn. Dans certains modes de réalisation, l’utilisation de la première possibilité ou de la seconde possibilité susmentionnées dépend d’un indicateur également inclus dans les données R, comme déjà indiqué. Quelle que soit la possibilité utilisée, le décodage des données R indicatives du réseau de neurones artificiels de décodage à utiliser permet (ici au module de commande 25) de déterminer les caractéristiques du réseau de neurones artificiels de décodage 28. Par exemple, dans l’exemple décrit ici, le module de commande 25 détermine ainsi le nombre N de cartes de caractéristiques attendues en entrée du réseau de neurones artificiels de décodage 28 et les dimensions H, W de ces cartes de caractéristiques. En effet, la couche d’entrée du réseau de neurones artificiels de décodage 28 correspondant à la couche de sortie du réseau de neurones artificiels de codage 8 comme expliqué plus haut (voir par exemple la description de l’étape E2), chaque élément d’une carte de caractéristiques F est associé de manière prédéterminée à un nœud d’entrée (ou nœud de la couche d’entrée) du réseau de neurones artificiels de décodage. Le nombre et les dimensions des cartes de caractéristiques F sont donc liés aux caractéristiques du réseau de neurones artificiels de décodage 28, ainsi qu’à certaines données d’en-tête comme les données Fc susmentionnées (comprenant notamment les dimensions de l’image). Le module de commande 25 procède alors à l’étape E60 à la configuration de l’unité de traitement parallélisé 26 au moyen des paramètres définissant le réseau de neurones artificiels de décodage 28 (paramètres obtenus à l’étape E58), ou de manière générale le procédé à apprentissage automatique utilisé, afin que l’unité de traitement parallélisé 26 puisse mettre en œuvre le réseau de neurones artificiels de décodage 28 (ou de manière générale le procédé à apprentissage automatique, par exemple en variante un autre procédé à apprentissage profond ou un procédé à apprentissage par forêt d’arbres décisionnels). Cette étape de configuration E60 comprend notamment l’instanciation du réseau de neurones artificiels de décodage 28 au sein de l’unité de traitement parallélisé 26, ici en utilisant les paramètres obtenus à l’étape E58. Cette instanciation peut notamment comprendre les étapes suivantes : - réservation, au sein de l’unité de traitement parallélisé 26, de l’espace mémoire nécessaire à la mise en œuvre du réseau de neurones artificiels de décodage 28 ; et/ou - programmation de l’unité de traitement parallélisé 26 avec les paramètres (incluant par exemple des poids Γ’ et des fonctions d’activation) définissant le réseau de neurones artificiels de décodage 28 (paramètres obtenus à l’étape E58). Le module de commande 25 procède alors à l’étape E62 au décodage de l’information I1 indicative de l’ensemble de contextes utilisables au sein du décodeur entropique 23 (indicative ici du nombre K de contextes utilisables au sein du décodeur entropique 23). Comme déjà indiqué, on a par exemple K = 160. Le module de commande 25 procède ensuite à l’étape E64 au décodage des données de paramétrisation Init relatives respectivement aux différents contextes de l’ensemble de contextes utilisés (cet ensemble étant déterminé grâce à l’information I1 décodée à l’étape E62). Le module de commande 25 peut alors mettre en œuvre une étape E66 d’initialisation de chaque contexte utilisable au sein du décodeur entropique 23 au moyen de la donnée de paramétrisation Iinit du contexte concerné (décodée à l’étape E64). Précisément, le décodeur entropique 23 étant ici adaptatif, chaque contexte est initialisé avec le modèle de probabilité défini par la donnée de paramétrisation Iinit relative à ce contexte. En variante, si le décodeur entropique 23 utilise un modèle de probabilité fixe pour chaque contexte, le module de commande 25 configure à l’étape E66 chaque contexte utilisable par le décodeur entropique avec le modèle de probabilité défini par la donnée de paramétrisation Iinit relative à ce contexte. Le module de commande 25 effectue ensuite une étape E68 de décodage des données I2 indiquant, pour chaque type de donnée à obtenir par décodage entropique, le contexte dans lequel le codage entropique des données ayant ce type a réalisé et par conséquent dans lequel le décodeur entropique 23 doit être paramétré pour le décodage entropique de cette donnée. Dans l’exemple décrit ici, le module de commande 25 décode (c’est-à-dire ici consulte) tout d’abord l’indicateur I2_mode qui indique, si sa valeur est 0, qu’un contexte est associé à chaque carte de caractéristiques F et, si sa valeur est 1, qu’un contexte est utilisé pour chaque position dans les cartes de caractéristiques F. Ainsi, en fonction de la valeur de l’indicateur I2_mode et du nombre K et des dimensions H, W des cartes de caractéristiques, le module de commande 25 décode (c’est-à-dire ici lit dans le flux de données) les identifiants I2_map[i] représentatifs chacun d’un contexte dans lequel dans lequel le décodeur entropique 23 doit être paramétré pour obtenir les données de ce type lorsque le décodeur entropique 23 reçoit en entrée une partie de la séquence d’éléments binaires Fnn. Par exemple, si l’indicateur I2_mode vaut 0, le module de commande 25 décode (ou lit), pour chacune des N cartes de caractéristiques F, l’identifiant I2_map[i] représentatif du contexte dans lequel le décodeur entropique 23 doit être paramétré pour obtenir les données (ici les valeurs représentatives V) relatives à cette carte de caractéristiques F. Autrement dit, dans ce cas, le type d’une donnée est défini par la carte de caractéristiques F à laquelle appartient cette donnée (cette donnée étant ici une valeur représentative V). Si l’indicateur I2_mode vaut 1, le module de commande 25 décode (ou lit), pour chacune des WxH positions (ou emplacements) au sein de chaque carte de caractéristiques F, l’identifiant I2_map[i] représentatif du contexte dans lequel le décodeur entropique 23 doit être paramétré pour obtenir les données (ici les valeurs représentatives V) situées à cette position. Autrement dit, dans ce cas, le type d’une donnée est défini par la position de cette donnée (ici une valeur représentative V) au sein de la carte de caractéristiques F concernée. Pour chaque donnée de la suite de donnée attendues (à savoir ici pour chacune des valeurs représentatives V à appliquer en entrée du réseau de neurones artificiels de décodage 28), à l’étape E70, le module de commande 25 : - détermine le contexte à utiliser pour le décodage de cette donnée sur la base de l’identifiant I2_map[i] associé au type de cette donnée ; - paramètre le décodeur entropique 23 dans le contexte C ainsi déterminé ; et - applique en entrée du décodeur entropique 23 une partie de la séquence d’éléments binaires Fnn (dans l’ordre de réception de ces éléments binaires), de sorte que le décodeur entropique 23 produit en sortie la donnée attendue (ici une valeur représentative V) identique à celle qui a été codée par codage entropique à l’étape E26. Comme déjà indiqué (voir ci-dessus la description de l’étape E58), le module de commande 25 a déterminé au préalable le nombre N et les dimensions H, W des cartes de caractéristiques et connait donc le nombre de valeurs représentatives V (ou données attendues) à obtenir au cours de l’étape de décodage entropique E70. Par ailleurs, comme mentionné lors de la description de l’étape E26, les différentes valeurs représentatives V sont codées par codage entropique dans un ordre prédéfini et les valeurs représentatives V (données attendues) sont donc décodées dans ce même ordre prédéfini. D’après ce qui a déjà été expliqué, si l’indicateur I2_mode vaut 0, le contexte C déterminé pour décoder un élément ( i.e. une valeur représentative V) d’une carte de caractéristiques F donnée est ainsi déterminé sur la base de l’identifiant I2_map[i] associé à cette carte de caractéristiques F donnée (le type de donnée correspondant dans ce cas à la carte de caractéristiques comprenant cette donnée). De même, si l’indicateur I2_mode vaut 1, le contexte C déterminé pour décoder un élément donné ( i.e. une valeur représentative donnée V) dans une carte de caractéristiques F est déterminé sur la base de l’identifiant I2_map[i] associé à la position de cet élément donné dans la carte de caractéristiques (le type de donnée correspondant dans ce cas à la position de la donnée). Le décodeur entropique 23 produit ainsi à l’étape E70 la suite de données attendues, à savoir ici l’ensemble des valeurs représentatives V. Le processeur 24 (ici directement en sortie du décodeur entropique 23 ou, en variante, par l’intermédiaire du module de commande 25) peut alors appliquer ( i.e. présenter) à l’étape E72 les valeurs représentatives V au réseau de neurones artificiels 28 mis en œuvre par l’unité de traitement parallélisé 26 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 28. Dans l’exemple décrit ici, le réseau de neurones artificiels 28 reçoit en entrée les valeurs représentatives V 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, les valeurs représentatives V (sous forme ici de cartes de caractéristiques F) sont appliquées sur la couche d’entrée du réseau de neurones artificiels 28 et la couche de sortie du réseau de neurones artificiels 28 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 28 produit ainsi en sortie (c’est-à-dire au niveau de sa couche de sortie) au moins une représentation matricielle I d’une image. Comme déjà vu pour le codage à l’étape E6 décrite ci-dessus, l’association d’un élément ( i.e. d’une valeur représentative V) d’une carte de caractéristiques F à un nœud d’entrée (ou nœud de la couche d’entrée) est prédéfinie. Dans certains modes de réalisation, pour le traitement de certaines valeurs représentatives V (correspondant par exemple à un bloc ou une image), le réseau de neurones artificiels 28 peut recevoir en entrée certaines au moins des données produites en sortie du réseau de neurones artificiels 28 lors du traitement de données antérieures (ici de valeurs représentatives V antérieures), correspondant par exemple au bloc précédent ou à l’image précédente. On procède dans ce cas à une étape E74 de réinjection de données produites en sortie du réseau de neurones artificiels 28 vers l’entrée du réseau de neurones artificiels 28. 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. Le module de commande 25 détermine alors à l’étape E76 si le traitement de la séquence d’éléments binaires Fnn au moyen du réseau de neurones artificiels 28 est terminé. En cas de détermination négative (N), le procédé boucle à l’étape E70 pour décodage entropique de la partie suivante de la séquence d’éléments binaires Fnn et application d’autres valeurs représentatives V (produites par ce décodage entropique) au réseau de neurones artificiels 28. En cas de détermination positive (P), il est mis fin au procédé à l’étape E78. Procédé de décodage d’un flux de données comprenant une pluralité d’identifiants (I2_map[i]) et une séquence d’éléments binaires (Fnn), en une suite de données (V) de types respectifs prédéterminés, le procédé comprenant les étapes suivantes pour obtenir chaque donnée (V) de ladite suite : - détermination d’un contexte (C) sur la base d’un identifiant (I2_map[i]) associé, parmi la pluralité d’identifiants, au type de la donnée concernée ; - décodage d’une partie de la séquence d’éléments binaires (Fnn) au moyen d’un décodeur entropique (23) recevant en entrée la séquence d’éléments binaires (Fnn) et paramétré dans le contexte déterminé (C). Procédé de décodage selon la revendication 1, dans lequel le flux de données comprend une information (I1) indicative d’un ensemble de contextes utilisables au sein du décodeur entropique (23). Procédé de décodage selon la revendication 2, dans lequel ladite information (I1) est indicative d’un nombre de contextes utilisables au sein du décodeur entropique (23). Procédé de décodage selon l’une des revendications 1 à 3, dans lequel le flux de données comprend, pour chaque contexte utilisable au sein du décodeur entropique, une donnée (Iinit) de paramétrisation du contexte concerné. Procédé de décodage selon la revendication 4, comprenant une étape d’initialisation (E66) de chaque contexte utilisable au sein du décodeur entropique (23) au moyen de la donnée de paramétrisation (Iinit) du contexte concerné. Procédé de décodage selon l’une des revendications 1 à 5, comprenant une étape d’application (E72) des données obtenues (V) en entrée d’un réseau de neurones artificiels (28). Procédé de décodage selon la revendication 6, dans lequel le réseau de neurones artificiels (28) est mis en œuvre par une unité de traitement (26), le procédé comprenant une étape de configuration (E60) de l’unité de traitement (26) en fonction de données (R) comprises dans le flux de données. Procédé de décodage selon l’une des revendications 1 à 7, dans lequel ladite suite de données forme un ensemble de cartes de caractéristiques (F). Procédé de décodage selon la revendication 8, dans lequel les identifiants de la pluralité d’identifiants sont respectivement associés aux cartes de caractéristiques (F) de l’ensemble de cartes de caractéristiques, le contexte déterminé pour l’obtention d’un élément d’une carte de caractéristiques (F) donnée étant déterminé sur la base de l’identifiant associé à la carte de caractéristiques (F) donnée. Procédé de décodage selon la revendication 8, dans lequel les cartes de caractéristiques (F) de l’ensemble de cartes de caractéristiques ont une structure commune au sein de laquelle chaque élément d’une carte de caractéristiques est défini par une position et dans lequel les identifiants de la pluralité d’identifiants sont respectivement associés aux différentes positions dans la structure commune, le contexte déterminé pour l’obtention d’un élément donné d’une carte de caractéristiques (F) étant déterminé sur la base de l’identifiant associé à la position définissant cet élément donné. Dispositif électronique de décodage (20) d’un flux de données comprenant une pluralité d’identifiants (I2_map[i]) et une séquence d’éléments binaires (Fnn), en une suite de données (V) de types respectifs prédéterminés, le dispositif électronique comprenant : - un décodeur entropique (23) recevant en entrée la séquence d’éléments binaires (Fnn) ; et - un module de configuration (25) conçu pour déterminer un contexte (C) sur la base d’un identifiant (I2_map[i]) associé, parmi la pluralité d’identifiants, au type de la donnée à obtenir, et pour paramétrer le décodeur entropique (23) dans le contexte déterminé (C) de manière à obtenir ladite donnée en sortie du décodeur entropique (23). Programme d’ordinateur comprenant des instructions exécutables par un processeur (24) et conçues pour mettre en œuvre un procédé de décodage selon la revendication 1 lorsque ces instructions sont exécutées par le processeur (24). Flux de données représentant une suite de données (V) de types respectifs prédéterminés, et comprenant une pluralité d’identifiants (I2_map[i]) et une séquence d’éléments binaires (Fnn), chaque identifiant (I2_map[i]) étant représentatif d’un contexte (C) dans lequel un décodeur entropique (23) est paramétré pour obtenir, lorsque ce décodeur entropique (23) reçoit en entrée une partie de la séquence d’éléments binaires (Fnn), au moins une donnée ayant un type associé à cet identifiant (I2_map[i]).