Brevet FR3139260A1 — publié le 20240301

Il est proposé un procédé de traitement d’au moins une zone d’image décodée, le procédé comportant : - en sortie d’une boucle de décodage ayant décodé au moins une zone d’image courante, un traitement de la zone d’image courante décodée, à l’aide d’un module de lissage de frontière utilisant des métadonnées relatives au moins à une frontière entre la zone d’image courante et une zone d’image voisine. Figure de l’abrégé : Figure 5 Lissage hors boucle de codage d’une frontière entre deux zones d’image La présente divulgation relève du domaine de la compression vidéo. Plus particulièrement, la présente divulgation porte sur un procédé de traitement d’au moins une zone d’image décodée, un programme informatique, un support d’enregistrement, un signal numérique, et un circuit de traitement de données. Les schémas de compression vidéo standardisés sont basés sur les mêmes principes depuis la première génération de standard MPEG, le MPEG-2. Dans l’ordre chronologique, les standards suivants sont H.264/AVC (2003), HEVC (2013) et VVC (2020). Les schémas de codage AOM, VP9 et AV1 suivent aussi les mêmes concepts. Une séquence vidéo à encoder est divisée en images. Chaque image est divisée en blocs de taille fixe pouvant eux-mêmes être divisés par la suite. Pour une image donnée, un encodeur traite les blocs séquentiellement, depuis le bloc situé en haut à gauche de l’image jusqu’au bloc situé en bas à droite de l’image. L’encodeur génère, en sortie, un signal binaire comprenant, pour chaque image, le résultat du traitement séquentiel des blocs qui la compose. Le signal binaire renfermant la séquence vidéo ainsi compressée peut ensuite être diffusé et traité par un décodeur dont le fonctionnement, calqué sur celui de l’encodeur, considère les blocs séquentiellement afin de reconstituer la séquence vidéo initiale. Il est maintenant fait référence à la qui représente un exemple d’encodeur HEVC construit autour d’une boucle de codage configurée pour effectuer différents traitements d’un bloc d’une séquence vidéo source (100) fournie en entrée de l’encodeur. L’un de ces traitements est une prédiction du bloc fourni, à l’aide d’informations déjà encodées et décodées. La première image, dite « Intra », est codée à l’aide d’une prédiction spatiale (118) en utilisant uniquement des pixels reconstruits dans le voisinage du bloc en cours de traitement. Les images suivantes, dites « Inter », peuvent utiliser une prédiction spatiale et en addition une prédiction temporelle (116) qui exploite les images précédemment codées à l’aide d’une compensation de mouvement (114) signalée par un vecteur de mouvement et qui permet généralement une prédiction très efficace. Les images ainsi codées puis décodées et servant à l’encodage des images futures sont regroupées au sein d’une mémoire nommée « Decoded Picture Buffer » (DPB) (112). Un autre traitement effectué dans la boucle de codage est le codage de la différence entre le résultat de la prédiction et le bloc fourni en entrée, ou « résidus de pixels ». Ce codage est effectué après une étape de transformation et de quantification (104). L’étape de quantification est réalisée pour un paramètre de quantification (QP) donné associé à chaque bloc et signalé dans le flux binaire. Le QP représente un compromis entre la qualité d’image souhaitée après décodage et le degré de compression vidéo souhaité. Plus la valeur de QP est élevée, plus la quantité d’information relative aux résidus de pixels est faible dans la séquence vidéo encodée, et plus le degré de compression vidéo de la séquence vidéo encodée est élevé. A l’inverse, plus la valeur de QP est faible, plus la quantité d’information relative aux résidus de pixels est élevée, et meilleure est la qualité de reconstruction au niveau du décodeur recevant la séquence vidéo encodée. Une étape de quantification et de transformation inverse permet de reconstruire les résidus de pixels. D’autres traitements effectués dans la boucle de codage sont des filtrages successifs du bloc en cours de traitement par différents filtres. Le standard HEVC prévoit deux filtres nommés « Sample Adaptive Offset » (SAO) (108) et « Deblocking Filter » (110) et traduisibles en français par « décalage adaptatif d’échantillons » et « filtre anti-blocs ». Ces filtres modifient les pixels reconstruits du bloc en cours de traitement sans avoir d’impact sur la prédiction des blocs voisins au sein de la même image mais en impactant la prédiction des blocs futurs au sein d’images suivantes puisque les images dans le DPB sont celles post-filtrage. En addition de ces deux filtres, le standard VVC a introduit un filtre supplémentaire nommé « Adaptive Loop Filter » (ALF), traduisible en français par « filtre de boucle adaptatif ». Comme déjà expliqué, l’encodeur génère ainsi, en sortie, un signal binaire (124) comprenant, pour chaque image, le résultat du traitement séquentiel des blocs qui la compose. De façon transverse à ces traitements, divers découpages haut niveau des images ont été introduits dans les standards pour adresser différentes applications : par exemple des « Slices » et des « Tiles » selon le standard HEVC et des sous-images ou « SubPictures » selon le standard VVC. Ces exemples de découpages sont notamment décrits dans nplcit1. La représente un exemple de découpage d’une image (200) selon le standard VVC en Tiles (délimitées par des traits pleins épais) et en Slices (délimitées par des traits pointillés épais). Dans cet exemple, l’image est également divisible en blocs ou « CTU », marqués en traits fins. L’un des principaux usages des découpages haut niveau d’images concerne les applications mettant en jeu une grande quantité de pixels à coder. Il est possible de citer par exemple l’encodage de séquences vidéo à résolution d’image élevée (4K, 8K ou 16K par exemple), de séquences vidéo à fréquence d’image élevée (supérieure à 60 fps par exemple) ou encore de séquences vidéo à 360°, telles qu’utilisées par exemple pour des applications de réalité virtuelle. Les découpages haut niveau d’images, par exemple en Tiles, sont exploités en HEVC afin de permettre du parallélisme sur plusieurs cœurs d’encodage, par exemple en prévoyant de traiter une Tile par cœur d’encodage, et ainsi répondre à la quantité élevée de calculs requis avec des partages de données limités voir nuls entre les cœurs d’encodage. Le parallélisme peut mettre en œuvre plusieurs threads ou plusieurs cœurs d’un ou plusieurs circuits de traitement de données qui peuvent être par exemple des circuits CPU, ASIC ou FPGA. Généralement le flux vidéo ainsi compressé est décodé par un décodeur agissant sur un cœur de décodage unique et n’ayant pas connaissance du parallélisme mis en œuvre lors de l’encodage. Un décodage sur plusieurs cœurs de décodage est néanmoins aussi envisageable. Il est possible, dans le standard HEVC, de mettre en œuvre, dans la boucle de codage, des traitements permettant d’améliorer la qualité visuelle entre Tiles voisines, à savoir un partage d’informations entre les cœurs d’encodage pour les pixels aux frontières entre des Tiles et des traitements particuliers aux frontières au sein de chaque cœur d’encodage. En ce qui concerne les filtres, par exemple les filtres SAO et anti-blocs, des paramètres normatifs peuvent être prévus dans la séquence vidéo encodée, pour indiquer si ces filtres ont été ou non mis en œuvre dans la boucle de codage afin d’encoder une Slice ou une Tile donnée. Dans le standard HEVC, ces paramètres sont nommés « loop_filter_across_slice » et « loop_filter_across_tile ». La notion de Motion Constrained Tile Set (MCTS), qui se rapporte à ces modifications spécifiques, est décrite dans nplcit2. Le MCTS est un ensemble de mesures prises à l’encodeur pour rendre le codage / décodage de chaque tile indépendant du codage / décodage d'autres tiles. Il permet ainsi une parallélisation, au moins, des traitements de prédiction et de reconstruction. En complément, un paramètre nommé « loop_filter_across_tile » et pouvant prendre comme valeurs « 0 » ou « 1 » permet de signaler si la parallélisation peut être étendue aux traitements de filtrage des frontières (cas de la valeur « 0 »), ou si, au contraire, les traitements de filtrage des frontières nécessitent des données relatives au codage / décodage de tiles adjacentes (cas de la valeur « 1 »). Le standard VVC a par ailleurs introduit des sous-images nommées « sub-pictures » destinées à remplacer le MCTS. Ces sous-images sont conçues pour être respectivement traitées par un cœur d’encodage respectif de façon totalement indépendante. Plusieurs contributions telles que nplcit3 ont été réalisées par des acteurs de la standardisation pour aboutir à ce design dans le standard VVC. Quel que soit le découpage haut niveau considéré, il est souhaitable de pouvoir lisser, au niveau du décodeur, les frontières entre les Tiles, Slices, ou sous-images ayant été traitées par des cœurs d’encodage différents. En effet, une absence de lissage entraîne, post-décodage, une visibilité des frontières dérangeante visuellement. Avec l’architecture actuelle des standards de compression vidéo, il n’est possible d’appliquer un lissage de frontières au niveau du décodeur sans risque de dérives que si ce lissage a précédemment été appliqué au niveau de l’encodeur. Ainsi, le standard VVC prévoit, lorsqu’un lissage de frontières est appliqué au niveau de l’encodeur, de signaler dans le flux binaire, au moyen d’un paramètre nommé « sps_loop_filter_across_subpic_enabled_flag », que ce lissage de frontières est à appliquer à nouveau au niveau du décodeur. Par ailleurs, en considérant une frontière entre deux Tiles, Slices ou sous-images voisines dont l’encodage est effectué, pour l’une, par un premier cœur d’encodage et, pour l’autre, par un deuxième cœur d’encodage distinct, un lissage de la frontière ne peut être mis en œuvre au niveau de l’encodeur que sous réserve que des pixels soient transférés soit entre le premier et le deuxième cœur d’encodage, soit depuis le premier et le deuxième cœur d’encodage vers un troisième cœur d’encodage dédié à la mise en œuvre du lissage de la frontière. Il résulte de ce qui précède que, avec l’architecture actuelle des standards de compression vidéo et dans le cas où l’encodage est mis en œuvre par une parallélisation sur plusieurs cœurs d’encodage, appliquer un lissage de frontières induit des contraintes importantes au niveau de l’encodeur. Pour éviter ces contraintes, il peut être envisagé de signaler, dans le flux binaire, qu’un lissage de frontières est à effectuer au niveau du décodeur, sans toutefois appliquer ce lissage au niveau de l’encodeur. Un tel traitement est asymétrique, car il s’agit, pour décoder des sous-images, d'appliquer au niveau du décodeur un filtre anti-blocs aux frontières des sous-images, sans qu’un filtre anti-blocs correspondant ait également été appliqué aux frontières au niveau de l’encodeur pour coder ces mêmes sous-images. Un tel traitement asymétrique entre l’encodeur et le décodeur induit une dérive, qui est initialement faible et limitée aux pixels de part et d’autre de la frontière entre deux sous-images. Plus les prédictions inter se succèdent, plus la dérive augmente. Cette dérive peut être minimisée en interdisant l’activation, au niveau de l’encodeur comme du décodeur, des filtres SAO et ALF au niveau des CTU aux frontières. Néanmoins, même avec de telles dispositions, une telle dérive peut générer des artefacts visuels importants à l’issue du décodage. Pour illustrer cet aspect, une séquence de 60 images a été encodée avec le mode opératoire suivant. Chaque image a préalablement été divisée en deux moitiés séparées par une frontière verticale. Les moitiés d’image de gauche ont été encodées par un premier cœur d’encodage et en parallèle les moitiés d’image de droite ont été encodées par un second cœur d’encodage distinct. Aucune communication n’a été mise en place entre les deux cœurs d’encodage et aucun filtre anti-blocs n’a été mis en œuvre au niveau de l’encodeur. La représente la vingtième image (300), la quarantième image (302) et la soixantième image (304) de la séquence d’images, telles qu’obtenues après décodage, agrégation des moitiés d’image décodées et mise en œuvre d’un filtre anti-blocs au niveau du décodeur uniquement, dans la boucle de décodage. La dérive apparaît très significative dès la quarantième image et continue ensuite à s’accroître jusqu’à affecter environ les trois-quarts de la soixantième image. Dans un objectif de conserver les traitements à l’encodeur et au décodeur, une solution a par ailleurs été proposée dans nplcit4 pour permettre le filtrage sans impacter le décodage du fait des attentes de résultats précédents. Cette approche est néanmoins coûteuse en temps de calcul. Enfin, des travaux reliés nplcit5 et nplcit6 ont eu lieu dans le cadre de la norme de compression d’image JPEG 2000. Les auteurs y introduisent la notion de « detiling », qui implique, au niveau de l’encodeur, de décomposer en ondelettes les signaux numériques correspondant à des regroupements (en Tiles) de CTU à encoder. Les auteurs prévoient également d’appliquer un filtrage au niveau de l’encodeur dans le domaine transformé en ondelettes. Résumé La présente divulgation vient améliorer la situation. Il est proposé un procédé de traitement d’au moins une zone d’image décodée, le procédé comportant : - en sortie d’une boucle de décodage ayant décodé au moins une zone d’image courante, un traitement de la zone d’image courante décodée à l’aide d’un module de lissage de frontière utilisant des métadonnées relatives au moins à une frontière entre la zone d’image courante et une zone d’image voisine. Par « zone d’image » il est entendu toute aire, délimitée par une ligne fermée, au sein d’une image. Lorsque deux lignes fermées délimitant chacune une zone d’image ont une portion commune, cette portion commune forme une frontière entre ces zones d’image qui sont alors dites voisines. Par « boucle de décodage » il est entendu un ensemble d’instructions logiques permettant, au moins, de : - recevoir, en entrée, un extrait de signal numérique relatif à la zone d’image courante, sous forme encodée, - décoder l’extrait de signal numérique à partir, au moins, d’informations déjà décodées par la boucle de décodage, ces informations déjà décodées pouvant par exemple être relatives à une ou plusieurs autres zones de la même image et/ou à une ou plusieurs autres images, - fournir, en sortie, l’extrait de signal numérique sous forme décodée, également appelé « zone d’image courante décodée », et - mémoriser la zone d’image courante décodée en tant qu’informations déjà décodées utilisables pour prédire des zones d’image relatives à des images futures. Par « métadonnées », il est entendu des données numériques associées à la frontière entre la zone d’image courante et une zone d’image voisine. Les métadonnées sont utilisées, au moins, pour le traitement mis en œuvre par le module de lissage de frontière. Il est entendu que, selon le procédé proposé, le traitement à l’aide du module de lissage de frontière est effectué en dehors de la boucle de décodage, et qu’à ce titre le résultat de ce traitement n’impacte aucun décodage futur de zones d’image par la boucle de décodage. Ainsi, le procédé proposé permet d’effectuer un lissage de frontière post-décodage tout en conservant une symétrie de traitements au niveau de l’encodeur et du décodeur. Le procédé proposé procure donc une moindre visibilité des frontières sans pour autant générer d’artefacts visuels, d’où un confort de visionnage accru pour un spectateur. En outre, l’implémentation du procédé proposé en sortie de la boucle de décodage ne nécessite aucune modification des algorithmes ou dispositifs de codage existants. En particulier, le procédé proposé est pleinement compatible avec des encodeurs mettant en œuvre des techniques de parallélisation au moyen d’une pluralité de cœurs d’encodage, un cœur d’encodage étant chargé de l’encodage d’une zone d’image parmi un ensemble de zones d’image résultant d’un partitionnement haut niveau d’une image. Dans certains exemples, la zone d’image courante décodée comprend une région en bordure correspondant à la frontière et une région distante de la frontière et le traitement de la zone d’image courante décodée comprend un traitement de la région en bordure et ne comprend pas de traitement de la région distante de la frontière. Ainsi, le traitement d’une image obtenue par agrégation de zones d’image en sortie du décodeur peut être limité à des régions situées aux frontières entre les zones d’image, et sans impacter l’image dans son ensemble. En d’autres termes, il est possible de mettre en œuvre un traitement différencié par régions de zones d’image. Dans certains exemples, le procédé comporte en outre un contrôle du traitement de la zone d’image courante à l’aide d’un contrôleur utilisant des premières données relatives à un décodage de la zone d’image courante et des deuxièmes données relatives à un décodage d’une zone d’image voisine. Un tel contrôleur permet d’affiner le traitement mis en œuvre par le module de lissage de frontière et permet en particulier de prendre en compte d’éventuelles différences entre les données relatives au décodage de part et d’autre de la frontière, par exemple d’éventuelles différences entre les paramètres de quantification (QP) associés à la zone d’image courante et à la zone d’image voisine. Il est également proposé un programme informatique comportant des instructions pour la mise en œuvre du procédé ci-avant lorsque ce programme est exécuté par un processeur. Il est également proposé un support d’enregistrement non transitoire lisible par un ordinateur sur lequel est enregistré un programme pour la mise en œuvre du procédé ci-avant lorsque ce programme est exécuté par un processeur. Il est également proposé un signal numérique comprenant au moins une zone d’image courante encodée et des métadonnées relatives au moins à une frontière entre la zone d’image courante et une zone d’image voisine. Le signal numérique est un signal pouvant notamment être transporté à travers un canal de communication, stocké sur une mémoire, ou encore lu par un processeur. La zone d’image courante encodée est décodable par un décodeur adapté. Les métadonnées peuvent être utilisées pour traiter la zone d’image courante décodée, au moins au niveau de la frontière précitée. Dans certains exemples, les métadonnées sont relatives à au moins un aspect d’un lissage à appliquer au niveau de la frontière. Comme exemples d’aspects d’un lissage à appliquer au niveau de la frontière, il peut être cité : - une activation du lissage, ou - un réglage d’une force de lissage, ou - un choix d’une fonction de lissage parmi un ensemble de fonctions de lissage prédéterminées. De manière générale, les aspects considérés peuvent concerner une délimitation d’une ou plusieurs régions d’image où mettre en œuvre le lissage et/ou une manière de mettre en œuvre le lissage dans une ou plusieurs régions parmi les régions délimitées. Il est également proposé un circuit de traitement de données comprenant : - une interface d’entrée configurée pour recevoir le signal numérique précité, et - au moins une interface de sortie configurée pour fournir la zone d’image courante encodée en entrée d’une boucle de décodage, et fournir les métadonnées à un module de traitement prévu en sortie de la boucle de décodage. Le circuit de traitement de données peut indifféremment être intégré dans un dispositif unique ou être formé de modules physiques répartis dans une pluralité de dispositifs placés dans un réseau de communication. La boucle de décodage peut faire ou non partie du circuit de traitement de données, de même pour le module de traitement. Le module de traitement est configuré au moins pour traiter les métadonnées, c’est-à-dire par exemple les lire, les stocker, les modifier, les relayer, les effacer, etc. Dans certains exemples, le module de traitement est configuré pour utiliser les métadonnées en tant qu’indication guidant la mise en œuvre d’une opération de lissage d’une frontière entre des zones d’image voisines contenues dans le signal numérique. L’interface de sortie peut en outre être configurée pour ne pas fournir les métadonnées à la boucle de décodage. D’autres caractéristiques, détails et avantages apparaîtront à la lecture de la description détaillée ci-après, et à l’analyse des dessins annexés, sur lesquels : Fig. 1 représente schématiquement un exemple d’encodeur selon le standard HEVC. Fig. 2 représente un exemple de découpage d’une image selon le standard VVC. Fig. 3 représente trois images dans une séquence d’images décodées, avec une mise en œuvre d’un filtre anti-blocs au niveau du décodeur uniquement, dans la boucle de décodage. Fig. 4 représente un encodage d’une zone d’image selon un exemple de réalisation. Fig. 5 représente un décodage d’une zone d’image encodée selon un exemple de réalisation. Fig. 6 représente un encodeur comportant quatre cœurs d’encodage indépendants, selon un exemple de réalisation. Fig. 7 représente un décodeur configuré pour décoder quatre zones d’image encodées selon un exemple de réalisation. La technique proposée vise à résoudre les problématiques précédemment décrites en introduisant un lissage normatif de frontières de zones d’image issues d’un partitionnement haut niveau de l’image. Ce lissage vise, à l’instar des filtrages classiques utilisés dans les schémas de codage vidéo conventionnels, à atténuer des frontières potentiellement visibles entre des zones d’image telles que des Tiles, des Slices, ou des sous-images. Le lissage porté par la technique proposée a la particularité d’être réalisé en dehors de la boucle de codage. Les zones d’image conservées dans le DPB et qui servent de référence aux zones d’image qui seront codées dans le futur ne bénéficient ainsi pas du lissage proposé et de l’atténuation visuelle de la frontière qui en découle. Ceci permet d’appliquer le lissage des frontières des zones d’image uniquement côté décodeur. En effet l’opération de reconstruction côté encodeur étant limitée à la génération des mêmes images qui seront conservées dans le DPB côté décodeur, le lissage des frontières des sous-images n’y intervient pas. Un exemple particulier de réalisation est à présent décrit en référence à la qui représente schématiquement un encodeur. Une séquence vidéo à encoder (400) est fournie sous la forme d’un signal numérique en entrée de l’encodeur. La séquence vidéo à encoder comprend une pluralité d’images. On considère que ces images ont fait l’objet d’un partitionnement haut niveau (non représenté) en zones d’image. L’encodeur est configuré pour traiter les zones d’image contenues dans la séquence vidéo de manière séquentielle. Il peut être prévu que pour une image donnée, l’encodeur traite d’abord par exemple une première zone d’image située en haut à gauche de l’image, puis une deuxième zone d’image, par exemple voisine de la première, et ainsi de suite jusqu’à traiter une dernière zone d’image située par exemple en bas à droite de l’image. Une particularité de la technique proposée est : que la séquence vidéo à encoder comporte également, outre les zones d’image à encoder, des métadonnées, et/ou que ces métadonnées sont rendues accessibles par un signal numérique distinct associé à la séquence vidéo à encoder. Les métadonnées peuvent être relatives à l’intégralité des frontières entre zones d’image d’une image donnée ou de plusieurs images consécutives données. Alternativement, les métadonnées peuvent être relatives à une ou plusieurs frontières particulières. Des exemples particuliers de métadonnées sont présentés plus loin en lien avec leur utilisation prévue. On se focalise, dans la suite de la description, sur le traitement d’une zone d’image courante fournie en entrée de l’encodeur. On considère aussi que les métadonnées sont relatives au moins à une frontière entre la zone d’image courante et au moins une zone d’image voisine. Le traitement d’une zone d’image courante fournie en entrée de l’encodeur comporte une prédiction de la zone d’image courante sur la base de zones d’image précédemment encodées puis décodées et stockées dans une mémoire (408). Plus précisément, la prédiction de la zone d’image courante peut être une prédiction intra (414) mise en œuvre à partir d’une ou plusieurs zones précédemment traitées de la même image. La prédiction de la zone d’image courante peut aussi être une prédiction inter (412) mise en œuvre sur la base d’une estimation (410) d’un vecteur de mouvement, elle-même mise en œuvre à partir de zones d’une ou plusieurs images précédemment traitées. Alternativement, il est aussi possible de mettre en œuvre en parallèle une prédiction intra (414) et une prédiction inter (412) telles que décrites précédemment et de fournir les résultats de ces prédictions à un module de décision (416). La prédiction de la zone d’image courante est alors une prédiction selon un mode de prédiction choisi par le module de décision (416). Le résultat de la prédiction de la zone d’image courante est alors comparé à la zone d’image courante fournie en entrée de l’encodeur, et la différence, appelée résidus de pixels, fait l’objet d’une transformation et d’une quantification (402). La zone d’image courante est alors prête à être encodée. Pour cela, un codeur entropique (418), c’est-à-dire sans perte, par exemple de type CABAC ou CAVLC, est alimenté avec l’ensemble des informations nécessaires pour procéder à l’encodage, à savoir : - une indication du mode de prédiction retenu pour effectuer la prédiction de la zone d’image courante (c’est-à-dire intra, inter, ou un mode de prédiction choisi par le module de décision), - des informations de prédiction selon le mode choisi, par exemple un vecteur de mouvement dans le cas d’un mode de prédiction inter ou une fonction de prédiction intra dans le cas du mode intra, et - le résultat de la transformation et de la quantification des résidus de pixels. Les mêmes informations sont utilisées pour procéder à un décodage de la zone d’image courante. Une quantification inverse suivie d’une transformation inverse (404) des résidus de pixels transformés est mise en œuvre, ce qui permet de reconstituer les résidus de pixels avant transformation. Les résidus de pixels reconstitués et le résultat de la prédiction de la zone d’image courante sont ensuite additionnés pour reconstituer la zone d’image courante. Différents filtrages (406) peuvent optionnellement être mis en œuvre. Enfin, la zone d’image courante reconstituée et optionnellement filtrée est stockée dans la mémoire (408) et peut désormais être utilisée pour la mise en œuvre de futures prédictions inter, dans le cadre du traitement de futures zones d’image. Tel qu’ainsi décrit, le traitement de la zone d’image courante comprend une mise en œuvre d’une boucle de codage définie comme une séquence de traitements, s’appuyant sur des traitements d’au moins une zone d’image précédentes et permettant d’alimenter les traitements d’au moins une zone d’image suivante. Spécifiquement, la zone d’image courante est d’abord prédite sur la base de zones d’image précédemment traitées, il s’agit donc de traitements de la zone d’image courante s’appuyant sur des traitements d’au moins une zone d’image précédentes. De cette prédiction découlent la détermination des informations nécessaires au codage de la zone d’image courante. Ces informations sont utilisées pour déterminer le résultat du décodage de la zone d’image courante encodée. Enfin, ce résultat est stocké en mémoire en vue du traitement d’une ou plusieurs zones d’image suivantes, il s’agit donc de traitements de la zone d’image courante permettant d’alimenter les traitements d’au moins une zone d’image suivante. A l’issue du traitement de la zone d’image courante, le codeur entropique (418) fournit, en sortie, un signal binaire (420) comprenant la zone d’image courante sous forme encodée. Plus généralement, à l’issue du traitement de la séquence vidéo (400) fournie en entrée de l’encodeur, le signal binaire (420) fourni en sortie du codeur entropique comprend, sous forme encodée, toutes les zones de toutes les images de la séquence vidéo (400). Une particularité de la technique proposée est que le signal binaire (420) est enrichi des métadonnées précitées qui, comme précisé, sont relatives au moins à une frontière entre la zone d’image courante et au moins une zone d’image voisine. En tout état de cause, ces métadonnées ne sont pas traitées par la boucle de codage, c’est-à-dire qu’elles ne sont pas utilisées au sein de la boucle de codage dans l’un quelconque des traitements servant de base à la détermination de la zone d’image courante encodée ou de toute autre zone d’image encodée. Optionnellement, ces métadonnées ne sont pas rendues accessibles à la boucle de codage et sont uniquement fournies à un module de post-traitement (non-représenté) qui les incorpore ou les joint au signal binaire issu du codeur entropique (418). Selon la technique proposée, ces métadonnées sont une forme de signalisation de l’encodeur à destination d’un module de lissage situé en dehors de la boucle de décodage en vue d’un lissage d’une frontière entre deux zones d’image voisines. Le module de lissage est décrit plus loin. En se référant aux normes de codage vidéo existantes, toute signalisation d’une entité côté encodeur vers une entité côté décodeur doit obligatoirement se faire via un format particulier de messages véhiculés par le signal binaire renfermant la séquence vidéo encodée. Ces messages sont nommés en anglais « supplemental enhancement information » ou SEI. La prise en compte des SEI côté décodeur est optionnelle et destinée à offrir des fonctionnalités nouvelles véhiculées par ces SEI. Il est possible d’éditer les standards sur les parties SEI a posteriori. Par exemple, le standard correspondant à VVC comprend un document séparé nplcit5 relatif à la partie SEI du standard. En ne se limitant pas aux normes de codage vidéo existantes, les possibilités de signalisation sont plus étendues et ne se limitent pas aux SEI. La signalisation peut ainsi être mise en œuvre au niveau d’une séquence d’images via un ou plusieurs en-têtes associés à la séquence tels que SPS, PPS ou VUI. La signalisation peut aussi être mise en œuvre au niveau d’une image via un ou plusieurs en-têtes associés à l’image de type « slice header » ou « picture header ». Dans certains exemples où les informations de codage sont rendues accessibles au module de lissage, la signalisation peut aussi être mise en œuvre au niveau de régions d’image situées de part et d’autre d’une frontière entre zones d’image voisines. Il est maintenant fait référence, dans un exemple de réalisation, à la qui représente schématiquement un décodeur adapté pour décoder le signal binaire (420) précité. Le décodeur comporte une interface d’entrée configurée pour recevoir le signal binaire. Les images encodées, et plus précisément les zones d’image encodées contenues dans le signal binaire sont fournies en entrée d’un décodeur entropique (502) et successivement traitées par le décodeur entropique. Par exemple la mise en œuvre, par le décodeur entropique, du traitement de la zone d’image courante encodée génère, en sortie du décodeur entropique, deux types d’information, à savoir : les résidus de pixels tels qu’issus de la transformation et de la quantification (402) au niveau de l’encodeur, et le mode de prédiction ainsi que les informations de prédiction utilisés au niveau de l’encodeur pour la prédiction de la zone d’image courante. Ces informations sont traitées par une boucle de décodage fonctionnant de la même manière que la boucle de codage précitée en ce qu’elle s’appuie sur une ou plusieurs zones d’image précédemment décodées pour décoder la zone d’image courante. Après son décodage, la zone d’image courante est stockée dans une mémoire (408) et est à son tour utilisée pour décoder une ou plusieurs zones d’image suivantes. Les zones d’image stockées dans la mémoire (408) forment une séquence de zones d’image décodées qui peuvent être agrégées, image par image, pour former une séquence d’images, c’est-à-dire une séquence vidéo décodée. Une particularité de la technique proposée est que la zone courante d’image décodée est transmise à un module de lissage de frontière (518), plus simplement dénommé par la suite « module de lissage », situé en dehors de la boucle de décodage. Le module de lissage reçoit également les métadonnées contenues dans le signal binaire (420) et/ou associées au signal binaire. Les métadonnées peuvent porter sur tout aspect du traitement mis en œuvre par le module de lissage. Par exemple, les métadonnées peuvent être indicatives d’une activation du lissage pour l’intégralité des frontières entre zones d’image ou au contraire seulement pour certaines frontières particulières. Le module de lissage met alors en œuvre un lissage des frontières limité à ces frontières particulières. Par exemple, les métadonnées peuvent être indicatives d’une force de lissage qui peut être commune à l’ensemble des frontières entre zones d’image ou différenciée par frontière. Le module de lissage met alors en œuvre le lissage, pour chaque frontière respective, conformément à la force de lissage respectivement indiquée. Par exemple, les métadonnées peuvent être indicatives d’une fonction de lissage à mettre en œuvre parmi un ensemble de fonctions de lissage prédéfinie. Un filtre gaussien est un exemple de filtre pouvant mettre en oeuvre une fonction de lissage. Les métadonnées peuvent ainsi être indicatives, pour une ou plusieurs frontières données, d’une fonction de lissage particulière à mettre en œuvre et/ou d’une valeur particulière de paramètre entrant dans la définition de la fonction de lissage. En considérant comme fonction de lissage une fonction mise en œuvre par un filtre gaussien, le nombre de taps est un exemple de paramètre approprié. Le module de lissage (518) utilise les métadonnées relatives au lissage de la frontière entre la zone d’image courante et une zone d’image voisine pour mettre en œuvre un lissage de cette frontière. Le module de lissage fournit ainsi en sortie, au moins, une zone courante d’image décodée et lissée. Dans l’exemple représenté, le module de lissage reçoit la séquence vidéo décodée, formée d’une séquence d’images décodées, une de ces images décodées contenant la zone courante d’image décodée. Le module de lissage utilise les métadonnées pour traiter la séquence vidéo et fournit ainsi en sortie une séquence vidéo décodée modifiée (520) au moins en ce que la zone courante d’image décodée est également lissée. Une autre particularité de la technique proposée est que le résultat du lissage d’une ou plusieurs zones d’une ou plusieurs images, obtenu en sortie du module de lissage (518) n’est pas fourni à la boucle de décodage et n’est pas utilisé pour décoder des zones d’image suivantes. La technique proposée permet donc de parvenir à un rendu visuel après décodage dépourvu de frontières visibles gênantes pour les utilisateurs finaux, tout en évitant tout passage de pixels ou d’autres informations de codage entre sous-images côté encodeur, ce qui est bienvenu dans des schémas de codage exploitant des cœurs d’encodage séparés qui traitent chacun en parallèle une sous-image. En effet, les limitations en termes de connecteurs rendent les transferts de données entre cœurs d’encodage coûteux avec ces architectures. A titre d’illustration, la montre un exemple d’encodage d’une image contenue dans une séquence vidéo (400) à encoder, l’image étant divisée en quatre sous-images (600, 602, 604, 606). La séquence vidéo (400) à encoder est associée à, ou comprend, des métadonnées relatives à au moins une frontière entre une sous-image considérée (600) et une sous-image voisine (602). L’encodage de l’image est mis en œuvre en parallèle par quatre cœurs d’encodage distincts (608, 610, 612, 614). Le traitement d’une zone d’image (600) donnée par un cœur d’encodage (608) donné comporte la mise en œuvre d’une boucle de codage spécifique au cœur d’encodage (608) donné. Ceci signifie notamment que chaque cœur d’encodage (608) dispose d’une mémoire de stockage propre, configurée pour stocker les zones d’image encodées au niveau de ce cœur d’encodage (608). Chaque cœur d’encodage fonctionne de manière indépendante, sans aucun partage de données entre cœurs d’encodage. Les sorties des quatre cœurs d’encodage sont concaténées (616) de manière à générer le signal binaire (420) comprenant les quatre sous-images sous forme encodée. Ce signal binaire est également enrichi des métadonnées associées à, ou comprises dans, la séquence vidéo (400) à encoder. Contrairement à un procédé qui mettrait en œuvre un lissage dans la boucle de décodage côté décodeur mais sans mettre en œuvre de lissage côté encodeur, la technique proposée présente l’avantage d’être complètement normative et d’éviter des dérives telles que celles illustrées sur la . Il est à présent fait référence à la , qui illustre un exemple de décodeur adapté pour décoder des zones d’image encodées (700, 702, 704, 706) d’une même image contenue dans un signal binaire (420). Ce décodage peut être indifféremment mis en œuvre de manière parallélisée par une pluralité de cœurs de décodage (708, 710, 712, 714) ou de manière séquentielle par un cœur de décodage unique. Dans cet exemple, les zones d’image décodées sont agrégées par un agrégateur (716) de manière à reconstituer sous forme décodée l’image contenue sous forme encodée dans le signal binaire (420). C’est après cette agrégation que les frontières des sous-images sont lissées. Le lissage d’une frontière entre deux zones d’image voisines situées de part et d’autre de la frontière est mise en œuvre par le module de lissage (518) placé en dehors de la boucle de décodage. Comme déjà décrit, le module de lissage s’appuie pour cela, au moins, sur les métadonnées. Optionnellement, il peut être prévu que le module de lissage (518) ait accès aux informations de codage de ces zones d’image voisines. Ces informations de codage peuvent lui être fournies par exemple par le ou les cœurs de décodage ayant décodé ces zones d’image, directement ou indirectement. Cela n’est toutefois pas toujours possible, notamment en raison de contraintes système. On peut par exemple imaginer que, comme à l’encodeur, les sous-images soient décodées chacune sur un cœur de décodage distinct, et que, une fois une sous-image décodée par un cœur de décodage à partir de la partie du signal binaire correspondante, les informations de codage relatives à cette sous-image ne soient plus disponibles. Il peut être prévu que lorsque le module de lissage (518) a accès aux informations de codage, il les utilise pour contrôler la mise en œuvre du lissage. Ceci permet par exemple au module de lissage de mettre en œuvre un filtre anti-blocs standardisé, dans la mesure où, selon les standards actuels, un tel filtre anti-blocs utilise des informations comme la taille des transformées, le mode de codage (inter / intra notamment), le QP ou les vecteurs de mouvement (dans le cas d’un codage inter) pour déterminer la longueur et la puissance du lissage. Le module de lissage (518) peut bien évidemment être configuré pour mettre en œuvre toute autre fonction de lissage susceptible d’utiliser tout ou partie de ces informations de codage pour contrôler la mise en œuvre du lissage. Un exemple simple d’une fonction de lissage applicable serait une fonction gaussienne dont l’écart-type dépendrait du QP des zones d’image de part et d’autre de la frontière à lisser. Deux exemples particuliers de réalisations sont à présent décrits. Dans un premier exemple particulier de réalisation, une image source est partitionnée en plusieurs sous-images qui sont chacune encodée. Le terme « sous-image » est à entendre ici comme équivalent au terme « sub-picture » défini selon la norme de codage vidéo VVC décrite par exemple dans nplcit6. Les sous-images sont signalées à travers des en-têtes comme complètement indépendantes, notamment au niveau du lissage. En d’autres termes, dans la boucle de codage, aucun lissage normatif n’est effectué à travers les frontières entre sous-images. Plusieurs cœurs d’encodage sont prévus pour paralléliser l’encodage des sous-images. L’encodage d’une sous-images est mis en œuvre de manière complètement indépendante sur un cœur d’encodage, sans aucun partage de pixels entre les cœurs d’encodage. A l’issue de l’encodage des sous-images, un signal binaire, comprenant les sous-images encodées, est généré. Le signal binaire comprend en outre un SEI qui contient une valeur numérique. Le signal binaire est reçu au niveau du décodeur. Les sous-images encodées sont chacune décodée sur un cœur de décodage séparé de manière indépendante. En sortie des cœurs de décodage, les sous-images décodées sont agrégées en une image. Les informations de codage des blocs constituant les sous-images ne sont pas transmises en sortie des cœurs de décodage. Après agrégation des sous-images et avant restitution de l’image, un lissage hors-boucle des frontières entre sous-images est mis en œuvre. Ce lissage n’utilise aucune information de codage des blocs constituant les sous-images car ces informations ne sont pas rendues accessibles par les cœurs de décodage. La mise en œuvre du lissage en question utilise un simple filtre gaussien à cinq taps dont l’écart-type, qui détermine la puissance de lissage, est fixé à la valeur numérique contenue dans le SEI. La puissance de lissage est ainsi identique quelle que soit la frontière lissée et quelle que soit l’image. Dans un second exemple particulier de réalisation, une image est partitionnée en plusieurs « tiles », ce dernier terme étant défini dans la norme de codage HEVC et décrit dans nplcit7 notamment. Les tiles sont associées, via des en-têtes, à des indications de ne mettre en œuvre aucun lissage des frontières entre tiles dans la boucle de codage. L’encodage (HEVC) de chaque tile est mise en œuvre sur un cœur d’encodage séparé de manière indépendante. Dans ce second exemple particulier de réalisation, des contraintes sont prévues de sorte qu’aucun partage de pixels ou d’information ne soit mis en œuvre entre cœurs d’encodage. De telles contraintes garantissent que le codage / décodage de chaque tile est indépendant du codage / décodage des autres tiles et relèvent de la notion de MCTS déjà décrite. Comme déjà expliqué, l’encodage d’une tile comporte une prédiction de la tile, qui peut comprendre une prédiction intra et/ou une prédiction inter. En particulier, la prédiction de la tile peut comprendre une prédiction d’un vecteur de mouvement, par exemple dans un mode de codage inter ou « merge » (fusion), ces modes de codage étant tous deux définis dans la norme HEVC. Un premier exemple de contrainte concerne la prédiction du vecteur de mouvement : il s’agit d’imposer que, lors de la prédiction d’une tile courante, la prédiction du vecteur de mouvement associé pointe dans cette tile courante. Un second exemple de contrainte concerne le mode de codage « merge » pour lequel une liste de candidats est fournie aux fins d’effectuer la prédiction d’un vecteur de mouvement pour une tile courante : il s’agit alors de ne fournir que des candidats tels que la prédiction du vecteur de mouvement pour ce candidat pointe vers la tile courante. Par ailleurs, un candidat noté « TMVP » pour "temporal motion vector predictor" (en anglais) est typiquement fourni, ce candidat TMVP se rapportant à une image précédemment codée. Or il est possible que le candidat TMVP se rapporte à une tile ayant un autre emplacement, dans l’image précédemment codée, que celui de la tile courante de l’image courante. En d’autres termes, dans un tel cas, la tile courante et la tile à laquelle se rapporte le candidat TMVP sont traitées par des cœurs d’encodage distincts. Une possibilité est alors d’interdire la sélection de ce candidat TMVP pour éviter tout échange de vecteurs, ou plus généralement d’information, entre cœurs d’encodage. Le décodage des tiles est mis en œuvre en série sur un seul cœur de décodage. Les tiles décodées sont ensuite agrégées en une image. Après l’agrégation et avant la restitution de l’image, un lissage hors-boucle des frontières entre les tiles est réalisé. Ce lissage utilise toutes les informations de codage des blocs, rendues disponibles par le seul cœur de décodage. Le lissage hors-boucle est mis en œuvre par un filtre anti-blocs dont le fonctionnement est défini dans la norme HEVC et s’appuie sur un ou plusieurs messages SEI relatifs aux frontières entre blocs, et par conséquent relatifs aux frontières entre tiles. A toutes fins utiles, les documents non-brevet suivants sont cités : nplcit1 : Y. -K. Wang et al., "The High-Level Syntax of the Versatile Video Coding (VVC) Standard," in IEEE Transactions on Circuits and Systems for Video Technology, vol. 31, no. 10, pp. 3779-3800, Oct. 2021, doi: 10.1109/TCSVT.2021.3070860 nplcit2 : WU, Yongjun, SULLIVAN, Gary J., ZHANG, Yifu, Motion-constrained tile set for region of interest coding, WO/2014/168650 nplcit3 : Hendry, S. Hong, J. Chen, Y.-K. Wang (Huawei), JVET-N0109, CE12/AHG12: Treating boundaries of independent tile groups as picture boundaries, Mars 2019 nplcit4 : S. Cho, H. Kim, H. Y. Kim and M. Kim, "Efficient In-Loop Filtering Across Tile Boundaries for Multi-Core HEVC Hardware Decoders With 4 K/8 K-UHD Video Applications," in IEEE Transactions on Multimedia, vol. 17, no. 6, pp. 778-791, June 2015, doi: 10.1109/TMM.2015.2418995 nplcit5 : Singh, S., Sharma, R. K., & Sharma, M. K. (2012). Post Processing Technique to Reduce Tile Boundary Artifacts in JPEG2000 Compressed Images. The International Journal of Multimedia & Its Applications, 4(1), 127 nplcit6 : Schwartz, E. L., Berkner, K., & Gormish, M. J. (1999). Optimal tile boundary artifact removal with CREW. In Proc. of Picture Coding Symposium. (pp. 285-288) nplcit7 : SO/IEC CD 23002-7 Supplemental enhancement information messages for coded video bitstreams nplcit8 : H.266 : Versatile video coding https://www.itu.int/rec/T-REC-H.266 nplcit9 : ITU-T H.265, High efficiency video coding https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=14107&lang=en nplcit10 : Y. He, M. Coban, M. Karczewicz, “AHG9/AHG13: Film grain blending process for film grain characteristics SEI message”, JVET-Y0053, Jan. 2022. Procédé de traitement d’au moins une zone d’image décodée, le procédé comportant : en sortie d’une boucle de décodage ayant décodé au moins une zone d’image courante, un traitement de la zone d’image courante décodée, à l’aide d’un module de lissage de frontière (518) utilisant des métadonnées relatives au moins à une frontière entre la zone d’image courante et une zone d’image voisine. Procédé selon la revendication 1, dans lequel : la zone d’image courante décodée comprend une région en bordure correspondant à la frontière et une région distante de la frontière, le traitement de la zone d’image courante décodée comprend un traitement de la région en bordure et ne comprend pas de traitement de la région distante de la frontière. Procédé selon la revendication 1 ou 2, le procédé comportant en outre : un contrôle du traitement de la zone d’image courante décodée à l’aide d’un contrôleur utilisant des premières données relatives à un décodage de la zone d’image courante et des deuxièmes données relatives à un décodage d’une zone d’image voisine. Programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’une des revendications 1 à 3 lorsque ce programme est exécuté par un processeur. Support d’enregistrement non transitoire lisible par un ordinateur sur lequel est enregistré un programme pour la mise en œuvre du procédé selon l’une des revendications 1 à 3 lorsque ce programme est exécuté par un processeur. Signal numérique comprenant au moins une zone d’image courante encodée et des métadonnées relatives au moins à une frontière entre la zone d’image courante et une zone d’image voisine. Signal numérique selon la revendication 6, dans lequel les métadonnées sont relatives à au moins un aspect d’un lissage à appliquer au niveau de la frontière. Signal numérique selon la revendication 7, dans lequel l’au moins un aspect est choisi dans la liste suivante : une activation du lissage, ou un réglage d’une force de lissage, ou un choix d’une fonction de lissage parmi un ensemble de fonctions de lissage prédéterminées. Circuit de traitement de données comprenant : une interface d’entrée configurée pour recevoir un signal numérique comprenant au moins une zone d’image courante encodée et des métadonnées relatives au moins à une frontière entre la zone d’image courante et une zone d’image voisine, et au moins une interface de sortie configurée pour fournir la zone d’image courante encodée en entrée d’une boucle de décodage, et fournir les métadonnées à un module de traitement (518) prévu en sortie de la boucle de décodage. Circuit de traitement de données selon la revendication 9, dans lequel l’interface de sortie est configurée pour ne pas fournir les métadonnées à la boucle de décodage.