Procédé de codage d'un flux vidéo échelonnable à destination d'utilisateurs de différents profils
La présente invention concerne de manière générale le domaine du codage et du décodage d'images ou de séquences vidéo d'images. Plus précisément, l'invention concerne les techniques de codage et de décodage d'images selon un flux vidéo organisé en couches de données, qui permettent de générer un flux vidéo dit "échelonnable" (d'après l'anglais "scalable"), temporellement, en qualité et en résolution spatiale.
Selon ces techniques, on compresse le flux vidéo à coder suivant un schéma prédictif et hiérarchique en couches: le flux vidéo est décomposé en une couche de base et une ou plusieurs couches de raffinement, chacune étant emboîtée dans une couche de niveau supérieur. Chaque couche combinée aux informations contenues dans la couche de niveau supérieur permet d'améliorer la fréquence des images du flux décodé, sa résolution spatiale et/ou sa qualité. Une de ces techniques est par exemple la norme SVC, d'après l'anglais "Scalable Video Coding" pour "codage vidéo échelonnable", actuellement en cours de standardisation auprès du "Joint Video Team (JVT)", alliance entre le groupe de standardisation MPEG (Moving Picture Expert Group ISO/IEC JTC1/SC29/WG11 ) et I1UIT-T (Union Internationale des Télécommunications ITU-T SG16 Q.6), sous la forme d'une extension de la norme ISO ("International Standard Organisation") 14496-10, aussi appelée H.264/ MPEG-4 AVC ("Advanced Video Coding").
Un exemple de flux de données compressé selon cette norme est représenté à la figure 1. Il est composé d'une couche de base CB et de deux couches de raffinement CR1 et CR2, associées à la couche de base CB. Les couches de raffinement CR1 et CR2 codent des données permettant de rehausser la qualité, la résolution spatiale ou la fréquence des images codées dans la couche de base CB, qui est par exemple un flux codé selon la norme
AVC. La norme SVC permet également de segmenter ces couches CB, CR1 et CR2 en niveaux temporels NT1 , NT2 et NT3.
De telles techniques permettent à des terminaux de capacités différentes, telles que des ordinateurs personnels fixes, des téléphones mobiles ou des assistants personnels numériques (PDA d'après l'anglais "Personal Digital Assistant"), de recevoir un même contenu diffusé sur un réseau de communication tel qu'Internet, et de le décoder en fonction de leurs capacités respectives. Ainsi un terminal mobile de faible résolution décodera seulement la couche de base du contenu reçu par le réseau de transmission, tandis que les terminaux fixes de plus grande capacité décoderont les couches de base et de raffinement de ce contenu, affichant ainsi le contenu dans sa qualité maximale. Ces techniques de codage dit "échelonnable" permettent donc une économie de bande passante, un seul contenu étant diffusé à destination de terminaux de capacités différentes, au lieu d'un contenu par type de terminal.
D'autre part, certains contenus nécessitent également une adaptation en fonction du profil de l'utilisateur qui les reçoit. Par exemple un fournisseur de contenus voulant promouvoir un programme vidéo diffuse souvent ce programme de manière intégrale à destination des abonnés à ce programme, tandis qu'il ne diffuse qu'une partie de ce programme aux non-abonnés, ou le leur diffuse de manière cryptée. De même certains programmes sont adaptés aux personnes souffrant d'un déficit auditif: une interprétation en langage des signes est incrustée à leur intention dans les images diffusées. D'autres programmes nécessitent de plus un décrochage régional, par exemple un journal d'informations traitera des rubriques différentes en fonction des régions où il est diffusé.
Or les techniques de codage échelonnable d'images, telles que décrites ci-dessus, ne prévoient pas de traitement spécifique pour la personnalisation d'un même flux vidéo. Ainsi pour personnaliser un flux vidéo en fonction de différents profils, un serveur de contenus diffusant ce flux vidéo dans un réseau de communication doit coder et diffuser en amont autant de flux vidéo
échelonnables, par exemple autant de flux SVC, que de profils utilisateurs. Cela nécessite donc, entre le serveur de contenus et un des points de présence redistribuant ce flux aux différents utilisateurs dans le réseau de communication, autant de négociations de sessions multimédia que de profils utilisateurs, et également autant d'allocations de ressources entre ces deux entités réseaux que de profils utilisateurs. Cette implémentation n'est pas optimale, car les différentes sessions multimédia ainsi négociées et maintenues sont coûteuses à créer et à maintenir alors qu'elles ont des caractéristiques sensiblement identiques: - début et fin de la session multimédia,
- débit nécessaire,
- codage des différentes couches de base et de raffinement,
- réseau coeur de distribution, etc
La présente invention vise à remédier aux inconvénients de la technique antérieure en fournissant un procédé et un dispositif de codage d'un flux vidéo échelonnable, adaptable en fonction du profil utilisateur, ainsi que des procédés et un système de transmission, qui permettent une économie de ressources réseaux tout en étant simples à mettre en œuvre.
A cette fin, l'invention propose un procédé de codage d'une séquence vidéo en un flux vidéo comportant une couche de base et une ou plusieurs couches de raffinement, à destination d'utilisateurs ayant des profils utilisateurs différents, caractérisé en ce qu'au moins une desdites couches de raffinement code un objet visuel distinct des objets visuels codés par ladite couche de base ou par une autre desdites couches de raffinement, ledit objet visuel correspondant à un contenu sémantique destiné spécifiquement aux utilisateurs d'un desdits profils. Grâce à l'invention, les couches de raffinement d'un même flux vidéo échelonnable sont utilisées pour coder différents contenus en fonction de
différents profils utilisateurs, la couche de base codant une partie du contenu du flux vidéo qui est générique pour tous ces profils utilisateurs. Cette dissociation du contenu du flux vidéo en une partie générique et une partie personnalisée permet d'économiser de la bande passante lors de la transmission de ce flux sur un réseau de communication. Il est à noter que le codage de cette partie générique n'est pas forcément limité à la couche de base, des couches de raffinement étant par exemple dédiées à améliorer la qualité, ou la résolution spatiale, ou encore la fréquence, de cette seule partie générique. L'invention concerne d'ailleurs en outre un procédé de transmission d'un flux vidéo à destination d'utilisateurs ayant des profils utilisateurs différents, lesdits utilisateurs étant connectés par des terminaux de visualisation à un réseau de communication, et ledit flux vidéo étant codé en utilisant le procédé de codage selon l'invention, ledit procédé de transmission comportant les étapes de:
- détermination, en fonction du profil d'un desdits utilisateurs, de ladite au moins une couche de raffinement codant un objet visuel distinct des objets visuels codés par ladite couche de base ou par une autre desdites couches de raffinement, - et envoi à travers ledit réseau de communication de ladite couche de base et de ladite couche de raffinement ainsi déterminée audit utilisateur, ladite couche de raffinement étant destinée à être combinée à ladite couche de base.
Ainsi par exemple si ce flux vidéo est compressé suivant la norme SVC, la transmission d'un seul flux de type SVC est nécessaire entre un serveur de contenus et un point de présence associé dans le réseau de communication, pour envoyer à ce point de présence toutes les personnalisations du flux vidéo. La couche de base étant commune à tous les profils utilisateurs, il suffit au point de présence d'associer, pour chaque profil utilisateur différent, cette couche de base avec la ou les couches de raffinement correspondant à
chaque profil utilisateur pour recréer plusieurs flux vidéo, chacun de ces flux étant adapté à un profil utilisateur déterminé.
De plus l'invention permet de simplifier la transmission du flux vidéo personnalisé entre le serveur de contenus et le point de présence, une seule négociation de session multimédia étant nécessaire.
Selon un mode remarquable de réalisation du procédé de transmission selon l'invention,
- ladite couche de base envoyée audit utilisateur code une séquence d'images initiales dans lesquelles des zones d'intérêt ont été extraites, - et ladite couche de raffinement envoyée audit utilisateur code lesdites zones d'intérêt.
Ce mode de réalisation du procédé de transmission d'un flux vidéo selon l'invention permet de promouvoir un programme vidéo en ne montrant aux utilisateurs non-abonnés que certaines parties des images diffusées aux utilisateurs abonnés. Par exemple les abonnés à ce programme vidéo pourront voir les images complètes d'un match de football, tandis que les non- abonnés ne verront que les images du terrain nu sans les joueurs ni le ballon. Les couches de raffinement destinées aux utilisateurs abonnés codent alors par exemple les maillages associés aux joueurs et au ballon, si les images du flux vidéo sont modélisées par des maillages déformables, et compressées par une technique basée sur des ondelettes. Il est à noter que ce type de codage n'est pas utilisable dans un flux SVC tel que normalisé aujourd'hui, mais est à prévoir dans de futurs types de flux échelonnables.
Cette méthode de promotion de programme vidéo est moins coûteuse en bande passante que les méthodes usuelles consistant à diffuser deux versions du programme, une version intégrale pour les abonnés et une version incomplète pour les non-abonnés. Elle est également moins complexe que les méthodes utilisant des techniques de cryptage, dans lesquelles on diffuse un flux vidéo crypté, seuls les abonnés au programme vidéo correspondant ayant la clef permettant de désembrouiller ce flux. Le fait de ne pas nécessiter de clef de décryptage rend de plus le piratage moins aisé.
L'invention concerne aussi un procédé d'incrustation d'images d'un premier flux vidéo dans des images d'un second flux vidéo, caractérisé en ce qu'il utilise un troisième flux vidéo codé en utilisant le procédé de codage selon l'invention, et dans lequel: - ladite couche de base code des images obtenues par traitement desdites images du second flux vidéo, ledit traitement incluant une étape d'extraction des morceaux d'images situés sur des zones d'incrustation destinées à recevoir lesdites images du premier flux vidéo, - et ladite au moins une couche de raffinement code lesdites images du premier flux vidéo.
Ce procédé d'incrustation d'images selon l'invention permet d'insérer une première vidéo dans une petite fenêtre à l'intérieur d'une deuxième vidéo en plein écran, par exemple la vidéo d'un interprète en langue des signes dans la vidéo d'un magazine télévisé. On obtient ainsi une vidéo personnalisée, la première vidéo pouvant varier en fonction de l'utilisateur recevant la deuxième vidéo.
Par rapport aux méthodes usuelles d'insertion d'une vidéo dans une autre, appelées méthodes Picture-in-Picture (PiP), le procédé d'incrustation selon l'invention permet de simplifier le décodage du flux vidéo personnalisé obtenu par cette insertion de vidéo, et de réduire le débit du flux arrivant au décodeur qui effectue ce décodage. En effet, les méthodes PiP usuelles nécessitent, au niveau du décodeur, la gestion de deux flux vidéo distincts et donc de deux instances de décodage, ainsi que l'implémentation d'un logiciel permettant de superposer ces deux flux vidéo, ce qui est complexe. De plus, avec ces méthodes, le flux vidéo qui est en mode fenêtre a un débit qui s'ajoute à celui du flux vidéo affiché en plein écran. Le procédé d'incrustation selon l'invention simplifie le décodage en n'envoyant au décodeur qu'un seul flux vidéo échelonnable, par exemple un flux de type SVC, composé d'une couche de base codant les images du flux vidéo en plein écran auxquelles on a soustrait la fenêtre d'incrustation des images du flux vidéo en mode fenêtre, et d'une couche de raffinement codant les images du flux vidéo en mode
fenêtre. Le flux vidéo en plein écran n'étant pas envoyé intégralement à l'utilisateur, le débit reçu au niveau du décodeur est donc plus faible que dans les méthodes PiP. De plus grâce à l'invention, la superposition des vidéos au niveau du décodeur se fait automatiquement en fonction des couches de raffinement qu'il reçoit, ces couches de raffinement pouvant coder des vidéos différentes en fonction du profil de l'utilisateur.
L'invention concerne encore un procédé de décrochage d'un programme audiovisuel diffusant successivement une séquence générique d'images puis des séquences personnalisées d'images, utilisant le procédé de transmission d'un flux vidéo selon la revendication 2, dans lequel:
-lorsque ladite séquence générique est diffusée, ladite couche de base code ladite séquence générique,
-et lorsque lesdites séquences personnalisées sont diffusées, ladite au moins une couche de raffinement code uniquement une desdites séquences personnalisées, ladite couche de base ne codant plus d'objets visuels, et ladite séquence personnalisée étant destinée audit utilisateur.
Ce procédé de décrochage selon l'invention permet de réaliser un décrochage de programme audiovisuel au niveau d'un point de présence dans un réseau de diffusion, par exemple le décrochage régional d'un journal télévisé, sans utiliser de logiciel spécifique, communément appelé "splicer", au niveau du point de présence. Un "splicer" est en effet habituellement utilisé pour faire la jonction entre plusieurs flux vidéo, par exemple entre la fin d'un flux vidéo correspondant à un journal télévisé national et le début d'un flux vidéo correspondant à un journal télévisé régional. Grâce à l'invention, cette jonction n'est pas nécessaire: on envoie par exemple un flux vidéo de type SVC au décodeur d'un utilisateur, dans lequel la couche de base code le journal télévisé national lorsque celui-ci est diffusé et rien lorsque le journal régional est diffusé, et inversement les couches de raffinement codent seulement le journal régional lorsque celui-ci est diffusé. Ainsi la jonction des flux s'effectue naturellement au niveau du décodeur par combinaison des couches de raffinement avec la couche de base.
L'invention concerne encore un dispositif de codage d'un flux vidéo comportant une couche de base, et une ou plusieurs couches de raffinement, caractérisé en ce qu'il comporte des moyens adaptés à mettre en œuvre le procédé de codage selon l'invention. L'invention concerne de plus un système de transmission d'un flux vidéo comportant une couche de base, et une ou plusieurs couches de raffinement à destination d'utilisateurs ayant des profils utilisateurs différents, lesdits utilisateurs étant connectés par des terminaux de visualisation à un réseau de communication, et ledit système comportant des moyens de transmission auxdits utilisateurs de ladite couche de base à travers ledit réseau de communication, caractérisé en ce qu'il comporte en outre:
- des moyens de détermination, en fonction du profil d'un desdits utilisateurs, d'au moins une couche parmi lesdites couches de raffinement, codant un objet visuel distinct des objets visuels codés par ladite couche de base ou par une autre desdites couches de raffinement, ledit objet visuel correspondant à un contenu sémantique destiné spécifiquement aux utilisateurs dudit profil,
- et des moyens de transmission de ladite couche de raffinement ainsi déterminée audit utilisateur à travers ledit réseau de communication, ladite couche de raffinement étant destinée à être combinée à ladite couche de base.
Ce système de transmission selon l'invention se limite par exemple à un seul dispositif, comme un point de présence dans le réseau de communication, ou au contraire est formé de plusieurs serveurs reliés par exemple à des bases de données de profils utilisateur.
L'invention concerne aussi un signal représentatif de données d'un flux vidéo destiné à des utilisateurs ayant des profils utilisateurs différents, lesdits utilisateurs étant connectés par des terminaux de visualisation à un réseau de communication, et lesdites données étant codées suivant une couche de base et une ou plusieurs couches de raffinement, ledit signal étant caractérisé en
ce que au moins une desdites couches de raffinement code un objet visuel distinct des objets visuels codés par ladite couche de base ou par une autre desdites couches de raffinement, ledit objet visuel correspondant à un contenu sémantique destiné spécifiquement aux utilisateurs d'un desdits profils.
Le dispositif de codage, le système de transmission et le signal représentatif de données d'un flux vidéo selon l'invention présentent des avantages analogues à ceux du procédé de codage et du procédé de transmission d'un flux vidéo selon l'invention. L'invention concerne enfin un programme d'ordinateur comportant des instructions pour mettre en œuvre l'un des procédés selon l'invention, lorsqu'il est exécuté sur un ordinateur.
D'autres caractéristiques et avantages apparaîtront à la lecture d'un mode de réalisation préféré décrit en référence aux figures dans lesquelles:
- la figure 1 , déjà commentée en relation avec l'art antérieur, représente un flux vidéo SVC,
- la figure 2 représente un système de transmission mettant en œuvre le procédé de codage, le procédé de transmission, le procédé d'incrustation d'images et le procédé de décrochage de programme audiovisuel selon l'invention, dans un réseau de communication,
- la figure 3 représente des étapes d'un mode de réalisation du procédé de codage selon l'invention, - la figure 4 représente des images codées par différentes couches d'un flux vidéo de type SVC codé selon l'invention,
- la figure 5 représente un flux vidéo de type SVC codé selon l'invention et employé dans une utilisation du procédé de transmission selon l'invention,
- la figure 6 représente un emboîtement de couches de raffinement dans une couche de base d'un flux de type SVC, dans une première variante d'un mode de réalisation de l'invention,
- la figure 7 représente un emboîtement de couches de raffinement dans une couche de base d'un flux de type SVC, dans une seconde variante d'un mode de réalisation de l'invention,
- la figure 8 représente un flux vidéo de type SVC codé selon l'invention et employé dans une utilisation du procédé d'incrustation d'images selon l'invention,
- la figure 9 représente un emboîtement de couches de raffinement dans une couche de base d'un flux de type SVC, dans une première variante d'un mode de réalisation de l'invention, - la figure 10 représente un emboîtement de couches de raffinement dans une couche de base d'un flux de type SVC, dans une seconde variante d'un mode de réalisation de l'invention,
- la figure 11 représente un flux vidéo de type SVC codé selon l'invention et employé dans une utilisation du procédé de décrochage de programme audiovisuel selon l'invention,
- la figure 12 représente un emboîtement de couches de raffinement dans une couche de base d'un flux de type SVC,
- la figure 13 représente des étapes du procédé de transmission selon l'invention.
Selon un mode préféré de réalisation de l'invention, celle-ci est mise en œuvre dans un réseau de communication RES représenté à la figure 2, auquel sont connectés des utilisateurs de différents profils par l'intermédiaire de terminaux de visualisation, notamment les terminaux TV1 , TV2, TV3, TV4, TV5 et TV6. Le réseau de communication RES est composé de plusieurs types de réseaux, un réseau cœur RES1 , qui est par exemple le réseau Internet, un réseau d'accès RES2, qui est par exemple le Réseau Téléphonique Commuté RTC, et un réseau d'accès RES3 qui est par exemple un réseau câblé en fibre optique de distribution de télévision numérique, ou un réseau WiFi (Wireless Fidelity, selon la norme "Institute of Electronical and
Electronics Engineers" (IEEE) 802.11 ), ou encore un réseau d'accès dit "3G" utilisant la technologie "Universal Mobile Télécommunications System" (UMTS). Les terminaux de visualisation TV1 , TV2, TV3 et TV4 dans le réseau d'accès RES2 sont reliés respectivement aux passerelles domestiques PD1 , PD2, PD3 et PD4, lesquelles sont connectées à un point de présence de service PoP1 dans le réseau d'accès RES2, par exemple par la technologie ADSL ("Asymmetrical Digital Subscriber Line"). Les terminaux TV5 et TV6 sont également reliés, par exemple par fibre optique, à un point de présence de service PoP2 dans le réseau d'accès RES3. Ces points de présence PoP1 et PoP2 sont reliés par fibre optique à un serveur de contenus SC dans le réseau de communication RES1. D'autres types d'architectures de réseau permettant de transmettre des flux vidéo sont bien sûr utilisables pour mettre en œuvre l'invention.
Le procédé de codage selon l'invention est implémenté, dans ce mode de réalisation, de manière logicielle dans le serveur de contenus SC, gérant la diffusion de séquences vidéo, stockées dans une base de données BDD reliée au serveur de contenus SC. La base de données BDD comporte également une table de programmation de diffusion de ces séquences vidéo à destination des utilisateurs connectés au réseau de communication RES. A chacun de ces utilisateurs correspond un profil utilisateur, permettant de ne diffuser certains contenus qu'aux utilisateurs d'un certain profil. La base de données BDD contient donc également une table de correspondance entre les séquences vidéo de la base de données BDD et des profils utilisateurs, permettant de déterminer les utilisateurs auxquels doit être transmise chaque séquence vidéo.
Le serveur de contenus SC comporte de plus deux modules logiciels, un module MP de prétraitement, permettant de prétraiter certains contenus, et un module CO de codage, permettant de coder des contenus dans un flux échelonnable, et dont le fonctionnement sera détaillé plus loin. Dans ce mode de réalisation de l'invention, le serveur de contenus SC prétraite des contenus et les code selon l'invention afin de délivrer des flux
vidéos échelonnables fd1 , ft1 et fil personnalisables par les points de présence PoP 1 et PoP2 situés dans les réseaux d'accès respectifs RES2 et RES3. Le procédé de transmission selon l'invention est implémenté dans les points de présence PoP1 et PoP2, qui utilisent par exemple les flux fM , fd1 et ft1 codés selon l'invention pour transmettre des flux personnalisés. Le procédé de décrochage d'un programme audiovisuel selon l'invention est implémenté dans le point de présence PoP2, qui utilise par exemple le flux fd1 pour effectuer ce décrochage. De même le procédé d'incrustation selon l'invention est implémenté dans cet exemple de réalisation au niveau du terminal de visualisation TV4, qui utilise le flux fi3 codé selon l'invention.
D'autres modes de réalisation sont également envisageables, par exemple en variante le point de présence PoP1 reçoit du serveur de contenus SC des séquences vidéos codées dans un flux non échelonnable, effectue le codage de ces séquences selon l'invention dans un flux échelonnable, et délivre celui-ci aux passerelles domestiques PD1 à PD4 qui implémentent alors le procédé de transmission selon l'invention.
La transmission des flux vidéos fd1 , ft1 et fil aux points de présence PoP1 et PoP2 à partir de séquences vidéos contenues dans la base de données BDD s'effectue en trois étapes E1 à E3 représentées à la figure 3:
La première étape E1 , effectuée par le module logiciel MP, est une étape de prétraitement de séquences vidéos contenues dans la base de données BDD et destinées à être diffusées aux utilisateurs connectés au réseau de communication RES. Par exemple:
- Le serveur de contenus SC détermine, en consultant la table de programmation et la table de correspondance contenues dans la base de données BDD, qu'il doit diffuser un match de football en intégralité à des utilisateurs abonnés, et ce même match de football mais privé de zones d'intérêt à des utilisateurs non abonnés. Ces zones d'intérêt sont ici déterminées comme étant les joueurs et le ballon présents dans
chaque image de la séquence vidéo initiale du match de football. Le serveur de contenus SC prétraite donc, dans cette étape E1 , les images de la séquence vidéo de ce match de football contenu dans la base de données BDD de manière à générer deux flux de données: o un premier flux codant les images de la séquence mais sans coder aucun joueur ni ballon, o et un deuxième flux codant les joueurs et le ballon présents dans chaque image de la séquence. Pour générer ces flux on utilise par exemple des masques composés de blocs de pixels, permettant de déterminer les zones de l'image contenant les joueurs ou le ballon. Le terrain dans les images du premier flux ne contenant ni joueurs ni ballon est recomposé par traitement d'images aux endroits où les joueurs et le ballon ont été extraits, par exemple en utilisant des techniques d'interpolation. En variante, le flux codant les joueurs et le ballon présents dans chaque image de la séquence est brouillé par le module logiciel MP, c'est-à-dire que les images des joueurs et du ballon sont embrouillées. Dans une autre variante de réalisation, le premier flux code des images de la séquence vidéo du match de football à diffuser, dans lesquelles les joueurs et le ballon sont codés sous une forme dégradée ou occultée.
De même, le serveur de contenus SC détermine qu'il doit diffuser un magazine d'informations à des utilisateurs connectés au réseau de communication RES, et qu'il doit diffuser aussi ce magazine d'informations mais avec une petite fenêtre d'incrustation montrant la vidéo d'un interprète en langage des signes pour d'autres utilisateurs souffrant d'un déficit auditif. Le serveur de contenus SC prétraite donc, dans cette étape E1 , les images de la séquence vidéo de ce magazine d'informations contenu dans la base de données BDD de manière à générer trois flux de données représentés à la figure 4:
o Un flux F1 codant les images du magazine d'informations dans lesquelles sont extraits les pixels d'un carré correspondant à la petite fenêtre d'incrustation. Le carré correspondant est donc codé en noir dans ce flux F1 , ou encore dans un mode de compression permettant de consommer le moins de débit possible. Les inter-images du carré sont par exemple codées selon le mode SKIP. o Un flux F2 codant des images complémentaires de celles codées par le flux F1 , c'est-à-dire des images de pixels noirs à l'exception des pixels correspondant à la petite fenêtre d'incrustation, dont les valeurs sont celles des pixels ayant été extraits sur les images du magazine d'informations. Le flux F2 code donc des morceaux d'images du magazine d'informations correspondant à la petite fenêtre d'incrustation. o Un flux F3 codant des images de pixels noirs à l'exception des pixels correspondant à la petite fenêtre d'incrustation, ceux-ci reproduisant en petite taille les images de la vidéo montrant un interprète en langage des signes.
Pour générer ces flux, le module logiciel MP utilise par exemple un masque permettant de déterminer la zone correspondant à la petite fenêtre d'incrustation dans les images grand format, c'est-à-dire de la même taille que les images du magazine d'information.
De plus, il est à noter que de nombreuses variantes de réalisation du procédé d'incrustation selon l'invention sont possibles, par exemple en variante les flux F1 , F2 et F3 sont codés de manière à incruster plusieurs petites vidéos dans les images du magazine d'informations, de différentes tailles ou formats et à des endroits différents.
La seconde étape E2, effectuée par le module logiciel CO, est une étape de codage des séquences vidéo prétraitées à l'étape E1 , et d'autres
séquences vidéo ne nécessitant pas de prétraitement mais devant être également diffusées à des utilisateurs connectés au réseau de communication RES. Dans cet exemple de réalisation, le module logiciel CO effectue un codage de ces séquences selon des flux échelonnables de type SVC. Cependant d'autres types de codage de flux échelonnables sont également utilisables.
Ce codage, effectué selon l'invention, a la particularité, par rapport à la norme SVC, de coder des contenus différents dans différentes couches d'un même flux échelonnable. La couche de base code un contenu générique à tous les profils utilisateurs tandis que les contenus plus spécifiques à un ou plusieurs profils utilisateurs sont codés dans des couches de raffinement. Ces contenus spécifiques correspondent à des objets visuels distincts, c'est-à-dire forment un contenu sémantique qui s'ajoute ou se substitue à celui qui est codé par la couche de base ou par d'autres couches de raffinement. Autrement dit, ces contenus spécifiques ne contribuent pas simplement à raffiner la qualité, la résolution spatiale ou la fréquence des images codées par la couche de base ou par une autre couche de raffinement, comme c'est le cas dans la norme SVC.
Par exemple, dans cette étape E2, le module logiciel CO produit plusieurs flux de type SVC:
- Le flux ft1 correspondant au match de football à diffuser par le serveur de contenus SC. Ce flux, représenté à la figure 5, comprend: o une couche de base Cto, codant dans une faible résolution les images prétraitées à l'étape E1 et correspondant à une séquence d'images de terrain nu, o une couche de raffinement Cn, permettant de raffiner la résolution des images codées par la couche de base Cto, o une couche de raffinement CQ, codant dans une faible résolution les images des joueurs et du ballon qui ont été obtenues par le prétraitement à l'étape E1 ,
o et une couche de raffinement Co, permettant de raffiner la résolution des images codées par la couche de raffinement C^. Chaque couche de raffinement indique dans sa syntaxe quelle couche elle utilise pour la prédiction inter-couche. Les couches de raffinement sont donc emboîtées les unes par rapport aux autres dans la couche de base selon un arbre représenté à la figure 6: la couche Ct3 utilise la couche C^, qui utilise la couche Cn, qui elle-même utilise la couche Cω.
En variante les couches de raffinement sont emboîtées les unes par rapport aux autres dans la couche de base selon un arbre représenté à la figure 7: la couche Ct3 utilise la couche Cn qui utilise la couche Cto tandis que la couche C^ utilise la couche Cto. Dans cette variante de réalisation, la couche de raffinement Ct3 code entièrement les images des joueurs et du ballon obtenues par prétraitement à l'étape E1 , dans une haute résolution. Cette variante permet à un utilisateur abonné ayant une télévision haute définition de ne décoder que trois couches, Cto, Cn et Ct3, et à un utilisateur abonné ayant une télévision de définition standard de ne décoder que deux couches, au lieu de respectivement 4 couches (Cto, CM ,
Ct3 et Ct4), et 3 couches (Cto, CM et C^) si on utilise l'emboîtement correspondant à la figure 6. Elle permet de plus à un utilisateur abonné ayant une télévision de définition standard de recevoir un flux plus en conformité avec les capacités de sa télévision.
De plus les joueurs, le ballon et terrain nu sont codés dans des blocs qui n'ont pas de correspondance avec ceux de la couche de base. Cette particularité permet à un décodeur qui reçoit le flux ft1 de ne pas utiliser la prédiction inter-couche lors de la combinaison des couches C^ et CM par exemple. En revanche la prédiction inter-couche est utilisée par le décodeur pour les couches ayant un réel rôle de raffinement, par exemple entre les couches CM et Cra ou Ct3 et C^.
Le module logiciel CO produit également le flux fil correspondant au magazine d'informations à diffuser par le serveur de contenus SC. Ce flux, représenté à la figure 8, comprend:
o une couche de base C,o, codant dans une faible résolution les images du flux F1 , o une couche de raffinement d, permettant de raffiner la résolution des images codées par la couche de base C,o, o une couche de raffinement Ci2, codant dans une faible résolution les images du flux F2, o une couche de raffinement C13, permettant de raffiner la résolution des images codées par la couche de raffinement C&, o une couche de raffinement C,4, codant dans une faible résolution les images du flux F3, o et une couche de raffinement C,5> permettant de raffiner la résolution des images codées par la couche de raffinement C14.
Comme pour le flux ft1 , chaque couche de raffinement du flux fil indique dans sa syntaxe quelle couche elle utilise pour la prédiction inter- couche. Les couches de raffinement sont donc emboîtées les unes par rapport aux autres dans la couche de base selon un arbre représenté à la figure 9: la couche C,3 utilise la couche C,2, qui utilise la couche C11, qui elle-même utilise la couche C,o, et la couche C,5 utilise la couche Cl4) qui utilise la couche C,i, qui elle-même utilise la couche C,o. En réalité, les blocs de la couche C,2 ne correspondant pas à ceux de la couche C,i, et les blocs de la couche C,4 ne correspondant pas à ceux de la couche C,i, un décodeur recevant le flux fil n'utilisera pas la prédiction inter-couche lorsqu'il combinera C,2 et C-π, ou C,4 et C,-|.
En variante les couches de raffinement sont emboîtées les unes par rapport aux autres dans la couche de base selon un arbre représenté à la figure 10: la couche C13 utilise la couche C1 qui utilise la couche C,o, la couche C,5 utilise la couche d qui utilise la couche Cl0, tandis que les couches C,2 et C,4 utilisent la couche C,Q. Dans cette variante de réalisation, les couches de raffinement C,3 et C15 codent entièrement les images respectivement du flux F2 et du flux F3, mais dans une haute résolution.
Cette variante permet à un utilisateur abonné ayant une télévision haute
définition de ne décoder que trois couches, par exemple C10, C,i et C,3, et à un utilisateur abonné ayant une télévision de définition standard de ne décoder que deux couches, par exemple C,o et C,2, au lieu de respectivement 4 couches (do, di, C12 et C,3), et 3 couches (C10, C,i et C12) si on utilise l'emboîtement correspondant à la figure 9. Elle permet de plus à un utilisateur abonné ayant une télévision de définition standard de recevoir un flux plus en conformité avec les capacités de sa télévision.
Dans ce codage du flux fil , le module logiciel CO code de préférence les macroblocs correspondant à la petite fenêtre d'incrustation dans les images des flux F1 , F2 et F3, de manière indépendante des autres macroblocs de ces images. En effet lors d'un codage SVC avec une couche de base et une couche de raffinement, les données codées dans la couche de base servent à la reconstruction de la couche de raffinement. Or par exemple dans une image du flux F1 , si un macrobloc de la zone hors du carré noir est codé de manière à s'appuyer sur un macrobloc situé dans la zone du carré noir, il risque d'être mal reconstruit lors du décodage de l'image du flux F1 combiné avec le flux F2 ou F3. En effet lors de cette reconstruction, si la couche de base C10 est combinée avec une couche de raffinement remplissant cette zone, telle que C,2 ou C,4, la zone du carré noir contiendra autre chose que du noir. Ainsi les macroblocs s'appuyant sur la zone noire de la couche de base, s'appuieront sur une zone autre que noire et donneront une reconstruction différente. Ceci est vrai uniquement lorsque la couche de raffinement considérée est codée sans connaissance de la couche de base.
Par conséquent, les macroblocs des images hors de la fenêtre d'incrustation, ne doivent pas être codés à partir des informations des macroblocs de cette fenêtre. Ceci implique une restriction au niveau du codeur, soit par l'utilisation de groupes de macroblocs, appelés "slices", qui sont assimilés à des sous-images indépendantes, soit par un codage dit
"intelligent" interdisant toute prédiction à partir de la zone de la fenêtre d'incrustation.
L'utilisation de "slices" est prévue dans MPEG-4 AVC et est appelée "Arbitrary Slice Order (ASO)". Elle n'est autorisée que dans le profil "Baseline" communément utilisé pour le monde mobile comme outil de robustesse. Dans ce cas on groupe par exemple les macroblocs correspondant à la zone de la fenêtre d'incrustation dans un premier "slice", et ceux hors de cette zone dans un second "slice".
Dans le cas de la télévision résidentielle, seuls les profils "Main" et "High" ont été retenus par le consortium DVB ("Digital Video Broadcasting"). Dans ce cas d'usage, il faut donc utiliser la seconde méthode visant à contraindre l'encodeur de ne pas s'appuyer, pour le codage des macroblocs hors de la zone d'incrustation, sur la zone de la fenêtre d'incrustation, lors du codage de la couche de base.
- Le module logiciel CO produit également le flux fd1 , représenté à la figure 11, et correspondant à un journal d'informations national suivi de journaux d'informations régionaux que doit diffuser le serveur de contenus SC. Ces contenus ne nécessitent pas de prétraitement par le module de prétraitement MP. Ils sont donc directement codés par le module de codage CO dans le flux fd1 comme suit: o La couche de base Cao du flux fd1 code toutes les images du journal d'informations national, puis des images de pixels noirs, dont le nombre correspond à la durée de diffusion d'un journal d'informations régional. o Une couche de raffinement Cdi du flux fd1 code des images de pixels noirs, dont le nombre correspond à la durée de diffusion du journal d'informations national, puis code les images d'un journal d'informations régional. o Une couche de raffinement Cd2 du flux fd1 code des images de pixels noirs, dont le nombre correspond à la durée de diffusion du journal d'informations national, puis code les images d'un autre journal d'informations régional, de même durée que le précédent.
Comme pour les flux ft1 et fil , chaque couche de raffinement du flux fd1 indique dans sa syntaxe quelle couche elle utilise pour la prédiction intercouche. Les couches de raffinement sont donc emboîtées les unes par rapport aux autres dans la couche de base selon un arbre représenté à la figure 12: la couche Cd 1 utilise la couche Cdo, et la couche Cd2 utilise la couche Cdo- Les blocs des couches Cdi et Cd2 ne correspondant pas à ceux de la couche Cdo, un décodeur recevant le flux fd1 n'utilisera pas la prédiction inter-couche lorsqu'il combinera Cd2 et Cdo, ou Cdi et Cdo-
Ce codage du flux fd1 permet d'effectuer un décrochage régional, après la diffusion du journal national, sans mettre en œuvre d'équipement spécifique au niveau d'un point de présence PoP2 du réseau RES3.
En variante, les flux ft1 , fil et fd1 comportent d'autres couches de raffinement, par exemple pour améliorer la qualité, la fréquence ou la résolution spatiale des images codées.
L'étape E3 est une étape d'envoi des flux codés à l'étape E2 aux entités concernées dans le réseau de communication RES. La table de correspondance contenue dans le serveur de contenus SC permet à celui-ci de déterminer que: - le flux ft1 est à envoyer uniquement au point de présence PoP1 , car le flux ft1 est destiné seulement à des utilisateurs connectés au point de présence PoP1 , notamment les utilisateurs connectés par les terminaux de visualisation TV1 et TV2,
- le flux fil est à envoyer uniquement au point de présence PoP1 , car le flux fi 1 est destiné seulement à des utilisateurs connectés au point de présence PoP1 , notamment les utilisateurs connectés par les terminaux de visualisation TV3 et TV4,
- et le flux fd1 est à envoyer uniquement au point de présence PoP2, car le flux fd1 est destiné seulement à des utilisateurs connectés au point de présence PoP2, notamment les utilisateurs connectés par les terminaux de visualisation TV5 et TV6.
Le serveur de contenus SC transmet donc les flux ft1 et fι'1 au serveur de présence PoP1 , et le flux fd1 au serveur de présence PoP2. Les flux ft1 , fil et fd1 ayant chacun au moins une couche de raffinement codant un objet visuel distinct des objets visuels codés par la couche de base ou une autre couche de raffinement du flux considéré, les signaux transportant les flux ft1 , fι'1 et fd1 sont codés selon l'invention. Le serveur de contenus SC transmet de plus, dans cette étape E3, une description des flux ft1 et fil au serveur de présence PoP1 , et une description du flux fd1 au serveur de présence PoP2. Ces descriptions indiquent, pour les flux échelonnables ft1 , fil et fd1 , aux utilisateurs de quels profils sont destinés ces flux et les différentes couches composant ces flux. La transmission de ces descriptions s'effectue par exemple pendant les négociations de sessions multimédia précédant la transmission des flux ft1 , fil et fd1 entre le serveur SC et les points de présence PoP1 ou PoP2. Cette transmission de flux ne nécessite qu'une négociation de session entre le serveur de contenus SC et le point de présence PoP1 ou PoP2 pour chacun de ces flux. De plus elle permet une économie de bande passante. Par exemple, pour transmettre le flux ft1 , on utilise une seule session à 3 Mb/s (Mégabits par seconde) au lieu de deux sessions à 3Mb/s, c'est-à-dire une session à 3 Mb/s pour transmettre un match de football intégralement aux utilisateurs abonnés et une session à 3Mb/s pour transmettre une version allégée de match de football aux utilisateurs non-abonnés.
A la réception des flux ft1 , fil et fd1 , les points de présence PoP1 et
PoP2 mettent en œuvre le procédé de transmission selon l'invention. Celui-ci comporte des étapes E4 et E5 représentées à la figure 13:
L'étape E4 est la détermination, en fonction des profils des utilisateurs connectés au point de présence PoP1 , des couches de raffinement qui leur sont plus spécifiquement destinées. Pour cela le point de présence PoP1 consulte les descriptions des flux ft1 et fil qui lui ont été transmises à l'étape
E3 par le serveur de contenus SC, ainsi qu'un registre utilisateur, stocké et régulièrement mis à jour dans le point de présence PoP1. Ce registre utilisateur indique notamment quels sont les profils de chaque utilisateur connecté au point de présence PoP1. A l'issue de cette étape E4, le point de présence PoP1 détermine par exemple que:
- l'utilisateur du terminal de visualisation TV1 a un profil d'abonné lui permettant de recevoir les couches de raffinement Cn, C& et Ct3,
- tandis que l'utilisateur du terminal de visualisation TV2 a un profil de non-abonné lui permettant de recevoir seulement la couche de raffinement Cn,
- l'utilisateur du terminal de visualisation TV3 a un profil lui permettant de recevoir seulement les couches de raffinement C,i, C,2 et C,3,
- tandis que l'utilisateur du terminal de visualisation TV4 a un profil lui permettant de recevoir seulement les couches de raffinement C,i, C14 et C15.
De même à l'étape E4, le point de présence PoP2 détermine les couches de raffinement destinées à chacun des utilisateurs connectés au point de présence PoP2. Pour cela il consulte la description du flux fd1 qui lui a été transmise à l'étape E3 par le serveur de contenus SC, ainsi qu'un registre utilisateur similaire à celui stocké dans le point de présence PoPL A l'issue de cette étape E4, le point de présence PoP2 détermine par exemple que:
- l'utilisateur du terminal de visualisation TV5 a un profil d'abonné lui permettant de recevoir seulement la couche de raffinement Cd-ι, - tandis que l'utilisateur du terminal de visualisation TV6 a un profil d'abonné lui permettant de recevoir seulement la couche de raffinement
Cd2-
L'étape E5 est l'envoi, par les points de présence PoP1 et PoP2, d'une couche de base et de couches de raffinement à chacun des utilisateurs connectés, auquel est destiné un des flux ft1 , fil ou fd1.
Ainsi le point de présence PoP1 transmet à l'utilisateur connecté au terminal de visualisation TV1 un flux ft2 comportant la couche de base Cto ainsi que les couches de raffinement Cn, Ct2 et Q3, et lui permettant de regarder le match de football diffusé par le serveur de contenus SC dans son intégralité. En variante, si à l'étape E2 les images des joueurs et du ballon ont été codées de manière embrouillées dans les couches de raffinement C^ et Ct3, le point de présence PoP1 désembrouille ces couches de raffinement avant de les transmettre à l'utilisateur connecté au terminal de visualisation TV1 dans le flux ft2. En revanche l'utilisateur connecté au terminal de visualisation TV2 reçoit du point de présence PoP1 un flux ft3 ne comportant que la couche de base Cto et la couche de raffinement Cti. Il entendra donc les commentaires du match en visualisant uniquement des images de terrain nu, ce qui l'incitera à s'abonner au programme vidéo diffusant le match de football pour le visualiser dans son intégralité. En variante, si à l'étape E2 les images des joueurs et du ballon ont été codées de manière embrouillées dans les couches de raffinement Cc et Ct3, le flux ft3 transmis à l'utilisateur du terminal TV2 par le point de présence PoP1 comporte la couche de base Cto ainsi que les couches de raffinement Cn, Ct2 et C13. Cet utilisateur verra donc des images embrouillées des joueurs et du ballon, ce qui l'incitera à s'abonner au programme vidéo diffusant le match de football pour annuler cette gêne visuelle due au brouillage.
Le décodage des flux ft2 et ft3 par les terminaux TV1 et TV2 se fait par un décodeur SVC de manière naturelle, grâce à l'indication dans chaque couche de raffinement de la couche inférieure sur laquelle elle s'appuie pour la prédiction inter-couche, même si cette prédiction n'est pas systématiquement utilisée par le décodeur. La réalisation de l'invention en utilisant des flux de type SVC ne nécessite donc pas de décodeurs SVC spécifiques. Dans cette étape E5, le point de présence PoP1 transmet également à l'utilisateur connecté au terminal de visualisation TV3 un flux fi2, comportant la
couche de base C10 et les couches de raffinement C,i, C12 et C,3, ce qui lui permet de visualiser le magazine d'informations diffusé par le serveur de contenus SC sans fenêtre d'incrustation.
Il transmet en revanche à l'utilisateur connecté au terminal de visualisation TV4 un flux fi3 comportant la couche de base do, et les couches de raffinement di, C,4 et C,5, ce qui lui permet de visualiser le magazine d'informations diffusé par le serveur de contenus SC avec une interprétation en langage des signes dans une fenêtre d'incrustation.
Le décodeur vidéo présent dans le terminal de visualisation TV4 implémente en effet le procédé d'incrustation d'images d'un premier flux vidéo dans des images d'un second flux vidéo selon l'invention. Cette incrustation s'effectue naturellement par la recombinaison des couches de Qi. C14, et C15.
En variante de réalisation, le point de présence PoP1 transmet le flux ft1 aux passerelles domestiques PD1 et PD2, et le flux fil aux passerelles domestiques PD3 et PD4, la sélection des couches de raffinement à envoyer aux terminaux TV1 , TV2, TV3 et TV4 en fonction des profils des utilisateurs s'effectuant au niveau de ces passerelles respectives PD1 , PD2, PD3 et PD4. Celles-ci sont par exemple configurées à distance par le fournisseur de service gérant le serveur de contenus SC, par exemple si ce fournisseur est également l'opérateur d'accès des utilisateurs des terminaux TV1 , TV2, TV3 et TV4.
De plus, dans cette étape E5, le point de présence PoP2 implémente le procédé de décrochage d'un programme audiovisuel selon l'invention, en envoyant à l'utilisateur connecté au terminal de visualisation TV5 un flux fd2 comportant la couche de base Cao et la couche de raffinement du, et à l'utilisateur connecté au terminal de visualisation TV6 un flux fd3 comportant la couche de base Cdo et la couche de raffinement di2- Ainsi lorsque le serveur de contenus diffuse le journal d'informations national, le flux fd1 code ce journal dans la couche de base Cdo, qui est transmise au point de présence PoP2 puis par celui-ci aux utilisateurs des terminaux TV5 et TV6. A la fin de la diffusion du journal d'informations national, le serveur de contenus diffuse
deux journaux d'informations régionaux différents dans les couches de raffinement C<JI et Cd2 du flux fd1 , qui sont transmises au point de présence PoP2, celui-ci transmettant à sont tour la couche de raffinement Cdi à l'utilisateur du terminal TV5 et la couche de raffinement Cd2 à l'utilisateur du terminal TV6. Ainsi ces deux utilisateurs visualisent deux journaux régionaux distincts, sans mettre en oeuvre un "splicer" spécifique au niveau du point de présence PoP2. En effet la jonction entre le journal d'informations national et chacun des journaux d'informations régionaux n'est pas mise en œuvre par le point de présence PoP2, mais naturellement par les décodeurs des terminaux TV5 et TV6, par la recombinaison respectivement des couches Cdo et Cdi et des couches Cdo et Cd2-