Brevet FR3104360A1 — publié le 20210611

Procédé de compression d’une séquence d’images comprenant une première image et une deuxième image, le procédé comprenant des étapes de : génération (102) d’un premier descripteur comprenant des paramètres d’affichage d’un élément graphique synthétique dans la première image, l’élément graphique synthétique étant d’origine non photographique, et les paramètres d’affichage ne comprenant pas de valeurs de pixels ; traitement de la deuxième image, de sorte à déterminer (208) un évènement ayant induit une potentielle variation de paramètres d’affichage de l’élément graphique synthétique entre la première image et la deuxième image ; génération (210) d’un deuxième descripteur comprenant un code d’évènement indicatif de l’évènement déterminé. Figure pour l’abrégé : Fig. 4 Procédé de compression d’une séquence d’images montrant des éléments graphiques synthétiques d’origine non photographique DOMAINE DE L'INVENTION La présente invention se rapporte au domaine du traitement d’images. L’invention concerne plus spécifique un procédé de compression d’une séquence d’images. ETAT DE LA TECHNIQUE Des vidéos affichées sur des écrans se trouvant dans un cockpit d’aéronef ont des caractéristiques spécifiques. Les images de telles vidéos montrent des éléments graphiques synthétiques (lignes, polygones, cercles, caractères), superposés à un arrière-plan. Les éléments graphiques synthétiques sont d’origine non photographique dans le sens où leur tracé a été déterminé entièrement par un ordinateur, et non pas par un appareil photographique ou une caméra. Dans l’exemple d’image de la figure 1 , l’arrière-plan est d’origine photographique. Dans l’exemple d’image de la figure 2 , l’arrière-plan est uni, d’origine non photographique. Ces vidéos doivent être compressées pour transmission et stockage. Il a été proposé un procédé de compression dans lequel les éléments graphiques synthétiques et l’arrière-plan d’une image sont compressés séparément, pour augmenter le taux de compression de l’image. En particulier, pour coder un élément graphique synthétique montré dans une image, est généré un descripteur comprenant des paramètres d’affichage de l’élément graphique synthétique dans l’image. Les paramètres d’affichage ne comprennent pas de valeurs de pixels. Le caractère synthétique de l’élément graphique permet de pouvoir décrire visuellement cet élément graphique à l’aide de paramètres d’affichage moins volumineux que l’ensemble des valeurs des pixels occupés par cet élément graphique dans la première image, et ce sans perte. Chaque image d’une vidéo est ainsi compressée de la même manière, avec des descripteurs spécifiques pour ses éléments graphiques synthétiques, et des données indépendantes pour compresser l’arrière-plan de l’image. Un but de l’invention est de compresser de manière encore plus efficace une séquence d’images montrant des éléments graphiques synthétiques. Il est à cet effet proposé, selon un premier aspect, un procédé de compression d’une séquence d’images comprenant une première image et une deuxième image, le procédé comprenant des étapes de : - génération d’un premier descripteur comprenant des paramètres d’affichage d’un élément graphique synthétique dans la première image, l’élément graphique synthétique étant d’origine non photographique, et les paramètres d’affichage ne comprenant pas de valeurs de pixels, - traitement de la deuxième image, de sorte à déterminer un évènement ayant induit une potentielle variation de paramètres d’affichage de l’élément graphique synthétique entre la première image et la deuxième image, - génération d’un deuxième descripteur comprenant un code d’évènement indicatif de l’évènement déterminé. Le premier descripteur contient des paramètres d’affichage qui se suffisent à eux-mêmes pour permettre de tracer un élément graphique synthétique. Le deuxième descripteur, lui, indique ce qui a potentiellement changé par rapport au premier descripteur. Le deuxième descripteur suit ainsi une logique incrémentale, et peut de ce fait être de taille beaucoup plus réduite que le premier descripteur. En conséquence, le débit de transmission des données une fois compressées peut être augmenté. Dit d’une autre manière, à débit de transmission constant, il peut être transmis des données représentatives de davantage d’images. Le procédé selon le premier aspect peut comprendre les caractéristiques suivantes, prises seules ou combinées entre elles lorsque cela est techniquement possible. De préférence, lorsqu’il est déterminé que la deuxième image ne montre pas l’élément graphique synthétique, le code d’évènement a une valeur indicative d’une disparition d’élément graphique synthétique. De préférence, lorsqu’il est déterminé que la deuxième image montre l’élément graphique synthétique déplacé par rapport à la première image, le code d’évènement a une valeur indicative d’un déplacement d’élément graphique synthétique. De préférence, le deuxième descripteur comprend des données de positionnement permettant, seules ou en combinaison avec le premier descripteur, de déterminer une position de l’élément graphique synthétique dans la deuxième image. De préférence, les données de positionnement comprennent un vecteur de déplacement entre une position de l’élément graphique synthétique dans la première image et une position de l’élément graphique synthétique dans la deuxième image. De préférence, le procédé comprend une comparaison entre, d’une part, le déplacement de l’élément graphique synthétique entre la première image et la deuxième image, et, d’autre part, un seuil prédéfini, et dans lequel le code d’évènement a la valeur indicative d’un déplacement seulement si ledit déplacement de l’élément graphique synthétique est inférieur au seuil prédéfini. De préférence, lorsqu’il est déterminé que la deuxième image montre un élément graphique qui est différent de l’élément graphique synthétique montré dans la première image, mais qui occupe la même position, le code d’évènement a une valeur indicative d’un changement d’élément graphique synthétique, et le deuxième descripteur comprend des données caractérisant ce changement. De préférence, lorsqu’il est déterminé que la deuxième image montre l’élément graphique de manière inchangée par rapport à la première image, le code d’évènement a une valeur indicative d’une absence de changement d’élément graphique. De préférence, les paramètres d’affichage sont autosuffisants pour permettre une restitution de l’élément graphique synthétique tel que montré dans la première image sur la base desdits paramètres d’affichage. Alternativement, la séquence d’image comprend par ailleurs une image antérieure à la première image, et le premier descripteur comprend un code d’évènement indicatif d’un évènement ayant induit une potentielle variation de paramètres d’affichage de l’élément graphique synthétique entre l’image antérieure et la première image. De préférence, lorsqu’il est déterminé que la première image ou que la deuxième image montre un arrière-plan sur lequel est superposé un élément graphique synthétique, il est mis en œuvre une modification de l’image de sorte à obtenir une image d’arrière-plan, la modification comprenant un filtrage passe-bas appliqué à des valeurs de pixels de l’image montrant l’élément graphique synthétique, et une compression de l’image d’arrière-plan de manière indépendante des étapes de génération du premier descripteur et du deuxième descripteur. De préférence, l’étape de traitement est restreinte à une portion de la deuxième image. De préférence, l’étape de traitement est mise en œuvre par un réseau de neurones convolutif. De préférence, le premier élément synthétique est un caractère, un polygone, un menu, une grille, ou une partie d’un menu ou d’une grille. De préférence, l’arrière-plan est d’origine photographique. De préférence, lorsque l’élément graphique synthétique est un caractère, le premier descripteur comprend un code propre au caractère, et optionnellement un code renseignant sur une police dans laquelle le caractère est montré dans la deuxième image et/ou un code renseignant sur une couleur du caractère dans la deuxième image. Il est également proposé un procédé de décompression de données obtenues par le procédé de compression selon le premier aspect. Il est également proposé un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon le premier aspect, lorsque ce programme est exécuté par un ordinateur. Il est également proposé une mémoire lisible par ordinateur stockant des instructions exécutables par l’ordinateur pour l’exécution des étapes du procédé selon le premier aspect. DESCRIPTION DES FIGURES D’autres caractéristiques, buts et avantages de l’invention ressortiront de la description qui suit, qui est purement illustrative et non limitative, et qui doit être lue en regard des dessins annexés sur lesquels : Les figures 1 et 2 sont deux exemples d’images montrées sur un écran d’un cockpit d’aéronef. La figure 3 représente de manière schématique un dispositif de traitement d’image selon un mode de réalisation. La figure 4 est un organigramme d’étapes d’un procédé selon un mode de réalisation de l’invention. Les figures 5 et 6 sont deux exemples d’images susceptibles d’être compressées au moyen du procédé de la figure 4. La figure 7 représente schématiquement une chaîne de descripteurs générés pour différentes images d’une séquence d’image. Sur l’ensemble des figures, les éléments similaires portent des références identiques. DESCRIPTION DETAILLEE DE L'INVENTION En référence à la figure 1 , un dispositif de traitement 1 d’une séquence d’images comprend au moins un processeur 2 et une mémoire 4. Le dispositif de traitement 1 comprend une entrée 6 adaptée pour recevoir une séquence d’images à compresser, ou des données à décompresser. Le processeur 2 est adapté pour exécuter un programme de compression ou décompression, ce programme de compression comprenant lui-même des instructions de code de programme pour l’exécution d’un procédé de compression ou de décompression qui va être décrit ci-après. La mémoire 4 est adaptée pour stocker des données reçues par l’entrée 6, ainsi que des données générées par le processeur 2. La mémoire 4 comprend typiquement au moins une unité mémoire 4 volatile (RAM par exemple) et au moins une unité mémoire 4 non volatile (Flash, disque dur, SSD, etc.) pour stocker des données de manière persistante. Le dispositif de traitement 1 comprend par ailleurs une sortie 8 par laquelle sont fournies des données résultant d’une compression ou d’une décompression mise en œuvre par le processeur 2 exécutant le programme susmentionné. On suppose qu’une séquence d’images est reçue via l’entrée 6 du dispositif de traitement 1 et mémorisée dans la mémoire 4. Chaque image est une matrice de pixels, chaque pixel ayant une position qui lui est propre, et des données de couleur. On suppose dans ce qui suit que toutes les images de la séquence sont de mêmes dimensions (hauteur, largeur). Les images de la séquence montrent typiquement un arrière-plan, pouvant être d’origine photographique, ou d’origine non photographique (c’est-à-dire synthétique). Les images sont susceptibles de montrer des éléments graphiques superposés à l’arrière-plan, ces éléments étant d’origine synthétique, c’est-à-dire non photographique. Un éléments graphique synthétique peut par exemple être : un caractère, un polygone, un menu, une grille, ou une partie d’un menu ou d’une grille. Ces éléments synthétiques sont réguliers dans le sens où ils ont été tracés de manière exacte à l’aide d’un nombre fini de paramètres d’affichage qui ne sont pas des valeurs de pixels. Par exemple, dans le cas d’un caractère, ce caractère peut être défini par les paramètres d’affichage suivants : un code de caractère, un code renseignant sur une police du caractère, et un code renseignant sur une couleur du caractère. Tous ces codes permettent de tracer le caractère dans une image. Il est entendu que le caractère est quelconque : il peut s’agir d’un caractère alphanumérique ou de tout autre symbole (ponctuation, flèche, symbole mathématique, etc.). Lorsque l’élément graphique est un menu, une grille ou une partie de menu ou de grille, l’élément graphique est constitué d’un nombre fini de segments rectilignes ou courbes. Chaque élément graphique synthétique occupe un certain nombre de pixels dans une image de la séquence. En référence à l’organigramme de la figure 4 , un procédé de compression de la séquence d’image mis en œuvre par le dispositif 1 comprend les étapes suivantes. Le processeur 2 traite une première image de la séquence, de sorte à en analyser le contenu (étape 100). Dans la suite, cette première image est appelée « image de référence ». Le traitement mis en œuvre lors de l’étape 100 est adapté pour détecter les éléments suivants dans l’image de référence : son arrière-plan, et d’éventuels élément graphiques synthétique superposés à cet arrière-plan. Par « éventuel », on veut signifier que le processeur 2 peut détecter l’absence d’élément graphiques dans l’image de référence, ou qu’il peut détecter la présence d’au moins un tel élément. Pour déterminer quels éléments graphiques synthétiques sont présents dans l’image de référence, le processeur 2 peut se fonder sur une bibliothèque d’éléments graphiques synthétiques prédéfinis. Plus précisément, le processeur 2 compare le contenu d’une zone de l’image de référence avec un élément de la bibliothèque, et estime une probabilité de correspondance entre les éléments comparés. Si cette probabilité est supérieure à un seuil prédéfini, le processeur 2 considère que l’élément de la bibliothèque est bel est bien montré dans la zone de l’image de référence. Sinon, le processeur 2 répète les mêmes étapes sur la base d’un autre élément de la bibliothèque. Le processeur 2 conclut qu’aucun élément graphique n’est représenté dans l’image de référence dans le cas où il atteint la fin du dictionnaire, sans que le seuil prédéfini n’ait été franchi. Alternativement, cette étape 100 est mise en œuvre par un réseau de neurones convolutif. Ce réseau de neurone a été préalablement entraîné de sorte à pouvoir reconnaître les différents éléments du dictionnaire. Le réseau de neurones convolutif ne fonctionne pas selon une logique séquentielle, ce qui présente l’avantage d’une exécution rapide, une fois l’apprentissage effectué. Dans ce qui suit, on suppose que le processeur 2 a déterminé lors de l’étape 100 la présence d’au moins un élément graphique synthétique dans l’image de référence. Avantageusement, l’étape 100 est restreinte à une portion de l’image de référence. Dans le présent texte, une « portion » d’image n’est pas nécessairement d’un seul tenant. Cette portion peut comprendre une ou plusieurs zones prédéfinies, chaque zone prédéfinie ayant chacune une position, une taille et une forme prédéfinies (par exemple rectangulaire). Ces zones prédéfinies peuvent être connexes ou disjointes dans l’image de référence, mais ne recouvrent pas l’entièreté de l’image de référence. Cette restriction constitue un avantage, car permet de limiter la charge de calcul consacrée à la détermination d’élément graphiques synthétiques. Cette restriction ne pose pas d’inconvénients lorsque l’on sait à l’avance où peuvent se trouver des éventuels éléments graphiques. Pour chaque élément graphique synthétique trouvé dans l’image de référence, le processeur 2 génère un descripteur associé à l’élément graphique synthétique (étape 102). Ce descripteur comprend des paramètres d’affichage de l’élément graphique synthétique dans l’image de référence. Les paramètres d’affichage ne comprennent pas de valeurs de pixels. Le caractère synthétique de l’élément graphique permet de pouvoir décrire visuellement cet élément graphique à l’aide de paramètres d’affichage moins volumineux que l’ensemble des valeurs des pixels occupés par cet élément graphique dans l’image de référence. Le descripteur est le résultat d’un codage sans perte de l’élément graphique synthétique qui lui est associé, dans le sens où les paramètres d’affichage donnent des informations permettant une restitution de l’élément graphique conforme à l’original. Les paramètres d’affichage d’un élément graphique synthétique comprennent des données indicatives de la position de l’élément graphique dans l’image de référence. Ces données de position comprennent typiquement un couple de coordonnées dans l’image (coordonnée verticale v, et coordonnée horizontale h). Les paramètres d’affichages comprennent au moins un paramètre additionnel, venant en plus de ces données de position. Le nombre de paramètres additionnels dépend de la nature du premier élément synthétique, qui peut être plus ou moins complexe. Prenons par exemple le cas où l’élément graphique synthétique est un caractère. Dans ce cas, les paramètres d’affichage de cet élément graphique comprennent un code propre au caractère (code ASCII par exemple, ou autre). Ce code de caractère peut être le seul paramètre d’affichage additionnel venant en sus des données de position, dans le premier descripteur. Le code de caractère peut être complété par : un code de la police à utiliser pour afficher le caractère (ex : Arial, Times, etc.). un code renseignant sur la couleur du caractère. Il est à noter que ce code est une information globale qui ne se rapporte pas uniquement à un pixel du premier élément graphique, mais se rapport cet élément graphique dans son ensemble. Ce code peut être représentatif d’une couleur unie, ou représentatif d’un dégradé de couleurs, etc. En variante, le code de la police et le code couleur sont prédéfinis, dans le sens où le dispositif de traitement sait à l’avance que le caractère qui se trouve dans la zone prédéfinie a forcément une police et une couleur prédéfinies. Il n’est donc dans ce cas pas nécessaire de coder ces informations dans le descripteur. Les étapes qui précèdent sont répétées le cas échéant pour chaque élément graphique synthétique trouvé dans l’image de référence, de sorte à produire une pluralité de descripteurs, chaque descripteur se rapportant à un élément graphique synthétique de l’image de référence. Dans la suite, les descripteurs ainsi générés sont appelés descripteurs de type « intra ». Ces descripteurs de type « intra » contiennent des informations qui se suffisent à elles-mêmes pour permettre de tracer un élément graphique synthétique représenté dans une image (ici l’image de référence). La pluralité de descripteurs de type « intra » est mémorisée dans la mémoire 4 sous la forme d’un tableau, chaque ligne du tableau étant un des descripteurs de type « intra ». On a représenté en figure 5 un exemple de première image, contenant différents éléments graphiques synthétiques étant tous des caractères. Est obtenu à partir de cette image d’exemple le tableau 1 de descripteurs de type « intra » représenté ci-dessous. Ligne Caractère v h p 1 A 30 20 0 2 B 30 28 0 3 C 30 36 0 4 D 30 44 0 5 E 30 52 0 6 F 30 100 0 7 G 30 108 0 8 H 30 116 0 9 1 40 20 0 10 2 40 28 0 11 3 40 36 0 12 4 40 44 0 13 5 40 52 0 14 Z 70 20 0 15 Y 70 28 0 16 X 70 36 0 17 W 70 44 0 Dans cet exemple, le descripteur de type « intra » généré pour le caractère « A » situé en haut à gauche de l’image de référence est la seconde ligne du tableau 1. Ce descripteur comprend : le code du caractère « A », la position verticale v=30 du caractère (correspondant à un numéro de ligne de l’image de référence), la position horizontale h=20 du caractère (correspondant à un numéro de colonne de l’image de référence), et un code de police p, ici de valeur égale à zéro. On constate que ces paramètres suffisent à permettre une restitution exacte ultérieure de l’élément graphique « A », sans pour autant que ceux-ci ne comprennent de valeurs de pixels. C’est pourquoi les descripteurs « intra » ci-dessus sont sans perte. Les autres lignes du tableau 1 contiennent les mêmes paramètres d’affichages, permettant d’afficher d’autres caractères se trouvant dans l’image de référence représentée en figure 5. Le processeur 2 met par ailleurs en œuvre un traitement de peinture (« inpainting » en anglais), qui modifie l’image de référence de sorte à obtenir une image d’arrière-plan (étape 104). Pour obtenir cette image d’arrière-plan, le processeur 2 remplace les valeurs de pixels de l’image de référence occupés par les éléments graphiques synthétiques détectés par d’autres valeurs de pixel adaptées pour réduire, voire même éliminer des fréquences spatiales élevées dans le spectre de l’image de référence. Ce remplacement de valeurs de pixels est donc un filtrage passe-bas appliqués aux pixels de l’image de référence. Le spectre de l’image modifiée comprend donc moins de composantes en des fréquences élevées que le spectre de l’image de référence, avant le traitement de peinture. Un tel filtrage passe-bas peut typiquement être obtenu en calculant la moyenne de valeurs de pixels de l’arrière-plan connexes à des pixels des éléments graphiques synthétiques. Supposons par exemple que l’image de référence contienne des éléments graphiques synthétiques en noir, et que l’arrière-plan soit blanc, comme c’est le cas de l’image de la figure 5. Dans ce cas, le traitement de peinture peut remplacer les pixels noirs des éléments graphiques synthétiques par des pixels blancs, ce qui permet d’obtenir une image d’arrière-plan entièrement blanche. Prenons comme autre exemple une autre image contenant des éléments graphiques synthétiques de type caractère ayant une couleur blanche avec des contours noirs, superposés à un arrière-plan d’origine photographique dans des nuances de gris, comme par exemple l’image de la figure 1. Dans ce cas, le traitement de peinture peut remplacer les pixels blancs et noirs des éléments graphiques synthétiques de type caractère par la moyenne de valeurs de pixels de l’arrière-plan. L’image modifiée résultant du traitement de peinture est ensuite compressée par le processeur 2 selon une méthode connue de l’état de la technique, par exemple la méthode HEVC (étape 106). Cette compression 106 est indépendante des étapes de génération des descripteurs associés aux éléments graphiques synthétiques. La compression 106 peut être effectué en parallèle de l’étape 102, avant celle-ci ou après celle-ci. En définitive, les éléments graphiques synthétiques de l’image de référence et l’arrière-plan de l’image de référence sont compressés séparément dans les étapes 102 et 106. La séquence d’images reçue contient par ailleurs une deuxième image, qui est postérieure à l’image de référence dans la séquence. La deuxième image peut suivre immédiatement l’image de référence dans la séquence, ou pas. On a représenté en figure 6 un exemple de deuxième image. Le contenu de cette deuxième image a varié par rapport à l’image de référence. Par exemple, l’élément graphique « A » discuté précédemment n’occupe plus tout à fait la même place. Certains éléments graphiques synthétiques se sont substitués à d’autres. Certains éléments graphiques ont disparu, et d’autres sont apparus (par exemple le caractère K). Le processeur 2 met en œuvre des étapes 200, 202, 204, 206 qui sont respectivement identiques aux étapes 100, 102, 104, et 106 décrites précédemment, mais appliquées à la deuxième image. En particulier, est obtenue à l’issue de l’étape 202 une pluralité de nouveaux descripteurs de type « intra », de même format que les descripteurs de type « intra » générés pour l’image de référence, mais contenant des valeurs potentiellement différentes. Le tableau formé par la pluralité de nouveaux descripteurs de type « intra » générés pour l’exemple de deuxième image de la figure 6 est le suivant. Ligne Caractère v h p 1 A 30 28 0 2 B 30 36 0 3 C 30 44 0 4 5 30 52 0 5 L 30 82 0 6 F 30 100 0 7 G 30 108 0 8 H 30 116 0 9 1 40 20 0 10 2 40 28 0 11 6 40 36 0 12 4 40 44 0 13 D 40 52 0 14 Z 70 20 0 15 Y 70 28 0 16 X 70 36 0 17 W 70 44 0 18 K 80 68 0 Par exemple, il a été indiqué précédemment que le caractère A a changé de position dans la deuxième image représentée en figure 6, comparativement à l’image de référence représentée en figure 5. Ce changement de position se matérialise par un nouveau descripteur de type « intra » généré pour la deuxième image, et contenant des données de positions différentes de celles consignées dans le descripteur de type « intra » se rapportant à A et généré pour l’image de référence (ici, la position horizontale h est passée de 20 à 28). En revanche, le caractère A n’a pas changé de police ; le code de police p est donc le même que les deux descripteurs se rapportant au caractère A de l’image de référence et de la deuxième image, respectivement. Toutefois, la compression des éléments graphiques synthétiques de la deuxième image n’est pas encore terminée à ce stade, à la différence de ce qui a été effectué pour l’image de référence. Le processeur 2 détermine un évènement ayant induit une potentielle variation de paramètres d’affichage d’un élément graphique synthétique entre l’image de référence et la deuxième image (étape 208). Le processeur 2 génère un deuxième descripteur associé à la deuxième image, comprenant un code d’évènement indicatif de l’évènement déterminé, et que l’on appellera dans la suite descripteur de type « inter » (étape 210). Le processeur 2 répète ces deux étapes 208, 210 pour chaque élément graphique trouvé dans l’image de référence ou dans la deuxième image (donc référencé dans un descripteur de type « intra » généré pour l’image de référence ou pour la deuxième image, à l’issue des étapes 102 et/ou 202). Est ainsi obtenu une pluralité de descripteurs de type « inter », se rapportant chacun à un élément graphique synthétique de l’image de référence ou de la deuxième image. La pluralité de descripteurs de type « inter » forme un tableau, chaque descripteur étant une ligne du tableau. Une fois que tous les descripteurs de type « inter » ont été générés, les descripteurs « intra » pour la deuxième image peuvent être supprimés de la mémoire 4. Un descripteur de type « inter » n’a pas le même format que qu’un descripteur de type « intra ». Comme indiqué précédemment, un descripteur de type « intra » contient des paramètres d’affichage qui se suffisent à eux-mêmes pour permettre de tracer un éléments graphique synthétique. Un descripteur de type « inter » indique quant à lui ce qui a potentiellement changé par rapport à un descripteur de type « intra », ce qui permet au descripteur de type « inter » d’être beaucoup moins volumineux qu’un descripteur « intra » pour différents types d’évènements qui seront détaillés plus loin. Un descripteur de type « inter » peut comprendre un renvoi vers l’image de référence, permettant de localiser la première image dans la séquence d’image. Ce renvoi se présente par exemple sous la forme d’un écart de position entre la première image et la deuxième image dans la séquence d’images. Par exemple, dans le cas où la deuxième image suit immédiatement la première image dans la séquence, cet écart vaut 1. Dans le cas où il existe une ou plusieurs images intermédiaires entre la première image et la deuxième image, cet écart serait un entier strictement supérieur à 1. Ceci signifie alors qu’on a conservé le tableau des descripteurs intra de la première image comme référence pour la deuxième image plutôt que de choisir le tableau de descripteurs intra de l’une des images intermédiaires. L’inclusion d’un tel renvoi dans un descripteur de type « inter » reste toutefois facultatif. En effet, il peut être envisagé qu’un descripteur de type « inter » renvoie implicitement à l’image qui précède immédiatement la deuxième image dans la séquence d’image. Alternativement ou en complément, il peut encore être prévu d’inclure dans un descripteur de type « inter » un renvoi à la première image seulement dans le cas où la première image ne précède pas immédiatement la deuxième image dans la séquence d’images. Un descripteur de type « inter » peut en outre comprendre un renvoi vers un descripteur de type « intra »de l’image de référence. Ce renvoi peut désigner le numéro de la ligne du descripteur dans le tableau de descripteurs généré pour l’image de référence, lorsque le descripteur « inter » modifie le descripteur « intra » qui y est référencé. Toutefois, là encore, un renvoi vers un descripteur de type « intra » n’est pas obligatoire dans un descripteur de type « inter ». Il peut en effet être fait en sorte que le descripteur de type « inter » occupe la même ligne de tableau que le descripteur de type « intra » qu’il modifie. Dans ce cas, ce sont les positions des descripteurs dans leurs tableaux respectifs qui permet de déduire implicitement la correspondance logique de l’un vers l’autre. En définitive, il existe toujours un lien logique depuis un descripteur « inter » vers un descripteur « intra », mais ce lien logique peut être explicite ou implicite dans le descripteur « inter ». Outre le code d’évènement (et les éventuels renvois vers une image et/ou un descripteur susmentionnés), un descripteur de type « intra » peut comprendre des données supplémentaires, qui dépendent de l’évènement déterminé. Est représenté ci-dessous un tableau de descripteurs de type « inter » obtenu pour la deuxième image de la figure 6. Ligne Code d’évènement Données supplémentaires 1 Displaced δx=8, δy=0 2 Displaced δx=8, δy=0 3 Displaced δx=8, δy=0 4 SKIP - 5 Changed Code=5 6 NEW Code=L, v=80, h=68, p=0 7 Unchanged - 8 Unchanged - 9 Unchanged - 10 Unchanged - 11 Unchanged - 12 Changed Code=6 13 Unchanged - 14 Changed Code=D 15 Unchanged - 16 Unchanged - 17 Unchanged - 18 Unchanged - 19 NEW Code=K, v=80, h=68, Police=0 On va à présenter détailler différents types d’évènements déterminables, et le contenu du descripteur de type « inter » généré dans chacun de ces cas. Absence de changement d’un élément graphique synthétique Prenons le cas d’un élément graphique qui a été trouvé dans la première image en une position donnée. Lorsqu’il est déterminé que la deuxième image montre le premier élément graphique, de manière inchangée par rapport à la première image (c’est-à-dire à la même position et avec strictement le même rendu), le code d’évènement inclus dans le descripteur de type « inter » a une valeur « Unchanged » indicative d’une absence de changement du premier élément graphique entre la première image et la deuxième image. Pour détecter ce cas, le processeur 2 peut tout simplement identifier que les deux tableaux de descripteurs de type « intra » générés respectivement pour la première image et pour la deuxième image contiennent un même descripteur identique. Déplacement d’élément graphique synthétique Dans un autre cas, un élément graphique synthétique a été trouvé par le processeur 2 dans la première image à une certaine position, et a également été trouvé par le processeur 2 dans la deuxième image, mais à une position différente (les paramètres d’affichages de cet élément graphique synthétique autres que sa position étant par ailleurs identiques dans la première image et dans la deuxième image). Pour détecter ce cas de déplacement, le processeur 2 peut identifier que les deux tableaux de descripteurs de type « intra » générés respectivement pour la première image et pour la deuxième image contiennent deux descripteurs qui ne diffèrent l’un de l’autre que par leurs données de position. Ce cas s’applique notamment au caractère A représenté dans les deux images d’exemple des figures 5 et 6. Dans ce cas de déplacement, le descripteur de type « inter » généré comprend des données de positionnement permettant, seules ou en combinaison avec le descripteur « intra » auquel il se réfère, de déterminer une position de l’élément graphique synthétique dans la deuxième image. Ces données de positionnement comprennent typiquement un vecteur de déplacement entre la position de l’élément graphique synthétique dans la première image et la position de l’élément graphique dans la deuxième image. Le vecteur de déplacement comprend typiquement une composante horizontale δx, et une composante verticale δy. Ce vecteur de déplacement est calculé comme une différence entre la position entre l’élément graphique dans la première image et la position de l’élément graphique dans la deuxième image. De préférence, le descripteur de type « inter » n’est rempli avec le code de déplacement « Displaced » (et les données associées susmentionnées) qu’à condition que le déplacement de l’élément graphique soit inférieur à un seuil prédéfini. Dans le cas contraire, un autre code d’évènement est utilisé (voir les autres cas exposés ci-dessous). Disparition d’élément graphique synthétique Considérons à présent le cas où le processeur 2 détermine que la deuxième image ne montre plus un élément graphique synthétique qui était montré dans la première image. Pour détecter ce cas, le processeur 2 identifie que la pluralité de descripteurs de type « intra » générés pour la deuxième image contient un descripteur pour un élément graphique synthétique, mais que la pluralité de descripteurs de type « intra » générés pour la première image ne contient pas un tel descripteur. Dans ce cas, le code d’évènement a une valeur SKIP indicative d’une disparition du premier élément graphique synthétique. On a vu précédemment que le code d’évènement « Displaced » indicatif d’un déplacement d’élément graphique synthétique est utilisée à condition que le déplacement subi par un élément graphique entre la première image et la deuxième image est inférieur à un seuil prédéterminé. Lorsque cette condition n’est pas remplie, un descripteur de type « inter » se rapportant à l’élément graphique disparu est généré avec le code SKIP. Changement d’élément graphique synthétique à la même position Considérons à présent le cas où le processeur 2 détermine que la première image et la deuxième image montrent respectivement deux éléments graphiques synthétiques différents à la même position. Cette différence peut être de nature diverse. Il peut s’agir notamment d’une différence de forme et/ou de couleur. Dans le cas de caractères, un caractère peut s’être substitué à un autre caractère, entre la première image et la deuxième image. En pratique, le processeur 2 détecte ce cas lorsqu’il constate qu’une même position est référencée dans un descripteur de type « intra » généré pour la première image et aussi dans un nouveau descripteur de type « intra » généré pour la deuxième image, mais que ces deux descripteurs ont au moins un paramètre dont les valeurs diffèrent (autre que la position). Lors d’une telle détection, le processeur 2 inclut dans le deuxième descripteur un code d’évènement « Changed » ayant une valeur indicative d’un changement du premier élément graphique synthétique entre la première image et la deuxième image. Dans ce cas, le deuxième descripteur comprend également des données qui caractérisent ce changement. Si le premier descripteur et le nouveau descripteur comprenant la même position comprennent d’autres paramètres d’affichage inchangés, ceux-ci ne sont pas inclus dans le deuxième descripteur. Autrement dit, seul les paramètres d’affichages modifiés entre la première image et la deuxième image sont inclus dans le deuxième descripteur. Par exemple, l’exemple de première image représenté en figure 5 montre le caractère E à la position (v=30, h=52), alors que l’exemple de deuxième image représenté en figure 6 montre le caractère 5 en cette même position. Les deux caractères E et 5 sont représentés dans la même police. Le code de police p de valeur zéro étant déjà présent dans le descripteur de type « intra » associé au caractère E, il n’est pas nécessaire de le répéter dans le descripteur de type « inter » associé au caractère 5. Le même cas de changement s’applique au caractère 3 de la première image, remplacé par le caractère 6 dans la deuxième image. Apparition d’un nouvel élément graphique Dans un autre cas, le processeur 2 peut détecter qu’un élément graphique est présent dans la deuxième image mais pas la première image. Dans ce cas, il est généré un descripteur « inter » comprenant un code d’évènement ayant une valeur NEW indicative d’une apparition d’un nouvel élément graphique synthétique. Sont associés à ce code les mêmes paramètres d’affichage que l’on trouve dans les descripteurs « intra » décrits précédemment, qui sont auto-suffisants pour tracer les éléments graphiques concernés par ces descripteurs. A titre illustratif, les caractères K, L qui apparaissent dans l’exemple de deuxième image de la figure 6 sont chacun codés en tant que nouveaux caractères, à l’aide du code « NEW ». On a vu précédemment que le code d’évènement « Displaced » indicatif d’un déplacement d’élément graphique synthétique est utilisée à condition que le déplacement subi par un élément graphique entre la première image et la deuxième image est inférieur à un seuil prédéterminé. Lorsque cette condition n’est pas remplie, un descripteur de type « inter » se rapportant à l’élément graphique apparu est généré avec le code NEW. Pour résumer les évènements identifiés au cours de l’étape 208 sont les suivants : apparition, disparition, changement à la même place, déplacement, absence de changement. Le code d’évènement d’un descripteur de type « inter » peut donc être codé seulement sur 3 bits. Alignement des descripteurs « intra » et « inter » Dans le tableau ci-dessous, on a représenté côte-à-côte : les descripteurs intra » générés pour la première image, les descripteurs « intra » générés pour la deuxième image en répétant les mêmes étapes, et les descripteurs « inter » générés pour la deuxième image. Première image Descripteurs « intra » Deuxième image Descripteurs « intra » Deuxième image Descripteurs « inter » Carac. v h p Carac. v h p Code d’ Évènement Données supplémentaires A 30 20 0 A 30 28 0 Displaced δx=8, δy=0 B 30 28 0 B 30 36 0 Displaced δx=8, δy=0 C 30 36 0 C 30 44 0 Displaced δx=8, δy=0 D 30 44 0 SKIP - E 30 52 0 5 30 52 0 Changed Code=5 L 30 88 0 NEW Code=L, v=80, h=68, p=0 F 30 100 0 F 30 100 0 Unchanged - G 30 108 0 G 30 108 0 Unchanged - H 30 116 0 H 30 116 0 Unchanged - 1 40 20 0 1 40 20 0 Unchanged - 2 40 28 0 2 40 28 0 Unchanged - 3 40 36 0 6 40 36 0 Changed Code=6 4 40 44 0 4 40 44 0 Unchanged - 5 40 52 0 D 40 52 0 Changed Code=D Z 70 20 0 Z 70 20 0 Unchanged - Y 70 28 0 Y 70 28 0 Unchanged - X 70 36 0 X 70 36 0 Unchanged - W 70 44 0 W 70 44 0 Unchanged - K 80 68 0 NEW Code=K, v=80, h=68, p=0 Comme on peut le constater à la lecture du tableau 4 ci-dessus, les descripteurs « inter » avec les codes d’évènement SKIP et/ou NEW sont utilisés de telle sorte que les autres descripteurs « inter » se trouvent alignés avec les descripteurs intra auxquels ils se réfèrent, ce qui permet, comme indiqué plus haut, de ne pas forcément inclure de référencement de descripteur explicite dans les descripteurs « inter ». Se trouve en annexe, à la fin de la présente description, un exemple de de pseudo-code pour implémenter le procédé de compression. Voici la signification de différentes variables utilisées dans ce pseudo-code : ref et cur : Tableaux comportant NL lignes. Chaque ligne stockant [Position horizontale, Position verticale, code caractère, couleur] Δ_x_allowed : Seuil de déplacement maximum horizontal Δ_y_allowed : Seuil de déplacement maximum vertical Evènement NEW : code 001 & position & code caractère Evènement CHANGED : code 011 & code caractère Evènement UNCHANGED : code 1 Evènement SKIP : code 000 Evènement DISPLACED : code 010 & (displacement_x ou displacement_y) Itération du codage « inter » Dans la description qui précède, il a été supposé qu’un descripteur de type « inter » généré pour la deuxième image au cours de l’étape 210 renvoie à un descripteur de type « intra » de la première image, c’est-à-dire un descripteur comprenant des paramètres d’affichage autosuffisants pour permettre une restitution de l’élément graphique correspondant tel que montré dans l’image de référence. Toutefois, ceci n’est pas du tout obligatoire : un descripteur de type « inter » peut renvoyer à un autre descripteur de type « inter ». Les étapes 200, 202, 208, 210 peuvent en effet être répétées sur une troisième image, et en prenant cette fois la deuxième image comme image de référence. Au cours de l’étape 210 mise en œuvre sur la troisième image, il est généré un descripteur de type « inter » qui renvoie à un descripteur « inter » généré pour la deuxième image, lequel renvoie lui-même à un descripteur « intra » généré pour la première image. Le processeur 2 traite finalement la vidéo en répétant itérativement le traitement décrit ci-dessus image par image. Il génère donc à la suite du descripteur « intra » initial, une séquence chronologique de descripteurs « inter » qui modifient successivement les éléments synthétiques le cas échéant, à tour de rôle. Cette itération crée alors une chaîne de tableaux « inter » référencés du dernier vers le tableau intra d’origine. Cette chaîne peut présenter plusieurs branches lorsque le renvoi se fait vers un tableau antérieur à celui de l’image précédente. À tout moment, le processeur 2 peut aussi choisir de « rafraichir » l’image, c’est-à-dire de transmettre un nouveau descripteur « intra » qui sert de nouvelle référence aux descripteurs « inter » ultérieurs. A titre d’exemple illustratif de ce chaînage, on a représenté en figure 7 des descripteurs D1 à D7 générés pour différentes images d’une même séquence d’images, et se rapportant tous au même élément graphique synthétique. Le descripteur D1 est un descripteur de type « intra ». Le descripteur D2 est un descripteur de type « inter » qui renvoie vers le descripteur D1 et qui comprend le code d’évènement « Displaced » pour indiquer que l’élément graphique synthétique s’est déplacé, par rapport à la position renseignée dans le descripteur D1. Le descripteur D3 est un descripteur de type « inter » qui renvoie vers le descripteur 2, et qui signale une absence de changement de l’élément graphique (via le code d’évènement « Unchanged »). Le descripteur D4 est un descripteur de type « inter » qui renvoie également vers le descripteur D2 et qui comprend encore le code d’évènement « Displaced » pour indiquer que l’élément graphique s’est encore déplacé, par rapport à ce qui est renseigné dans le descripteur D2. Le descripteur D6 est un descripteur de type « inter » qui signale la disparition de l’élément graphique synthétique via le code d’évènement SKIP. Le descripteur D1 est un descripteur de type « intra » pour un élément graphique synthétique à la même position que celle visée par les descripteurs D1 à D6. L’intérêt du mécanisme de compression augmente lorsqu’on envoie une majorité de tableaux inter et une minorité de tableaux intra, car le gain de compression global de la vidéo est alors accru. Décompression Les données compressées par le dispositif de traitement 1 peuvent être décompressées par ce même dispositif 1 ou un dispositif du même type en vue d’obtenir une séquence d’image conforme à la séquence originale. Ce procédé de décompression comprend des étapes symétriques à celles mises en œuvre au cours du procédé de compression décrit ci-avant. Tout d’abord, le récepteur identifie de façon univoque la séquence chronologique des images et des tableaux de descripteurs associés à chacune. En particulier, pour restituer un élément graphique de l’image courante (à afficher) et décrit dans un descripteur de type « inter », le processeur identifie le descripteur de type « intra » initial auquel se réfèrent la chaîne antérieure de descripteurs de type « inter » qui aboutit à l’image courante, et utilise les paramètres d’affichage consignés dans ce descripteur de type « intra », modifiés par la séquence des éventuelles informations additionnelles consignées dans les descripteurs de type « inter » constituant cette chaîne. Autres variantes de réalisation Il est entendu que le procédé décrit ci-dessus est applicable à tout type d’élément graphique synthétique, d’origine non photographique, et pas seulement à des caractères. Par exemple, les paramètres d’affichage qui peuvent être générés pour un cercle comprennent une position, un rayon, et le cas échéant d’autres paramètres optionnels (épaisseur de trait, couleur de trait). Ce principe est bien entendu généralisable à d’autres formes géométriques. Dans ce qui précède, il a été présenté un mode de réalisation dans lequel tous les descripteurs de type « inter » générés pour la deuxième image se réfèrent à des descripteurs de type « intra » générés pour la même image, à savoir la première image. Il est possible que des groupes de descripteurs de type « inter » générés pour une même image modifient des descripteurs décrivant des images différentes les unes des autres. Dans ce cas, chaque descripteur de type « inter » doit contenir une référence d’image explicite. Annexe : Exemple de pseudo-code pour implémenter le procédé de compression LI_R = 0 LI_C = 0 counter_movement_block_H = 0 counter_movement_block_W = 0 while LI_R c_letter = cur(LI_C) r_letter = ref(LI_R) if r_letter.position c_letter.position if r_letter.label = c_letter.label // Unchanged bitstream = write1bit(1) else // Changed bitstream = write3bit(011) bitstream = write6bit(c_letter.label) LI_C = LI_C + 1 LI_R = LI_R + 1 elseif r_letter.x c_letter.x and |r_letter.y − c_letter.y| ∈ [0, Δ_y_allowed] and r_letter.label = c_letter.label // Displaced Y displacement_y = r_letter.y − c_letter.y) LI_C = LI_C + 1 LI_R = LI_R + 1 bitstream = write3bit(010) bitstream = write6bit(displacement_y - 1) elseif r_letter.y c_letter.y and |r_letter.x − c_letter.x| ∈ [0, Δ_x_allowed] and r_letter.label = c_letter.label // Displaced X displacement_x = r_letter.y − c_letter.y LI_C = LI_C + 1 LI_R = LI_R + 1 bitstream = write3bit(010) bitstream = write6bit(displacement_x - 1) elseif |r_letter.x − c_letter.x| > Δ_x_allowed or |r_letter.y − c_letter.y| > Δ_y_allowed and r_letter.label! = c_letter.label while |r_letter.x − c_letter.x| > Δ_x_allowed or |r_letter.y − c_letter.y| > Δ_y_allowed and r_letter.label! = c_letter.label // New bitstream = write3bit(001) bitstream = write11bit(c_letter.x) bitstream = write11bit(c_letter.y) bitstream = write6bit(c_letter.label) LI_C = LI_C + 1 else // Skip bitstream = write3bit(000) LI_R = LI_R + 1 Procédé de compression d’une séquence d’images comprenant une première image et une deuxième image, le procédé comprenant des étapes de : - génération (102) d’un premier descripteur comprenant des paramètres d’affichage d’un élément graphique synthétique dans la première image, l’élément graphique synthétique étant d’origine non photographique, et les paramètres d’affichage ne comprenant pas de valeurs de pixels, - traitement de la deuxième image, de sorte à déterminer (208) un évènement ayant induit une potentielle variation de paramètres d’affichage de l’élément graphique synthétique entre la première image et la deuxième image, - génération (210) d’un deuxième descripteur comprenant un code d’évènement indicatif de l’évènement déterminé. Procédé selon la revendication précédente, dans lequel : - lorsqu’il est déterminé que la deuxième image ne montre pas l’élément graphique synthétique, le code d’évènement a une valeur indicative d’une disparition d’élément graphique synthétique. Procédé selon l’une des revendications précédentes, dans lequel : - lorsqu’il est déterminé que la deuxième image montre l’élément graphique synthétique déplacé par rapport à la première image, le code d’évènement a une valeur indicative d’un déplacement d’élément graphique synthétique. Procédé selon la revendication précédente, dans lequel le deuxième descripteur comprend des données de positionnement permettant, seules ou en combinaison avec le premier descripteur, de déterminer une position de l’élément graphique synthétique dans la deuxième image. Procédé selon la revendication précédente, dans lequel les données de positionnement comprennent un vecteur de déplacement entre une position de l’élément graphique synthétique dans la première image et une position de l’élément graphique synthétique dans la deuxième image. Procédé selon l’une des revendications 3 à 5, comprenant une comparaison entre, d’une part, le déplacement de l’élément graphique synthétique entre la première image et la deuxième image, et, d’autre part, un seuil prédéfini, et dans lequel le code d’évènement a la valeur indicative d’un déplacement seulement si ledit déplacement de l’élément graphique synthétique est inférieur au seuil prédéfini. Procédé selon l’une des revendications précédentes, dans lequel : - lorsqu’il est déterminé que la deuxième image montre un élément graphique qui est différent de l’élément graphique synthétique montré dans la première image, mais qui occupe la même position, le code d’évènement a une valeur indicative d’un changement d’élément graphique synthétique, et le deuxième descripteur comprend des données caractérisant ce changement. Procédé selon l’une des revendications précédentes, dans lequel : - lorsqu’il est déterminé que la deuxième image montre l’élément graphique de manière inchangée par rapport à la première image, le code d’évènement a une valeur indicative d’une absence de changement d’élément graphique. Procédé selon l’une des revendications précédentes, dans lequel les paramètres d’affichage sont autosuffisants pour permettre une restitution de l’élément graphique synthétique tel que montré dans la première image sur la base desdits paramètres d’affichage. Procédé selon l’une des revendications 1 à 8, dans lequel la séquence d’image comprend par ailleurs une image antérieure à la première image, et dans lequel le premier descripteur comprend un code d’évènement indicatif d’un évènement ayant induit une potentielle variation de paramètres d’affichage de l’élément graphique synthétique entre l’image antérieure et la première image. Procédé selon l’une des revendications précédentes, comprenant en outre les étapes suivantes : - lorsqu’il est déterminé que la première image ou que la deuxième image montre un arrière-plan sur lequel est superposé un élément graphique synthétique, modification de l’image de sorte à obtenir une image d’arrière-plan, la modification comprenant un filtrage passe-bas appliqué à des valeurs de pixels de l’image montrant l’élément graphique synthétique, - compression de l’image d’arrière-plan de manière indépendante des étapes de génération du premier descripteur et du deuxième descripteur. Procédé selon l’une des revendications précédentes, dans lequel l’étape de traitement est restreinte à une portion de la deuxième image. Procédé selon l’une des revendications précédentes, dans lequel l’étape de traitement est mise en œuvre par un réseau de neurones convolutif. Procédé selon l’une des revendications précédentes, dans lequel le premier élément synthétique est un caractère, un polygone, un menu, une grille, ou une partie d’un menu ou d’une grille, et/ou dans lequel l’arrière-plan est d’origine photographique. Procédé selon l’une des revendications précédentes, dans lequel, lorsque l’élément graphique synthétique est un caractère, le premier descripteur comprend un code propre au caractère, et optionnellement un code renseignant sur une police dans laquelle le caractère est montré dans la deuxième image et/ou un code renseignant sur une couleur du caractère dans la deuxième image. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l’une des revendications précédentes, lorsque ce programme est exécuté par un ordinateur. Mémoire (4) lisible par ordinateur stockant des instructions exécutables par l’ordinateur pour l’exécution des étapes du procédé selon l’une des revendications 1 à 15.