Brevet FR3035760A1 — publié le 20161104

SYSTEME ET PROCEDE D'ENCODAGE D'UNE SEQUENCE VIDEO DOMAINE DE L'INVENTION La présente invention concerne un système et un procédé d'encodage d'une séquence vidéo. ARRIERE PLAN DE L'INVENTION L'encodage vidéo est une technique visant à compresser une séquence vidéo en vue de sa transmission au travers d'un réseau à destination d'utilisateurs finaux, qui visionnent la vidéo sur un terminal qui peut être de différents types (téléviseur, ordinateur, tablette, smartphone). Un tel encodage met en oeuvre des algorithmes de calcul pour convertir la séquence vidéo en une séquence encodée binaire. L'encodage vidéo est soumis à trois contraintes interdépendantes : le débit, la qualité et la complexité. D'une manière générale, la problématique est d'avoir la meilleure qualité perçue pour le débit dont l'utilisateur dispose, un débit minimal pour une qualité cible, dans le but de transmettre davantage de flux dans le débit dont l'utilisateur dispose, et de réduire la complexité de calcul pour pouvoir réaliser davantage d'encodages sur une même unité de calcul. En d'autres termes, un encodage performant doit réaliser un compromis entre la qualité, le débit et la complexité. Un encodeur vidéo de la famille MPEG (H.264/AVC, HEVC) comprend une partie normée, nommée coeur de codage, et des parties non normées en amont et en aval du coeur de codage, permettant de configurer le coeur de codage. Pour tenir compte des propriétés du système visuel humain dans l'appréciation de la qualité perçue, la plupart des systèmes d'encodage existant actuellement embarquent, dans les parties non normées, des modèles perceptuels simplistes. Par « modèle perceptuel » on entend un modèle tenant compte des caractéristiques du système visuel humain. Un encodage vidéo est généralement découpé en unités élémentaires de codage. Il s'agit d'un bloc de pixels de taille minimum qui sera encodé suivant un paramètre dit de "quantification" (macroblocs MPEG2, H.264 et CTB HEVC). Ce paramètre de quantification a un impact sur la quantité d'information utilisée pour décrire l'unité de codage et par conséquent sur le débit et la qualité de la séquence vidéo encodée. Le traitement des images par blocs de pixels dans un encodeur vidéo introduit un artefact appelé "effet de bloc", de plus en plus présent lorsque le débit diminue. Le codage perceptuel a pour but de favoriser l'encodage des zones perceptuellement importantes et ainsi de réduire le ressenti de l'artefact de bloc. Le 3035760 2 codage perceptuel comprend des techniques de prétraitements et de configuration de l'encodeur guidées par un modèle perceptuel. Les prétraitements sont principalement des filtres qui peuvent être appliqués sur l'image avant encodage ou sur des unités élémentaires de codage au sein de l'encodeur 5 pour réduire les informations perceptuellement non significatives. Cependant, l'utilisation d'un préfiltre appliqué au sein de l'encodeur sur les unités élémentaires de codage tend à aggraver l'artefact de bloc minimal car les dépendances inter-blocs ne sont pas exploitées. Par ailleurs, l'utilisation d'un préfiltre appliqué sur l'image entière par convolution 10 avant encodage introduit un effet de flou qui dégrade la qualité perçue par les utilisateurs. BREVE DESCRIPTION DE L'INVENTION Un but de l'invention est de remédier aux inconvénients des systèmes d'encodage existants et de proposer un procédé et un système d'encodage qui permettent d'optimiser 15 le compromis qualité / complexité / débit, notamment dans une perspective d'encodage en temps réel. Conformément à l'invention, il est proposé un procédé d'encodage d'une séquence dans un système d'encodage comprenant un coeur de codage normé, ledit procédé étant caractérisé en ce qu'il comprend : 20 - une analyse de la séquence vidéo, dans laquelle on détermine au moins un paramètre d'encodage au moyen d'une carte perceptuelle décrivant, pour chaque image de la séquence, des seuils de perception par pixel ou par partition de codage, - l'encodage de la séquence vidéo par le coeur de codage, dans lequel au moins une étape de l'encodage est contrôlée par ledit paramètre d'encodage. 25 Selon un mode de réalisation, le paramètre d'encodage déterminé à partir de la carte perceptuelle est un paramètre de quantification à appliquer à chaque image en fonction de la complexité de ladite image et d'un débit cible. De manière avantageuse, à partir de la carte perceptuelle, le paramètre de quantification peut allouer davantage de budget binaire aux partitions dans les zones de 30 l'image où le seuil de perception est le plus bas. Selon un mode de réalisation éventuellement combiné au précédent, le paramètre d'encodage déterminé à partir de la carte perceptuelle est l'ensemble des candidats à la meilleure prédiction d'une partition de codage. De manière avantageuse, le paramètre d'encodage déterminé à partir de la carte 35 perceptuelle peut être l'ensemble des partitions à évaluer pour chaque bloc de codage de l'image. Par ailleurs, à partir de la carte perceptuelle, le partitionnement peut être mis en oeuvre de sorte à limiter le nombre de découpes de partitions de codage dans les zones de l'image où le seuil de perception est le plus élevé. 3035760 3 Selon une forme d'exécution, à partir de la carte perceptuelle, on distribue la complexité de partitionnement en fonction du seuil de perception des zones de l'image. Le paramètre d'encodage déterminé à partir de la carte perceptuelle peut également être l'ensemble des prédictions à évaluer pour chaque partition de codage de l'image. 5 Ainsi, à partir de la carte perceptuelle, la prédiction peut être mise en oeuvre de sorte à limiter sa précision dans les partitions de codage où le seuil de perception est le plus élevé. Selon un mode de réalisation, on applique à chaque image de la séquence à encoder un pré-filtre contrôlé par la carte perceptuelle de sorte à réduire le contenu de 10 chaque image non significatif vis-à-vis du système visuel humain et en ce que l'on met en oeuvre l'étape d'analyse sur les images pré-filtrées. Selon un mode de réalisation, la carte perceptuelle est générée à partir d'un modèle JND définissant des seuils de perception au-dessous desquels une distorsion introduite dans l'image n'est pas perçue par le système visuel humain, la génération de la carte 15 perceptuelle comprenant, pour chaque image, les étapes suivantes : (E3) détermination d'une carte de gradient de l'intensité des pixels de l'image, (E4, E4') détection de contours dans l'image, (E5) détermination d'une carte de contours à partir desdits contours détectés, (E6) à partir de la carte de contours déterminée à l'étape (E5) et de la carte de 20 gradient déterminée à l'étape (E3), détermination d'une carte de texture de l'image. De manière particulièrement avantageuse, l'étape (E4') de détection de contours comprend un seuillage de la carte de gradient d'intensité obtenue à l'étape (E3) de sorte que chaque pixel de l'image présentant un gradient d'intensité supérieur à un seuil déterminé soit considéré comme un pixel de contour. 25 Selon une forme d'exécution de l'invention, la génération de la carte perceptuelle est mise en oeuvre sur une plateforme de traitement comprenant un coeur de traitement hôte et un réseau de coeurs de traitement, dans lequel le modèle JND est décomposé en noyaux de calcul, chaque noyau de calcul étant traité dans un coeur de traitement respectif. 30 Un autre objet concerne un système d'encodage d'une séquence vidéo comprenant un module de quantification adaptative, un module d'optimisation débit-distorsion et un coeur de codage normé, au moins un module de l'encodeur étant contrôlé par une carte perceptuelle décrivant, pour chaque image de la séquence à encoder, les seuils de perception par pixel ou par partition de codage. 35 BREVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de l'invention ressortiront de la description détaillée qui va suivre, en référence aux dessins annexés sur lesquels : 3035760 4 - la figure 1 est un schéma de principe d'un système d'encodage selon un mode de réalisation de l'invention ; - la figure 2 est un logigramme présentant les étapes de calcul du modèle JND de Yang ; 5 - la figure 3 est un logigramme présentant les étapes de calcul du modèle JND de Yang simplifié en vue d'un encodage en temps réel ; - la figure 4 est un schéma de principe d'une plateforme de traitement parallèle pour la génération de la carte perceptuelle en temps réel. 10 DESCRIPTION DETAILLEE DE L'INVENTION La figure 1 illustre de manière schématique l'architecture d'un système d'encodage selon un mode de réalisation de l'invention. Ce système permet un encodage contraint en débit (ABR, acronyme du terme anglo-saxon « Average Bit Rate »). Un tel encodage peut être réalisé à débit constant 15 (CBR, acronyme du terme anglo-saxon « Constant Bit Rate ») ou à débit variable (VBR, acronyme du terme anglo-saxon « Variable Bit Rate »). Pour la mise en oeuvre du procédé d'encodage, ce système 1 reçoit en entrée une séquence vidéo S et délivre en sortie une séquence encodée Sen,. Les flux de données sont indiqués en traits pleins tandis que le contrôle par les paramètres d'encodage est 20 schématisé par des pointillés. Le coeur de codage, qui est normé, est désigné par le repère 10. Dans le coeur de codage sont mises en oeuvre les opérations suivantes : - découpe de chaque image de la séquence vidéo S en blocs ou partitions de codage (module 101) ; 25 - pour chaque image, prédiction de la partition de codage (module 102) ; - mise en oeuvre d'une transformée (module 103) ; - quantification de l'image (module 104) ; - codage entropique (module 105) ; - mise en oeuvre de l'inverse de la quantification (module 106) ; 30 - mise en oeuvre d'une transformée inverse (module 107) ; - génération d'une image tampon (« buffer image » selon la terminologie anglo-saxonne) (module 108) utilisée par le module de prédiction 102. La structure et le fonctionnement du coeur de codage sont connus en tant que tels et ne nécessitent donc pas une description détaillée dans le présent texte. 35 En amont du coeur de codage, le système comprend un module de pré-analyse 11, qui n'est pas normé, ainsi qu'un module 12 d'optimisation débit-distorsion, communément désigné par l'acronyme RDO (« Rate-Distorsion Optimization » dans la terminologie anglo-saxonne), qui n'est pas non plus normé. 3035760 5 Ces modules 11 et 12 permettent de configurer l'encodage. Le module de pré-analyse 11 reçoit en entrée, outre la séquence vidéo S à encoder, une consigne relative au débit cible d à respecter. Le module de pré-analyse détermine, à partir de ladite séquence vidéo et de ladite 5 consigne, un paramètre de quantification, noté QP (acronyme du terme anglo-saxon « Quantization Parameter »), à appliquer à chaque image de la séquence vidéo en fonction de la complexité de ladite image et du débit cible. Généralement, ce module met en oeuvre plusieurs étapes : l'estimation de complexité, l'estimation du paramètre QP par un modèle paramétrique, et la quantification adaptative. L'objectif du module de pré- 10 analyse est de maximiser la qualité perçue pour un débit donné. La quantification adaptative vise donc à allouer le budget binaire de l'image aux différentes partitions de codage en fonction de leur contenu. A cet effet, le paramètre QP calculé par le module de pré-analyse est utilisé pour contrôler le module de quantification 104. Par ailleurs, le module RDO a pour fonction de choisir la meilleure prédiction de la 15 partition de codage courante parmi toutes les possibilités décrites dans la norme de codage, la qualité d'une prédiction étant évaluée par son coût débit / distorsion. Ce choix est réalisé en fonction du paramètre QP mentionné précédemment, qui est un paramètre d'entrée du module RDO. L'objectif du module RDO est double : d'une part, réduire la complexité à qualité constante et d'autre part, maximiser la qualité perçue à complexité 20 constante. A cet effet, le module RDO contrôle le module de découpe 101 et le module de prédiction 102. Bien que distincts, les objectifs d'optimisation de ces deux modules peuvent être cumulés. En aval du coeur de codage, le système comprend un module 13 de contrôle de 25 débit, non normé, qui traite les statistiques d'encodage en sortie du coeur de codage et qui exerce une contre-réaction sur le paramètre QP. De manière particulièrement avantageuse, l'invention utilise un modèle perceptuel, c'est-à-dire un modèle qui tient compte des caractéristiques du système visuel humain, pour contrôler au moins un paramètre d'encodage. 30 Selon un premier mode de réalisation, appliqué à la quantification adaptative, le modèle perceptuel contrôle l'allocation binaire afin d'attribuer plus de budget aux zones où le système visuel humain est le plus sensible. Selon un deuxième mode de réalisation, appliqué à l'optimisation débit-distorsion, le modèle perceptuel limite la précision de codage en limitant d'une part le nombre de sous- 35 partitions testées au sein d'une partition élémentaire et d'autre part le nombre de candidats à la prédiction dans les zones où le système humain est peu sensible. Ce deuxième mode de réalisation peut être mis en oeuvre séparément du premier, ou cumulativement avec celui-ci afin de maximiser l'influence du modèle perceptuel. 3035760 6 Eventuellement, le modèle perceptuel peut être utilisé pour contrôler d'autres paramètres de l'encodage, en particulier dans le module RDO. Carte perceptuelle 5 Pour chaque image de la séquence vidéo à encoder, une carte perceptuelle est générée à partir d'un modèle perceptuel de type JND (acronyme du terme anglo-saxon « Just Noticeable Distortion ») qui définit des seuils de perception au-dessous desquels une distorsion introduite dans l'image n'est pas perçue par le système visuel humain. On pourra notamment se référer à [Yang05], qui décrit un modèle JND ci-après 10 désigné par le terme « modèle JND de Yang ». Néanmoins, d'autres modèles JND que celui de Yang permettant d'établir une carte des seuils de perception par pixel sont utilisables sans pour autant sortir du cadre de la présente invention. On décrit ci-après l'utilisation de ladite carte perceptuelle pour contrôler la 15 quantification adaptative et/ou l'optimisation débit-distorsion. Quantification adaptative basée sur la carte perceptuelle La quantification adaptative distribue le budget binaire d'une image entre les différentes partitions de codage en fonction de leur contenu. 20 La quantification appliquée à une partition de codage est définie par la relation : QPpartition = QPimage QPpartition où QPpartition est le budget binaire alloué à la partition et QPimage le budget binaire alloué à l'image. Le paramètre A ni P - - partition est calculé par la quantification adaptative. 25 Selon une forme d'exécution avantageuse de l'invention, chaque paramètre QPpartition est calculé en fonction de la carte perceptuelle, en vue d'allouer davantage de budget aux partitions auxquelles le système visuel humain est sensible. En référence aux travaux décrits dans [Chen10] qui proposent une fonction sigmoïde fonction du modèle JND de Yang pour ajuster le pas de quantification au sein 30 du coeur de codage, la fonction permettant de calculer le paramètre A ni P - - partition en fonction d'une valeur de seuil perceptuel peut être définie par la formule : QPpartition = AQPmax* tanh (c * AJND) où AQPmax est la valeur maximale de QPpartition autorisée dans l'image, c est une constante, 35 tanh désigne une fonction de tangente hyperbolique, et JND est le seuil de perception pour ladite partition, défini par la carte perceptuelle. Les résultats obtenus par les inventeurs montrent que la quantification adaptative ainsi mise en oeuvre permet de réduire l'artefact de Ringing par rapport à une méthode de 3035760 7 quantification adaptative conventionnelle prise comme référence, qui est utilisée dans le codeur x264. Ainsi, ce mode de réalisation de l'invention permet d'améliorer le codage des contours et par conséquent la qualité perçue. 5 Optimisation débit-distorsion basée sur la carte perceptuelle Le module RDO est configuré pour choisir la meilleure prédiction parmi l'ensemble des possibilités décrites par la norme de codage. Les normes de codage H.264/AVC et HEVC ont deux niveaux de précision pour la 10 prédiction : la taille de partition de codage et le mode de prédiction. En ce qui concerne la taille de la partition de codage, chaque partition de codage peut être découpée en sous-partitions. Une partition de codage est de taille 16x16 pixels dans la norme H.264/AVC (la partition est également dénommée « macrobloc » dans cette norme) et de taille jusqu'à 64x64 pixels dans la norme HEVC (la partition est 15 également appelée CTU, acronyme du terme anglo-saxon « Coding Tree Unit », dans cette norme). Ladite partition peut être divisée récursivement en quatre sous-partitions de taille égale jusqu'à une taille de 4x4 pixels. Une telle sous-partition est appelée « bloc » dans la norme H.264/AVC et CU (acronyme du terme anglo-saxon « Coding Unit ») dans la norme HEVC. En règle générale, une large partition de codage est un choix efficace 20 pour encoder une zone de l'image peu texturée et/ou en faible mouvement tandis qu'une petite partition permet de représenter plus efficacement une zone très texturée et/ou en fort mouvement. Pour chaque sous-partition de codage, une prédiction est réalisée, qui peut être de type intra-image ou inter-image. La prédiction intra-image comprend 4 à 9 modes de 25 prédiction en norme H.264/AVC et 36 en norme HEVC. La prédiction inter-image fait intervenir une estimation et une compensation du mouvement à partir d'une ou plusieurs images de référence et réalise une interpolation au demi ou au quart de pixel. La présente invention peut comprendre la mise en oeuvre d'une prédiction inter-image ou d'une prédiction intra-image. 30 Selon une forme particulièrement avantageuse d'exécution de l'invention, la carte perceptuelle est utilisée pour contrôler la découpe de partition. On s'intéresse à titre d'exemple non limitatif au contexte de la norme de codage H EVC. Chaque partition (CTU) présente quatre principaux niveaux de découpe possibles, 35 dénommés respectivement Depth0 (64x64 pixels), Depthl (32x32 pixels), Depth2 (16x16 pixels) et Depth3 (8x8 pixels). Ces découpes sont données à titre d'exemple mais l'homme du métier pourrait choisir d'autres niveaux de découpe sans pour autant sortir du cadre de la présente invention. En particulier, les découpes ne sont pas nécessairement 3035760 8 carrées mais peuvent être rectangulaires. Chaque sous-partition (CU) peut également être découpée pour l'étape de prédiction en PU (acronyme du terme anglo-saxon « Prediction Unit »). Ainsi, lorsque la sous-partition est de taille 8x8 pixels, elle peut être découpée en PU de 4x4 pixels. Par ailleurs, chaque sous-partition peut être découpée 5 pour l'étape de transformée en TU (acronyme du terme anglo-saxon « Transform Unit ») dont la taille est indépendante de celle des PUs. L'utilisation de la carte perceptuelle permet de limiter la profondeur de découpe en fonction d'un indice perceptuel calculé pour chaque partition de codage (CTU), en vue de réduire la complexité de partition sans compromettre la qualité perçue. L'indice perceptuel 10 est par exemple le seuil de perception moyen de la partition. On pourrait choisir d'autres moyens de définir l'indice (par exemple un seuil de perception médian, maximal, etc.) sans pour autant sortir du cadre de l'invention. Trois seuils peuvent être définis pour contrôler l'arbre de décision en fonction de l'indice perceptuel, noté ici idx : 15 - si idx Seuil 3, alors les niveaux testés sont Depth0, Depthl, Depth2 et Depth3. Ce principe peut être étendu au choix des tailles de PU qui sont peu exploitées dans 20 les implémentations actuelles de la norme HEVC. Ainsi, le temps gagné en réduisant le niveau de CU dans les zones où le système visuel humain est peu sensible permet de tester des PUs rectangulaires en prédiction inter-image pour maximiser la qualité perçue à complexité constante. 25 Pré-filtre perceptuel Selon un mode de réalisation, on peut en outre utiliser la carte perceptuelle lors d'une étape de pré-analyse des images de la séquence à encoder. Cette étape de pré-analyse est préalable à l'analyse et à l'optimisation débit-distorsion décrites plus haut. Les images résultant de cette pré-analyse sont utilisées en entrée du module d'analyse et du 30 module RDO. La pré-analyse vise à appliquer à chaque image de la séquence à encoder un pré- filtre contrôlé par la carte perceptuelle de sorte à réduire le contenu de chaque image non significatif vis-à-vis du système visuel humain. On précise que selon l'invention ce pré-filtre perceptuel est combiné au moins à la 35 quantification adaptative perceptuelle ou à l'optimisation débit-distorsion perceptuelle. En effet, ce pré-filtre perceptuel utilisé seul ne permettrait pas d'obtenir les optimisations attendues pour l'encodage contraint en débit. Ceci est dû au fait que le pré- 3035760 9 filtre n'influe pas sur les paramètres d'encodage, de sorte que l'encodeur prendrait ses propres décisions, de manière non contrôlable par la carte perceptuelle. Simplification du modèle JND 5 Selon un mode de réalisation particulièrement avantageux mais non limitatif de l'invention, le modèle JND de Yang peut être simplifié pour permettre le calcul de la carte perceptuel en temps réel. On rappelle que le modèle JND de Yang se base sur les propriétés suivantes du système visuel humain : 10 - forte sensibilité aux zones de luminance modérée, aux zones homogènes et aux contours des objets ; - faible sensibilité aux zones de faible luminance et aux zones contenant de fortes textures. Ce modèle comprend plusieurs étapes de calcul représentées sur la figure 2. 15 A partir d'une image I pour laquelle on veut calculer une carte perceptuelle, on met en oeuvre les trois étapes suivantes : - El : calcul de la moyenne locale de luminance ; - E3 : calcul d'une carte de gradient d'intensité ; - E4 : détection de contours de Canny. 20 L'étape E2 qui succède à l'étape El consiste à mettre en oeuvre la loi de Weber- Fechner. A l'étape E5, qui suit l'étape E4, une carte de contours est calculée. Ladite carte de contours et la carte de gradient d'intensité calculée à l'étape E3 sont combinées pour calculer une carte de texture à l'étape E6. 25 L'étape E7 qui suit l'étape E6 est une étape de mise à l'échelle (« scaling » selon la terminologie anglo-saxonne). Enfin, les étapes E2 et E7 sont suivies du calcul, à l'étape E8, de la carte perceptuelle recherchée. Pour une description plus détaillée de ces différentes étapes, on pourra se référer à 30 [Yang05]. On utilise ici le masquage spatial du modèle JND de Yang (combinant masquage en texture et masquage en luminance) et non le masquage temporel. Ce modèle JND est complexe, notamment du fait de l'étape de détection de contours de type Canny (E4), et ne permet donc pas de calculer la carte perceptuelle en 35 temps réel pour des images de haute définition. Pour pallier cet inconvénient, les inventeurs ont développé un modèle algorithmique simplifié, schématisé par le logigramme de la figure 3. 3035760 10 Dans ce modèle simplifié, l'étape E4 de détection de Canny est remplacée par une étape E4' consistant en un seuillage de la carte de gradient obtenue à l'étape E3. Lorsque le gradient est supérieur à un seuil déterminé, le pixel correspondant est considéré comme un pixel de contour ; sinon, le pixel n'est pas considéré comme appartenant à un 5 contour. Le résultat de l'étape E4' est donc une carte binaire de contours. D'après le modèle de Yang, à l'étape E5 plusieurs transformations sont appliquées à la carte binaire obtenue à l'étape E4' pour obtenir une carte de contours dont les poids varient entre 1 (pixel non contour) à 0,05 (pixel de contour) ; plus un pixel est spatialement proche d'un pixel de contour, plus le poids associé dans la carte de contour 10 est faible. A l'étape E6, la carte de contours obtenue est multipliée à la carte de gradient obtenue à l'étape E3 afin d'obtenir la carte de masquage en texture. Le système visuel humain étant fortement sensible à l'information de contour, l'homme du métier pourrait craindre qu'une simplification de la détection de contours 15 donne lieu : - soit à la détection d'un nombre plus faible de pixels de contour que par la méthode de référence, ce qui aurait pour conséquence que l'encodeur contrôlé par le modèle JND simplifié conserverait moins bien les contours, ce qui risquerait d'induire des dégradations perceptibles de la qualité de l'image ; 20 - soit, inversement, à la détection d'un nombre plus grand de pixels de contours, ce qui aurait pour conséquence que l'encodeur contrôlé par le modèle JND simplifié aurait plus de zones à préserver et par conséquent moins de possibilités de gagner du budget binaire, d'où une marge de manoeuvre plus limitée pour se différencier des encodeurs classiques non perceptuels. 25 Les inventeurs ont évalué le modèle JND simplifié au regard du modèle JND de Yang et ont observé que la détection de contours était plus grossière et identifiait davantage de pixels de contours dans la méthode simplifiée que dans la méthode de référence. Cette constatation a été faite en comparant des cartes binaires de détection de contours (la valeur 0 étant attribuée à un pixel non contour et la valeur 1 à un pixel de 30 contour) sur neuf images issues de séquences vidéo au format 1280x720 50p de contenu hétérogène. L'erreur quadratique moyenne (EQM) de la carte de contours obtenue avec la méthode simplifiée par rapport à celle obtenue par la méthode Canny de référence est nulle en moyenne sur les neuf images testées. Par ailleurs, les inventeurs ont comparé les cartes perceptuelles obtenues avec le 35 modèle JND simplifié et avec le modèle JND de Yang de référence, pour les mêmes images que dans l'évaluation précédente, et ont mesuré l'erreur quadratique moyenne, la différence maximale et la différence minimale. En moyenne sur les images testées, la différence amenée par le modèle simplifié par rapport au modèle de référence est 3035760 11 négligeable car inférieure à 0,2 unité en valeur absolue. En revanche, aux contours, le modèle simplifié apporte des différences significatives (jusqu'à 20 unités). Toutefois, les inventeurs ont vérifié que la simplification du modèle JND n'avait pas d'impact négatif sur la quantification adaptative. A cet effet, les inventeurs ont encodé 5 deux des séquences vidéo mentionnées plus haut (1280x720 50p 4:2:0) avec un encodeur x264. L'encodage a été réalisé à débit constant selon les variantes suivantes : sans quantification adaptative (noté « sans AQ » dans le tableau ci-dessous) ; avec la quantification adaptative x264 connue sous la dénomination VAQ (acronyme du terme anglo-saxon « Variance Adaptive Quantization ») ; et avec la quantification adaptative 10 perceptuelle selon l'invention, respectivement avec le modèle JND de Yang et avec le modèle JND simplifié. Chaque séquence a été ensuite décodée (FFmpeg) et des métriques objectives ont été mesurées. Lesdites métriques sont : - le débit, - le PSNR (acronyme du terme anglo-saxon « Peak Signal to Noise Ratio », 15 - la métrique de Ringing, qui traduit la présence d'artefacts assimilables à des « échos » au voisinage de transitions nettes dans l'image. Ces différentes métriques sont connues de l'homme du métier et leur détermination ne sera donc pas décrite en détail dans le présent texte. Le tableau ci-dessous présente les résultats obtenus selon les différentes variantes 20 d'encodage. Débit Variation PSNR APSNR APSNR Ringing ARinging ARinging (VAQ) [kbit/s] de débit [dB] (par rapport à sans (par rapport à VAQ) (sans [%] AQ) [dB] AQ) x264 sans AQ 20712,14 x 35,59 x x 26,80 x x x264 VAQ 20704,69 -0,07 35,03 -0,56 x 27,83 1,03 x x264 JND simplifié 20708,29 -0,04 34,99 -0,60 -0,04 26,74 -0,06 -1,09 Dans ce tableau, la grandeur APSNR (par rapport à sans AQ) correspond à la différence entre le PSNR mesuré pour chaque encodage avec quantification adaptative et 25 le PSNR mesuré pour l'encodage sans quantification adaptative ; la grandeur APSNR (par 3035760 12 rapport à VAQ) correspond à la différence entre le PSNR mesuré pour l'encodage avec quantification adaptative selon l'invention (x264 JND simplifié) et le PSNR mesuré pour l'encodage x264 VAQ conventionnel ; la grandeur ARinging (sans AQ) correspond à la différence entre le Ringing mesuré pour chaque encodage avec quantification adaptative 5 et le Ringing mesuré pour l'encodage sans quantification adaptative ; la grandeur ARinging (VAQ) correspond à la différence entre le PSNR mesuré pour l'encodage avec quantification adaptative selon l'invention et le PSNR mesuré pour l'encodage x264 VAQ conventionnel. Les comparaisons permettent de vérifier que les traitements apportés ne font pas 10 varier le débit mais les résultats en termes de PSNR montrent que les deux quantifications adaptatives perceptuelles testées augmentent les distorsions par rapport à la quantification adaptative VAQ, qui induit elle-même davantage de distorsion que l'encodage sans quantification adaptative. En revanche, la métrique de Ringing indique une réduction systématique de l'artefact avec les deux quantifications adaptatives 15 perceptuelles, la réduction de l'artefact étant plus forte avec le modèle JND de référence qu'avec le modèle JND simplifié. Enfin, les inventeurs ont couplé une comparaison des cartes AQP générées par les différentes méthodes d'encodage avec une comparaison visuelle. Comme attendu, les cartes de AQP générées par les deux quantifications adaptatives perceptuelles sont 20 semblables. A la différence de la quantification x264 VAQ, les contours des objets sont préservés tandis que les textures sont plus sévèrement quantifiées. Comme déjà mentionné plus haut, la méthode simplifiée détecte davantage de pixels que la méthode de Canny. Le modèle JND simplifié quantifie donc moins ces zones. Cependant, la comparaison visuelle d'agrandissements des séquences testées montre que les deux 25 quantifications adaptatives perceptuelles permettent de réduire l'artefact de Ringing comparativement à la quantification adaptative VAQ. Par ailleurs, les deux quantifications adaptatives perceptuelles donnent une qualité visuelle semblable, avec d'une part une préservation des contours et d'autre part une dégradation des textures plus importante qu'avec la quantification adaptative VAQ. 30 Implémentation en temps réel Bien que le modèle JND simplifié décrit ci-dessus présente des avantages significatifs en termes de rapidité d'encodage, il peut rester toutefois lourd à implémenter dans une plateforme conventionnelle en vue d'un encodage en temps réel de séquences 35 vidéo en haute définition. Pour remédier à cet inconvénient, l'invention propose l'utilisation d'une plateforme fortement parallèle comprenant un coeur de traitement hôte (par exemple un processeur, également désigné par le terme CPU, acronyme du terme anglo-saxon « Central 3035760 13 Processing Unit ») et un réseau de coeurs de traitement parallèles (par exemple des processeurs graphiques, également désignés par le terme GPU, acronyme du terme anglo-saxon « Graphical Processing Unit »), selon une architecture SIMD (acronyme du terme anglo-saxon « Single Instruction on Multiple Data »). 5 L'implémentation est réalisée dans un langage de programmation portable (tel que OpenCL) qui impose la définition de noyaux de calcul (ou kernels) envoyés par le coeur de traitement hôte aux coeurs de traitement parallèles. Le fait de découper le modèle en noyaux de calcul permet de synchroniser les données à la fin d'une série de traitement avant de commencer une nouvelle étape. Les noyaux de traitement sont représentés par 10 les repères K1 à K6 sur la figure 4. Avec la simplification algorithmique décrite ci-dessus, les étapes nécessaires au calcul du modèle JND sont présentées sur la figure 4, en reprenant les signes de référence utilisés dans la figure 3. Le premier noyau K1 réalise l'étape E3, la carte de gradient est calculée en 15 appliquant quatre noyaux de convolution à l'image représentant quatre directions de gradient tel que décrit par Yang. Le maximum (noté Max) en chaque point de la carte des quatre cartes Gradl-Grad4 générées donne la valeur finale du gradient. Le noyau K2 réalise la moyenne de la carte de gradient en appliquant une réduction pour paralléliser le calcul (étape E41 faisant partie de l'étape E4' mise en oeuvre pour 20 simplifier le modèle JND de Yang). Le noyau K3 applique un seuillage à la carte de gradient pour obtenir une carte binaire de contour (étape E42 faisant également partie de l'étape E4' mise en oeuvre pour simplifier le modèle JND de Yang). Le seuil est fonction de la moyenne calculée à l'étape précédente. 25 Le noyau K4 applique une dilatation à la carte binaire de contour à l'aide d'une convolution suivie d'un seuillage afin de paralléliser le calcul (étape E51 faisant partie de l'étape E5 de création de la carte de contours). Le noyau K5 applique une opération linéaire à la carte binaire de contours dilatés afin d'inverser les valeurs de la carte (étape E51 faisant partie de l'étape E5). En sortie du 30 noyau K5, la carte de contours est représentée par des poids égaux à 0,05 ou 1. Le noyau K6 réalise toutes les opérations restantes. L'étape E53, qui fait partie de l'étape E5, consiste à appliquer un filtre gaussien par convolution à la carte de contours. L'étape E6 consiste à multiplier la carte de gradient calculée à l'étape E3 par la carte de contours issue de l'étape E5. En sortie de l'étape E5 on obtient la carte de masquage en 35 texture. L'étape El calcule une moyenne locale autour de chaque pixel par application d'un masque de convolution. L'étape E2 applique une approximation de la loi de Weber Fechner telle que décrite par le modèle de Yang pour générer la carte de masquage en 3035760 14 luminance. A l'étape E7, les cartes de masquage en luminance et de masquage en texture sont additionnées tel que décrit par le modèle de Yang. Plusieurs étapes nécessitent une convolution, qui est très coûteuse en temps : une convolution nécessite N2xWxH MAC (acronyme du terme anglo-saxon « Multiplication 5 Accumulation ») par image avec un masque de convolution NxN et une image de taille WxH. Les étapes faisant intervenir une convolution sont indiquées par un carré sur la figure 4. Une telle plateforme permet les optimisations suivantes : - mise en oeuvre d'une convolution double passe en utilisation la mémoire d'un coeur 10 de traitement (kernels K1, K4 et K6), - réduction pour paralléliser le calcul de moyenne (kernel K2), - double buffering. REFERENCES 15 [Yang05] X. Yang, W. Lin, Z. lu et E. Ong, « Just-noticeable distortion profile with nonlinear additivity model for perceptual masking in color images », IEEE International Conference on Acoustics, Speech and Signal Processing, Vol. 3, pp 609612, April 2003. [Chen10] Zhenzhong Chen et C. Guillemot, "Perceptually-Friendly H.264/AVC 20 Video Coding Based on Foveated Just-Noticeable-Distortion Model", IEEE Transactions on Circuits and Systems for Video Technology, Vol. 20, Issue 6, pp 806-819, 2010. REVENDICATIONS1. Procédé d'encodage d'une séquence vidéo dans un système d'encodage comprenant un coeur de codage normé, ledit procédé étant caractérisé en ce qu'il comprend : - une analyse de la séquence vidéo, dans laquelle on détermine au moins un paramètre d'encodage au moyen d'une carte perceptuelle décrivant, pour chaque image de la séquence, des seuils de perception par pixel ou par partition de codage, - l'encodage de la séquence vidéo par le coeur de codage, dans lequel au moins une étape de l'encodage est contrôlée par ledit paramètre d'encodage. 2. Procédé selon la revendication 1, dans lequel le paramètre d'encodage déterminé à partir de la carte perceptuelle est un paramètre de quantification (QP) à appliquer à chaque image en fonction de la complexité de ladite image et d'un débit cible. 3. Procédé selon la revendication 2, dans lequel, à partir de la carte perceptuelle, le paramètre de quantification alloue davantage de budget binaire aux partitions dans les zones de l'image où le seuil de perception est le plus bas. 4. Procédé selon l'une des revendications 1 à 3, dans lequel le paramètre d'encodage déterminé à partir de la carte perceptuelle est l'ensemble des candidats à la meilleure prédiction d'une partition de codage. 5. Procédé selon la revendication 4, dans lequel le paramètre d'encodage déterminé à partir de la carte perceptuelle est l'ensemble des partitions à évaluer pour chaque bloc de codage de l'image. 6. Procédé selon la revendication 5, dans lequel, à partir de la carte perceptuelle, le partitionnement est mis en oeuvre de sorte à limiter le nombre de découpes de partitions de codage dans les zones de l'image où le seuil de perception est le plus élevé. 7. Procédé selon l'une des revendications 5 ou 6, dans lequel, à partir de la carte perceptuelle, on distribue la complexité de partitionnement en fonction du seuil de perception des zones de l'image. 8. Procédé selon la revendication 4, dans lequel le paramètre d'encodage déterminé à partir de la carte perceptuelle est l'ensemble des prédictions à évaluer pour chaque partition de codage de l'image. 3035760 16 9. Procédé selon la revendication 8, dans lequel, à partir de la carte perceptuelle, la prédiction est mise en oeuvre de sorte à limiter sa précision dans les partitions de codage où le seuil de perception est le plus élevé. 5 10. Procédé selon l'une des revendications 1 à 9, caractérisé en ce que l'on applique à chaque image de la séquence à encoder un pré-filtre contrôlé par la carte perceptuelle de sorte à réduire le contenu de chaque image non significatif vis-à-vis du système visuel humain et en ce que l'on met en oeuvre l'étape d'analyse sur les images 10 pré-filtrées. 11. Procédé selon l'une des revendications 1 à 10, dans lequel la carte perceptuelle est générée à partir d'un modèle JND définissant des seuils de perception au-dessous desquels une distorsion introduite dans l'image n'est pas perçue par le 15 système visuel humain, la génération de la carte perceptuelle comprenant, pour chaque image, les étapes suivantes : (E3) détermination d'une carte de gradient de l'intensité des pixels de l'image, (E4, E4') détection de contours dans l'image, (E5) détermination d'une carte de contours à partir desdits contours détectés, 20 (E6) à partir de la carte de contours déterminée à l'étape (E5) et de la carte de gradient déterminée à l'étape (E3), détermination d'une carte de texture de l'image. 12. Procédé selon la revendication 11, dans lequel l'étape (E4') de détection de contours comprend un seuillage de la carte de gradient d'intensité obtenue à l'étape (E3) 25 de sorte que chaque pixel de l'image présentant un gradient d'intensité supérieur à un seuil déterminé soit considéré comme un pixel de contour. 13. Procédé selon l'une des revendications 11 ou 12, caractérisé en ce que la génération de la carte perceptuelle est mise en oeuvre sur une plateforme de traitement 30 comprenant un coeur de traitement hôte et un réseau de coeurs de traitement, dans lequel le modèle JND est décomposé en noyaux de calcul, chaque noyau de calcul étant traité dans un coeur de traitement respectif. 14. Système d'encodage d'une séquence vidéo, comprenant un module de 35 quantification adaptative, un module d'optimisation débit-distorsion et un coeur de codage normé, au moins un module de l'encodeur étant contrôlé par une carte perceptuelle décrivant, pour chaque image de la séquence à encoder, les seuils de perception par pixel ou par partition de codage.