Brevet FR3022063A1 — publié le 20151211

SYSTEME DE CODAGE DE SEQUENCE VIDEO UTILISANT DES ZONES DE CODAGE ELARGIES L'invention concerne un système de codage de séquence vidéo 5 utilisant des zones de codage élargies avant codage et s'applique au domaine de la compression vidéo. La norme de compression HEVC (High Efficiency Video Coding) permet d'obtenir une amélioration du taux de compression vidéo par rapport à la norme actuelle AVC (Advanced Video Coding) pouvant aller jusqu'à 10 cinquante pourcents, au prix d'une complexité de calcul plus importante. En effet, pour conserver une qualité vidéo équivalente, le volume de calcul est multiplié par quatre. Il est aussi à noter que la fréquence d'affichage a doublé pour atteindre soixante images par seconde. Par ailleurs, le format d'affichage UHD (Ultra High Definition) 15 comprenant quatre fois plus de pixels que le format HD (High Definition) est supporté par la norme HEVC. Les innovations apportées dans les normes de codage de nouvelle génération telles que HEVC induisent des volumes de calcul significatifs devant être supportés par les systèmes de codage. 20 Un découpage spatial de l'image peut être mis en oeuvre afin de tenir compte du fait que les ressources de calcul du système de codage (processeurs, mémoires) sont limitées. Cette technique consiste à découper les images en plusieurs partitions afin de répartir les calculs sur plusieurs modules de calcul, un module de calcul étant responsable du traitement d'au 25 moins une partition. A titre d'exemple, la compression vidéo selon la norme HEVC inclut un découpage des images en plusieurs partitions rectangulaires indépendantes désignées par le mot anglais « tile ». La norme AVC offrait également une possibilité de découpage de l'image en plusieurs partitions 30 rectangulaires indépendantes désignées par le mot « slice », mais le découpage se trouvait bridé à une découpe en plusieurs tranches horizontales. Dans la suite de la description, l'ensemble des paramètres permettant de définir les partitions de découpe d'une image est désigné par l'expression 5 découpe d'image. La compression de manière indépendante des partitions d'une image découpée provoque des ruptures de codage et de qualité aux frontières des partitions. En effet, les images d'une séquence vidéo sont majoritairement codées en inter (codage temporel) en recherchant pour chaque bloc de 10 l'image celui qui lui correspond le mieux dans une image précédemment codée. Lorsqu'un objet est en mouvement, l'objet peut passer d'une partition de l'image découpée à une autre partition, ce qui signifie que la prédiction Inter ne trouvera pas de bloc ressemblant au sein de la partition. Ce phénomène affecte bien sûr davantage le bord des partitions. Dans ce cas, 15 le seul codage possible est le codage Intra (codage spatial) où la prédiction est construite à partir des pixels de l'image courante et non pas des images précédemment codées. Ce codage Intra des frontières des partitions dans les images Inter majoritairement codées Inter peut rendre visibles ces frontières. 20 En outre, ces défauts sont accentués par la discontinuité des prédictions, la rupture du champ de vecteurs de mouvement, les niveaux de quantifications qui peuvent être différents d'une partition codée à l'autre. L'oeil humain perçoit fortement cette différence de codage lorsque les frontières sont fixes dans le temps, ce qui dégrade la perception de 25 l'utilisateur. Une fois que la frontière est détectée par l'observateur, celui-ci la cherchera ensuite inconsciemment et la retrouvera facilement. Cela peut être particulièrement dommageable lors du visionnage de vidéo de haute qualité au format UHD (Ultra-High Definition). Dans ce cas, le spectateur s'attend à une qualité irréprochable et la présence de frontières visibles ne peut pas 30 être acceptée. Plusieurs techniques appartenant à l'état de la technique permettent d'améliorer le codage d'une vidéo partitionnée. Une première technique existante met en oeuvre un échange de pixels entre les codages des partitions. Dans ce cas, chaque matériel de codage en 5 charge d'une partition échange avec les partitions adjacentes les pixels voisins des frontières. Cet échange permet d'optimiser et d'homogénéiser les décisions de codage aux frontières. Cette technique a comme inconvénient majeur d'être coûteuse en bande passante mémoire car elle requiert l'échange d'un grand volume de données entre les codeurs. En effet, les 10 codeurs échangent les pixels décodés, c'est-à-dire le résultat du décodage interne. Une deuxième technique existante s'appuie sur une amélioration de la quantification aux frontières. Afin de diminuer les défauts de codage aux bords des partitions, le débit ou la quantité d'information allouée à ces bords 15 est augmenté. Ceci permet de baisser la quantification et d'améliorer le codage. Cependant, en considérant un débit constant pour l'image, l'augmentation de débit sur les bords des partitions implique une baisse de débit et de qualité sur le reste de l'image. 20 Un but de l'invention est notamment de pallier les inconvénients précités. A cet effet l'invention a pour objet un système de codage d'au moins une séquence vidéo S_e composée d'une suite d'images de manière à produire un flux de sortie F_s, ledit système comprenant : 25 un module de découpe des images de la séquence en N partitions dites initiales ; un module de détermination de N zones de codage, une zone de codage comprenant une partition principale ainsi qu'au moins une partition complémentaire adjacente à ladite partition 30 principale ; N modules de codage réalisant un codage indépendant des N zones de codage afin de générer pour chacune d'elle un flux de codage multi-partitions ; un module d'extraction d'un flux de codage principal pour chaque flux de codage multi-partitions, un flux de codage principal correspondant à la partition principale de la zone de codage lui étant associée ; un module de génération d'un flux de sortie F_s composé des flux de codage principaux. Selon un aspect de l'invention, le module de détermination des zones de codage transmet des données de signalisation à chaque module de codage afin de notifier les dimensions de la partition principale et des partitions complémentaires composant leur zone de codage. Un flux de signalisation est par exemple intégré dans le flux F_s de sortie, 15 ce flux de signalisation intégrant des informations de description des partitions principales telles que leur nombre, leur position et leur dimension. Le module de détermination des zones de codage transmet par exemple le numéro de la partition principale à extraire de chaque flux de codage multipartitions au module d'extraction. 20 Dans un mode de réalisation, le flux de signalisation respecte la syntaxe normalisée HEVC. A titre d'exemple, chaque module de codage est mis en oeuvre par un processeur dédié. Dans un mode de réalisation, un ensemble d'au moins deux modules de 25 codage est mis en oeuvre par un processeur lui étant dédié. L'invention a aussi pour objet un procédé de codage d'au moins une séquence vidéo composée d'une suite d'images afin de produire un flux de sortie et comprenant les étapes suivantes : - découpe des images de la séquence en N partitions dites 30 initiales; détermination de N zones de codage, une zone de codage comprenant une partition initiale ainsi qu'au moins une partition complémentaire adjacente à ladite partition initiale ; codage indépendant des zones de codage afin de générer pour chacune d'elle un flux de codage multi-partitions ; extraction pour chaque flux de codage multi-partitions d'un flux de codage principal correspondant à la partition initiale de la zone de codage associée audit flux de codage multi-partitions ; génération d'un flux de sortie composé des flux de codage principaux. D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit donnée à titre illustratif et non limitatif, faite en regard des dessins annexés parmi lesquels : la figure 1 donne un exemple de système de codage selon l'invention ; la figure 2 présente des partitions principales ainsi que des zones de codage d'une image d'un flux vidéo à coder ; la figure 3 donne un exemple de zone de codage dans laquelle une partition principale est associées à huit partitions complémentaires ; les figures 4 et 5 donnent deux exemples de zone de codage généralisée ; la figure 6 illustre de manière simplifiée le procédé de codage selon l'invention. La figure 1 donne un exemple de système de codage selon l'invention. Ce système de codage traite une séquence vidéo S_e composée d'une suite 30 d'images pour produire un flux de sortie F_s. Pour cela, le système comprend plusieurs modules. Dans cette description, un module désigne un bloc fonctionnel. En d'autres termes, un module correspond à l'ensemble des moyens matériels et/ou logiciels permettant la mise en oeuvre d'une ou plusieurs fonctions. Dans ce mode de réalisation, le système de codage reçoit en entrée une séquence vidéo S_e composée d'une suite d'images. Un module 100 est chargé de la découpe des images de la séquence en N partitions dites principales. Un autre module 101 a pour fonction de déterminer N zones de codage. Dans cette description, une zone de codage correspond à un ensemble composé de l'une des partitions principales de l'image à laquelle est associée au moins une partition complémentaire. Une partition complémentaire est une partition adjacente à la partition principale. Les données des images 110-112 associées à chaque zone de codage sont transmises respectivement à N modules de codage 102-104. Ces N modules de codage 102-104 réalisent un codage indépendant des N zones de codage afin de générer pour chacune d'elle un flux de codage multi-partitions 130-132. Des données de signalisation 120-122 peuvent également être transmises du module 101 vers les modules de codage 102-104 de manière à leur notifier les dimensions des partitions principales et complémentaires composant les zones de codage. Dans un mode de réalisation préféré, chaque module de codage est 25 mis en oeuvre par un processeur. Il est également possible d'utiliser un processeur donné pour mettre en oeuvre plusieurs modes de codage. Un des avantages fondamentaux de l'invention vient du fait que les modules de codage ne se restreignent pas à encoder uniquement la partition de l'image leur étant associée. Chaque module de codage encode 30 l'ensemble des partitions composant une zone de codage. Ainsi, les pixels de la partition principale peuvent être prédits à partir des pixels de la ou des zones de codage complémentaires. Un module 108 est ensuite chargé de l'extraction d'un flux de codage principal pour chaque flux de codage multi-partitions. Un flux de codage est qualifié de principal lorsqu'il correspond à la partition principale de la zone de codage qui lui est associée. Ainsi, N flux de codage principaux 140-142 sont extraits 105-107 des N flux multi-partitions 130-132. Un module 109 génère ensuite un flux de sortie F_s composé des flux de codage principaux 140-142. A titre d'exemple, le flux de sortie F_s est construit simplement en multiplexant les N flux de codage principaux 140142. En outre, un flux de signalisation 150 est intégré dans le flux F_s pour fournir les informations concernant les partitions principales, par exemple le nombre de partitions sur la verticale et l'horizontale de l'image ainsi que la largeur et hauteur des partitions. Dans un mode de réalisation préféré, le flux de signalisation 150 respecte la syntaxe normalisée de la norme HEVC. La figure 2 présente les partitions principales ainsi que des zones de codage d'une image d'un flux vidéo à coder. Dans cet exemple, la largeur 211 de l'image est de 3840 pixels et la hauteur 210 de l'image est de 2160 pixels ce qui correspond à une vidéo au forma Ultra Haute Définition 4K (UHD 4K). L'image est découpée en neuf partitions dites principales. Six partitions principales 200-202, 206-208 ont une dimension de 760 pixels par 1280 pixels et trois partitions principales 203-205 ont une dimension de 640 pixels par 1280 pixels. Deux zones de codage 220, 221 sont également représentées. Selon l'invention, il y a autant de zones de codage que de partitions principales. Ainsi, dans cet exemple, le système et/ou le procédé selon l'invention sont mis en oeuvre en utilisant neuf zones de codage, même si ici seules deux d'entre elles 220, 221 sont représentées. II apparaît que la zone de codage 221 est de dimension supérieure à la partition principale 204 lui étant associée. Plus précisément, dans cette exemple, les frontières de la zone de codage 221 correspondent aux frontières de la partition initiale étendues 222, 223 de 128 pixels. Cela correspond respectivement à des extensions de vingt pourcents et quarante pourcents des dimensions horizontales et verticales de la partition initiale 204. Plus ces extensions sont importantes, plus le suivi du mouvement d'objets d'une partition principale à l'autre est bon. Cela implique en conséquence que les frontières entre partitions seront moins visibles pour un observateur du flux vidéo après décodage. La figure 3 donne un exemple de zone de codage dans laquelle une partition principale est associée à huit partitions complémentaires. Ces neuf partitions complémentaires 301-308 sont adjacentes à la partition principale 300. Dans le cadre de cette invention, le mot adjacent signifie que les partitions complémentaires sont dans le voisinage immédiat de la partition principale. La partition principale ainsi que les partitions complémentaires sont encodées par un module de codage générant un flux multi-partitions comprenant en fait neuf flux de codage. Le module d'extraction 108 extrait le flux de codage correspondant à la partition principale. Avantageusement, le codage inter de la zone de codage par un module de codage du système selon l'invention permet que le flux de codage principal tienne compte des zones de l'image jouxtant la partition principale dans une image précédente (codage inter) du flux vidéo à encoder. Ainsi, les frontières entre les partitions principales des images du flux vidéo décodé deviennent difficilement localisables par les observateurs. L'homme du métier déduira sans effort que d'autres configurations peuvent être envisagées en faisant varier le nombre, la position et la forme des zones complémentaires. Les figures 4 et 5 donnent deux exemples de zone de codage généralisée. Il est à noter que ces deux exemples sont illustratifs et ne sont pas supportés par les normes de compression AVC ou HEVC. En particulier, la norme HEVC implique qu'une zone de codage (partitionnée ou pas) doit être rectangulaire et que la zone de codage est découpée en un nombre de partitions égal au produit du nombre de colonnes par le nombre de rangées. La figure 6 illustre de manière simplifiée le procédé de codage selon 5 l'invention. Le codage concerne au moins une séquence vidéo S_e composée d'une suite d'images et l'application du procédé permet de produire un flux de sortie F_s. Le procédé comprend une étape 600 de découpe des images de la séquence en N partitions dites initiales. 10 Le procédé comprend aussi une étape 601 de détermination de N zones de codage, une zone de codage comprenant une partition initiale ainsi qu'au moins une partition complémentaire adjacente à ladite partition initiale. Le procédé comprend aussi une étape 602 de codage indépendant pour chaque zone de codage afin de générer un flux de codage multi15 partitions pour chacune d'elle. Le procédé comprend aussi 603 une étape d'extraction pour chaque flux de codage multi-partitions d'un flux de codage principal correspondant à la partition initiale de la zone de codage associée audit flux de codage multipartitions. 20 Enfin, le procédé comprend 604 une étape de génération d'un flux de sortie composé des flux de codage principaux. REVENDICATIONS1- Système de codage d'au moins une séquence vidéo S_e composée d'une suite d'images de manière à produire un flux de sortie F_s, ledit système comprenant : un module (100) de découpe des images de la séquence en N partitions dites initiales ; un module (101) de détermination de N zones de codage, une zone de codage comprenant une partition principale ainsi qu'au moins une partition complémentaire adjacente à ladite partition principale ; N modules de codage (102-104) réalisant un codage indépendant des N zones de codage afin de générer pour chacune d'elle un flux de codage multi-partitions ; un module (108) d'extraction d'un flux de codage principal pour chaque flux de codage multi-partitions, un flux de codage principal correspondant à la partition principale de la zone de codage lui étant associée ; un module (109) de génération d'un flux de sortie F_s composé des flux de codage principaux. 2- Système de codage selon la revendication 1 dans lequel le module (101) de détermination des zones de codage transmet des données de signalisation (120-122) à chaque module de codage (102-104) afin de notifier les dimensions de la partition principale et des partitions complémentaires composant leur zone de codage. 3- Système de codage selon l'une des revendications précédentes dans lequel un flux de signalisation (150) est intégré dans le flux F_s de sortie, ce flux de signalisation intégrant des informations dedescription des partitions principales telles que leur nombre, leur position et leur dimension. 4- Système de codage selon la revendication 3 dans lequel le module (101) de détermination des zones de codage transmet le numéro de la partition principale à extraire de chaque flux de codage multipartitions au module d'extraction (108). 5- Système selon la revendications 3 dans lequel le flux de signalisation 150 respecte la syntaxe normalisée HEVC. 6- Système de codage selon l'une des revendications précédentes dans lequel chaque module de codage est mis en oeuvre par un processeur dédié. 7- Système de codage selon l'une des revendications 1 à 5 dans lequel un ensemble d'au moins deux modules de codage est mis en oeuvre par un processeur lui étant dédié. 8- Procédé de codage d'au moins une séquence vidéo composée d'une suite d'images afin de produire un flux de sortie et comprenant les étapes suivantes : découpe (600) des images de la séquence en N partitions dites initiales; détermination (601) de N zones de codage, une zone de codage comprenant une partition initiale ainsi qu'au moins une partition complémentaire adjacente à ladite partition initiale ; codage indépendant (602) des zones de codage afin de générer pour chacune d'elle un flux de codage multi-partitions ; extraction (603) pour chaque flux de codage multi- partitions d'un flux de codage principal correspondant à lapartition initiale de la zone de codage associée audit flux de codage multi-partitions ; génération (604) d'un flux de sortie composé des flux de codage principaux.5