Brevet FR2953675A1 — publié le 20110610

La présente invention concerne un procédé de contrôle par un dispositif client du transfert d'une séquence vidéo. Elle concerne également un dispositif de contrôle mis en oeuvre par un dispositif client lors du transfert d'une séquence vidéo. De manière générale, l'invention concerne la transmission d'une séquence vidéo entre un serveur et au moins un dispositif client sur un réseau de communication non fiable, c'est-à-dire dans lequel les conditions de transmission ne sont pas stables et/ou des pertes de données peuvent se produire. Dans l'ensemble de la description qui suit, le terme "perte" se rapporte aussi bien à des données manquantes qu'à des données erronées détectées dans les données vidéo de la séquence vidéo transmise. L'invention s'intéresse plus particulièrement à la régulation par un dispositif client du débit des données vidéo qui lui sont destinées, à partir d'informations sur la détection et la localisation de données vidéo affectées par des pertes. On se place dans le cas où le codage de la séquence vidéo est de type hiérarchique ou "scalable", c'est-à-dire qu'il met en oeuvre un ou plusieurs niveaux hiérarchiques, appelés aussi niveaux ou couches de scalabilité. Un exemple non limitatif d'un tel format de codage scalable est la norme SVC ("Scalable Video Coding"). Trois types de scalabilité ont été définis dans la norme SVC : scalabilité spatiale, temporelle et en qualité, la scalabilité en qualité étant également connue sous le nom de scalabilité SNR (de l'anglais "Signal to Noise Ratio", rapport signal à bruit). La scalabilité temporelle permet de modifier la résolution temporelle d'une séquence (c'est-à-dire le nombre d'images par seconde représentées par les données codées) en supprimant certaines images, cette suppression prenant en compte les dépendances éventuelles entre les images. La scalabilité spatiale consiste à insérer plusieurs résolutions spatiales (correspondant à différents nombres de pixels représentés par les données codées) dans un flux vidéo, la résolution la plus basse étant utilisée pour la prédiction des résolutions supérieures. La scalabilité en qualité prend trois formes différentes : scalabilité à grains grossiers ou CGS (en anglais "Coarse Grain Scalability"), scalabilité à grains moyens ou MGS (en anglais "Medium Grain Scalability") et scalabilité à grains fins ou FGS (en anglais "Fine Grain Scalability"). La scalabilité CGS utilise les mêmes concepts que la scalabilité spatiale, à ceci près que pour CGS, les opérations de sur-échantillonnage de la prédiction inter-couche sont omises. La scalabilité FGS permet la création d'un flux binaire qui peut être tronqué en un point quelconque tout en restant décodable. La scalabilité MGS a été définie comme intermédiaire entre CGS et FGS : elle offre des points de décodage dans le flux binaire plus fins que CGS mais ne permet pas la troncature en n'importe quel point comme FGS. La scalabilité MGS est souvent considérée comme offrant une granularité suffisante pour des conditions réseau réalistes. La transmission d'une vidéo sur un réseau est facilitée par l'introduction de la notion d'entité NAL (en anglais "Network Abstraction Layer"). Une NAL est une unité élémentaire de transfert du flux binaire qui fournit dans son en-tête des éléments de description des données transportées dans la partie données de la NAL. A titre d'exemple non limitatif, pour la transmission d'un flux SVC, la NAL peut être vue comme un conteneur de données vidéo (en anglais "video data container") ; l'en-tête de NAL comporte en particulier les paramètres suivants : • Dependency_id (DId) : spécifie la couche spatiale des données vidéo contenues dans la NAL ; • Quality_id (QId) : spécifie la couche de qualité des données vidéo contenues dans la NAL ; • Temporal_id (TId) : spécifie la couche temporelle des données 30 vidéo contenues dans la NAL. Toutes les NALs correspondant à une même image codée forment une entité appelée AU (en anglais "Access Unit"). Dans le cadre d'une application de diffusion vidéo (souvent appelée "video streaming" en anglais) entre un système serveur et un dispositif client au travers d'un réseau, les données vidéo sont généralement transportées dans des paquets RTP (protocole de transport en temps réel, en anglais "Real-time Transport Protocof') car RTP offre un ensemble intéressant d'outils de résistance aux erreurs. L'en-tête de paquet RTP contient en particulier deux informations : • un numéro de séquence, et • un élément d'horodatage ou estampille temporelle (noté 10 Timestamp). Le numéro de séquence est choisi aléatoirement pour le premier paquet d'une session de diffusion vidéo. Il augmente ensuite de 1 chaque fois qu'un nouveau paquet est créé pour cette application. Le numéro de séquence offre une façon de détecter qu'une perte 15 s'est produite dans un ensemble de paquets. En effet, RTP empêche les sauts de numéro de séquence. Si un client détecte dans les numéros de séquence un saut supérieur à 1 entre deux paquets reçus consécutivement, il peut en déduire qu'au moins une perte s'est produite. L'estampille temporelle (en anglais "timestamp") représente l'instant 20 de création des données transportées. Par exemple, toutes les données SVC correspondant à un même instant doivent porter la même estampille temporelle si elles sont transportées par plusieurs paquets. L'ensemble de ces paramètres permet de suivre la transmission des paquets transportant les données vidéo codées sur un réseau de transmission. 25 En effet, les réseaux de communication utilisant la transmission par paquets sont confrontés régulièrement à des problèmes de pertes de données. Les applications vidéo sont particulièrement sensibles à ces pertes dès lors que le décodage en temps réel empêche la retransmission des données perdues et que les erreurs se propagent dans les données reçues du 30 fait des méthodes classiques de codage prédictif mises en oeuvre. Les erreurs ou pertes de données détectées dans les réseaux de communication peuvent avoir plusieurs causes telles que des collisions de paquets, des problèmes d'interférence, ou encore sont dues à une congestion du réseau de communication. La transmission de données vidéo est alors confrontée à des pertes isolées, lorsque les événements générant ces pertes sont de courte durée (interférence, collision de paquets) ou à des pertes se produisant sur une durée plus longue, lorsqu'elles sont dues par exemple à une congestion du réseau de communication. Lorsqu'un réseau de communication transporte des données vidéo scalables, chaque niveau hiérarchique des données vidéo codées est transporté dans une session de diffusion groupée ("multicast session") dédiée. Les dispositifs clients de cette application peuvent s'abonner (en anglais "to subscribe") à un sous-ensemble de ces sessions de diffusion groupée, recevant ainsi différents niveaux de hiérarchie en fonction de leur capacité de décodage. Dans un tel cas, il est particulièrement avantageux de pouvoir évaluer dans quelle mesure un niveau de hiérarchie est affecté par des pertes, afin d'éviter d'acheminer vers un dispositif client des niveaux de hiérarchie qui n'apporteront pas une amélioration suffisante de la qualité spatiale, SNR ou temporelle lors du décodage de la séquence vidéo. On connaît ainsi des techniques de détection d'erreurs mises en oeuvre au niveau d'un dispositif client d'un réseau de communication permettant de détecter les erreurs et de localiser l'image affectée cette erreur. Le document US-A-7 072 403 propose une coopération entre la couche réseau et le décodeur, dans un système ou les paquets transportent 25 des blocs de données correspondant à un ensemble de pixels. Le dispositif client détecte des erreurs dans les paquets au niveau réseau en utilisant des codes détecteurs d'erreurs et fournit l'information correspondante au décodeur. Le décodeur peut ainsi décider si les blocs contenus dans les 30 paquets sont effectivement affectés par une perte. Il est alors possible de décider de ne pas décoder dans le flux de données vidéo reçu le niveau hiérarchique dont les données vidéo sont affectées de manière importante par des pertes de données. Dès lors qu'un niveau hiérarchique n'est pas décodé par le dispositif client, il est intéressant de proposer une méthode permettant d'éviter la transmission de ce niveau hiérarchique au dispositif client dans le cadre d'une transmission par sessions de diffusion groupée. On a illustré sur les figures 1 à 3 un contrôle classique par un dispositif client du transfert d'une séquence vidéo lorsque des pertes isolées se produisent sur le réseau de communication. Ici, un serveur S transmet une séquence vidéo sous forme de données vidéo codées selon un codage hiérarchique à un ensemble de six dispositifs clients Cl, C2, C3, C4, C5, C6. Le flux de données est ainsi scalable et transmis sur trois sessions de diffusion groupée, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée. Les flèches en tirets représentent une première session de diffusion groupée transportant le niveau hiérarchique inférieur. Les flèches en pointillées représentent une deuxième session de diffusion groupée transportant un deuxième niveau hiérarchique. Les flèches en trait plein représentent une troisième session de diffusion groupée transportant un troisième niveau hiérarchique, supérieur aux précédents. La séquence vidéo est transmise par trois routeurs R1, R2, R3. Les deux premiers routeurs R1, R2 sont des routeurs à haut débit alors que le routeur R3 est un routeur à bas débit. Ainsi, le dispositif client Cl, connecté uniquement aux deux premiers routeurs R1, R2 reçoit un haut débit de données et peut ainsi recevoir les trois sessions de diffusion groupée. En revanche, les dispositifs clients C2 à C6, connectés au troisième routeur R3, sont uniquement capables de recevoir les deux premières sessions de diffusion groupée de la séquence vidéo. Dans un tel cas de figure, comme illustré à la figure 2, lorsqu'un dispositif client C2 essaye de s'abonner à la troisième session de diffusion groupée, cette souscription provoque une congestion au niveau du réseau de communication, et notamment du troisième routeur R3. Cependant, cette congestion affecte le transfert des données vidéo à destination de l'ensemble des dispositifs clients C2 à C6 connectés au troisième routeur R3. On a illustré à la figure 3 la réaction classique des dispositifs clients C2 à C6 lors de la détection de pertes de données dues à la congestion du réseau au niveau du routeur R3. Dans un tel cas, lorsque des pertes de données sont détectées par les dispositifs clients C2 à C6, ils se désabonnent (en anglais "unsubscribe") de la session de diffusion groupée de plus haut niveau. Ainsi, dans l'exemple illustré à la figure 3, le dispositif client C2 à l'origine de la congestion se désabonne de la troisième session de diffusion groupée, alors que les dispositifs clients C3 à C6 se désabonnent de la deuxième session de diffusion groupée. Ce procédé classique de contrôle du transfert de la séquence vidéo présente ainsi l'inconvénient d'entraîner des réactions non souhaitées au niveau des dispositifs clients du réseau de communication. En effet, dans l'exemple précédent, la congestion provoquée par le dispositif client C2 était temporaire et isolée et n'aurait pas dû affecter l'abonnement des dispositifs clients C3 à C6 aux sessions de diffusion groupée. Une solution proposée par S.MAC CANNE et V. JACOBSON, ACM SIGCOMM 96, appelée "Receiver Layered Multicast" ou RLM a été proposée pour éviter des réactions intempestives sur un réseau de communication. Dans son principe, la solution RLM prévoit que, lorsqu'un client essaye de s'abonner à une session de diffusion groupée additionnelle, il informe les autres clients du réseau de communication en envoyant un message multidiffusé ("multicast message" en anglais. Les autres dispositifs clients sont ainsi informés qu'un des dispositifs clients essaye de s'abonner à une session additionnelle et que cette tentative peut entrainer une congestion temporelle dans le réseau de communication. Si une telle congestion a lieu immédiatement après la réception d'un tel message par les dispositifs clients, ces derniers ne réagissent pas à la détection de pertes de données affectant les données vidéo reçues, et en particulier, ne modifient pas leur abonnement au sous-ensemble de sessions de diffusion groupée. Toutefois, cette solution nécessite la création d'un protocole permettant au client d'informer les autres clients par un message multidiffusé. Par ailleurs, cette solution est adaptée uniquement à ce type de congestion et n'est pas adaptée à gérer les congestions temporaires créées par d'autres applications. On a illustré à la figure 4 le comportement d'un dispositif client mettant en oeuvre la solution RLM pour contrôler le transfert d'une séquence vidéo transmise par un sous-ensemble de sessions de diffusion groupée. Pendant les trois premières périodes de temps A, le dispositif client s'abonne successivement à trois premières sessions de diffusion groupée. Puisqu'aucune congestion n'apparaît, à la période suivante, il tente de s'abonner à une session de diffusion groupée supplémentaire. Cependant, comme illustré à la figure 4, une congestion du réseau de communication, détectée à partir des pertes de données affectant les données vidéo reçues, apparaît dès lors que le débit cumulé des quatre sessions de diffusion groupée est supérieur au débit disponible sur le réseau de communication. Dès lors que des pertes de données sont détectées, le dispositif client se désabonne de la session de diffusion groupée de plus haut niveau. Ensuite, le dispositif client essaye de nouveau de s'abonner à cette quatrième session de diffusion groupée, mais la période de temps entre chaque tentative de souscription est augmentée, et par exemple doublée. L'augmentation de cette période de temps évite de provoquer des congestions trop nombreuses et trop fréquentes sur le réseau de communication. Comme indiqué précédemment, cette solution RLM présente l'inconvénient d'entrainer un désabonnement à la session de diffusion groupée de plus haut niveau systématiquement lors de la détection de pertes de données. Lorsque la congestion est temporaire, l'utilisation des possibilités de transmission du réseau de communication n'est pas optimisée. Par ailleurs, comme bien illustré à la figure 4, en augmentant la période de temps entre chaque essai d'abonnement, le système perd en réactivité. Il empêche le dispositif client ainsi de réagir efficacement lorsque le débit du réseau de communication augmente. Par exemple, comme illustré à la figure 4, lorsque la période de temps est égale par exemple à huit A, une augmentation de la bande passante du réseau en début de cette période ne permettra pas un abonnement à la quatrième session de diffusion groupée avant la fin de cette période alors que la bande passante disponible permettrait un abonnement amélioré par le dispositif client aux différentes sessions disponibles de diffusion groupée. La présente invention a notamment pour but d'éviter une réaction intempestive d'un dispositif client dans la gestion de son abonnement à des sessions de diffusion groupée pour le transfert d'une séquence vidéo transmise sur un réseau de communication, sans nécessité de communication entre les dispositifs clients du réseau de communication. A cet effet, la présente invention concerne selon un premier aspect un procédé de contrôle par un dispositif client du transfert d'une séquence vidéo transmise sur un ensemble de sessions de diffusion groupée par un serveur dans un réseau de communication, la séquence vidéo étant codée selon un codage vidéo hiérarchique sur un ensemble de niveaux hiérarchiques, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée, le dispositif client s'abonnant à au moins un sous-ensemble de sessions de diffusion groupée. Le procédé de contrôle comprend les étapes suivantes : - détection, sur un premier ensemble d'images de la séquence vidéo, de pertes de données affectant des données vidéo du premier ensemble d'images ; - sélection d'une technique de décodage en fonction de la localisation des données vidéo affectées par les pertes de données dans le premier ensemble d'images ; - détection, sur un second ensemble d'images de la séquence vidéo, la longueur du second ensemble d'images étant supérieure à la longueur du premier ensemble d'images, des pertes de données affectant des données vidéo du second ensemble d'images ; - évaluation de l'importance des pertes de données affectant les données vidéo du second ensemble d'images ; et - adaptation de l'abonnement par le dispositif client à un sous- ensemble de sessions de diffusion groupée en fonction de l'importance des pertes de données affectant les données vidéo du second ensemble d'images. Le procédé de contrôle selon l'invention permet ainsi de choisir le sous-ensemble de sessions de diffusion groupée auxquelles s'abonne le dispositif client en prenant en compte les pertes de données sur une période de temps supérieure à celle utilisée pour traiter les pertes au niveau du décodage, afin d'éviter notamment le désabonnement à une session de diffusion groupée en cas de pertes de données dues à une congestion temporaire du réseau de communication. Ainsi, une étape de détection d'erreurs à court terme sur un premier ensemble d'images est utilisée pour déterminer quels niveaux hiérarchiques doivent être décodés, alors qu'une étape de détection d'erreurs à long terme sur un second ensemble d'images est utilisée pour déterminer le sous-ensemble de sessions de diffusion groupée auxquelles est abonné le dispositif client. Le procédé de contrôle permet ainsi d'adapter la réaction du dispositif client dans le contrôle de la transmission d'une séquence vidéo en fonction du type de congestion, de longue durée ou transitoire, sur le réseau de communication. Par ailleurs, le procédé de contrôle peut être mis en oeuvre par chaque dispositif client sans requérir d'informations sur le comportement des autres clients et notamment les abonnements ou désabonnements des autres dispositifs clients à un ensemble de sessions de diffusion groupée sur le réseau de communication. Le procédé de contrôle conforme à l'invention permet ainsi d'adapter l'abonnement du dispositif client de façon optimisée sur le réseau de communication, quelles que soient la nature et l'origine des congestions apparaissant sur le réseau de communication. Selon un mode de réalisation pratique de l'invention, l'étape de sélection d'une technique de décodage est adaptée à sélectionner au moins un niveau hiérarchique à ne pas décoder. En pratique, à l'étape d'évaluation, l'importance des pertes de données est évaluée sur des données vidéo d'un niveau hiérarchique donné et à l'étape d'adaptation, le dispositif client se désabonne d'une session de diffusion groupée transmettant le niveau hiérarchique donné lorsque le nombre de pertes de données évaluées dépasse une valeur seuil prédéterminée de pertes de données. De préférence, la valeur seuil prédéterminée a une valeur dépendante du niveau hiérarchique donné. Par exemple, la valeur seuil prédéterminée est d'autant plus élevée que le niveau hiérarchique donné est bas. Selon une caractéristique avantageuse, à l'étape d'adaptation, le dispositif client se désabonne en outre d'au moins une session de diffusion groupée transmettant des données vidéo de niveau hiérarchique supérieur au niveau hiérarchique donné. Ainsi, lorsque des congestions importantes apparaissent sur le 30 réseau de communication, il est possible d'obtenir le désabonnement du dispositif client à plusieurs sessions de diffusion groupée simultanément, ce qui permet d'accélérer l'adaptation de la transmission de la séquence vidéo en fonction du débit disponible sur le réseau de communication. On peut ainsi obtenir le désabonnement à une ou plusieurs sessions de diffusion groupée transmettant des données vidéo de niveau hiérarchique supérieur au niveau hiérarchique affecté par des pertes de données, en particulier lorsque les données vidéo du niveau hiérarchique supérieur dépendent des données vidéo du niveau hiérarchique inférieur affectées par les pertes de données. Avantageusement, les données vidéo reçues par un dispositif client sont décodables dans la mesure où elles ne sont pas dépendantes d'un hiérarchique inférieur affecté par des pertes. En pratique, un niveau hiérarchique peut être caractérisé par trois indices représentant respectivement un niveau de hiérarchie spatiale, un niveau de hiérarchie temporelle et un niveau de hiérarchie en qualité, et un premier niveau hiérarchique est supérieur à un second niveau hiérarchique lorsqu'au moins un des indices représentatifs du premier niveau a une valeur supérieure à la valeur du même indice représentatif du second niveau. Selon une mise en pratique de l'invention, le procédé de contrôle comprend les étapes suivantes lorsque le serveur insère des niveaux de priorité respectivement dans des paquets de données vidéo transférés respectivement sur un ensemble de sessions de diffusion groupée, le niveau de priorité inséré dans un paquet de données vidéo étant dépendant du niveau hiérarchique des données vidéo du paquet : - identification du niveau de priorité associé à un paquet de données vidéo affectées par les pertes de données détectées lors de l'étape de détection 25 sur un second ensemble d'images de la séquence vidéo ; et - adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée en fonction du niveau de priorité identifié. Selon une caractéristique avantageuse de l'invention, le procédé de 30 contrôle comprend une étape de variation de la longueur dudit second ensemble d'images en fonction de l'adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée à ladite étape d'adaptation. En pratique, à ladite étape de variation, la longueur du second ensemble d'images est diminuée lorsqu'à ladite étape d'adaptation, le dispositif client se désabonne d'au moins une session de diffusion groupée. Alternativement, à ladite étape de variation, la longueur du second ensemble d'images est augmentée lorsqu'à ladite étape d'adaptation, le dispositif client maintient son abonnement au sous-ensemble de sessions de diffusion groupée. En pratique, le premier ensemble d'images est un groupe d'images, le second ensemble d'images étant constitué d'un ensemble de groupes d'images successifs incluant le premier ensemble d'images. En pratique, la longueur du second ensemble d'images est augmentée ou diminuée de la longueur d'un groupe d'images. Selon une autre caractéristique préférée de l'invention, lorsque la longueur du second sous-ensemble d'images est égale à une valeur minimale préfixée, un intervalle de temps entre deux tentatives d'abonnement par ledit dispositif client à une session additionnelle de diffusion groupée, s'ajoutant audit sous-ensemble de sessions de diffusion groupée, est augmenté. On évite ainsi de multiplier les tentatives d'abonnement à une session additionnelle de diffusion groupée lorsque cet abonnement provoque systématiquement une congestion sur le réseau de communication. Selon un second aspect, la présente invention concerne un procédé de décodage par un dispositif client d'une séquence vidéo transmise sur un ensemble de sessions de diffusion groupée par un serveur dans un réseau de communication, ladite séquence vidéo étant codée selon un codage vidéo hiérarchique sur un ensemble de niveaux hiérarchiques, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée, ledit dispositif client s'abonnant à au moins un sous-ensemble de sessions de diffusion groupée, le procédé de décodage comprenant les étapes suivantes : - détection, sur un premier ensemble d'images de la séquence vidéo, de pertes de données affectant des données vidéo du premier ensemble d'images ; - décodage d'une sélection de niveaux hiérarchique en fonction de la 5 localisation des données vidéo affectées par les pertes de données dans le premier ensemble d'images ; - détection, sur un second ensemble d'images de la séquence vidéo, la longueur du second ensemble d'images étant supérieure à la longueur du premier ensemble d'images, des pertes de données affectant des données 10 vidéo du second ensemble d'images ; - évaluation de l'importance des pertes de données affectant les données vidéo du second ensemble d'images ; et - adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée en fonction de l'importance des 15 pertes de données affectant les données vidéo du second ensemble d'images. Corrélativement, la présente invention concerne également un dispositif de contrôle du transfert d'une séquence vidéo transmise sur un ensemble de sessions de diffusion groupée par un serveur dans un réseau de communication, ladite séquence vidéo étant codée selon un codage vidéo 20 hiérarchique sur un ensemble de niveaux hiérarchiques, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée, ledit dispositif client s'abonnant à au moins un sous-ensemble de sessions de diffusion groupée, le dispositif de contrôle comprenant : 25 - des moyens de détection, sur un premier ensemble d'images de la séquence vidéo, de pertes de données affectant des données vidéo du premier ensemble d'images ; - des moyens de sélection d'une technique de décodage en fonction de la localisation des données vidéo affectées par les pertes de données dans 30 le premier ensemble d'images ; - des moyens de détection, sur un second ensemble d'images de la séquence vidéo, la longueur du second ensemble d'images étant supérieure à la longueur du premier ensemble d'images, des pertes de données affectant des données vidéo du second ensemble d'images ; - des moyens d'évaluation de l'importance des pertes de données affectant les données vidéo du second ensemble d'images ; et - des moyens d'adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée en fonction de l'importance des pertes de données affectant les données vidéo du second ensemble d'images. Ce dispositif de contrôle présente des caractéristiques et avantages 10 analogues à ceux décrits précédemment en relation avec le procédé de contrôle. La présente invention propose aussi un dispositif client dans un réseau de communication, comportant des moyens de calcul, des moyens de stockage et des moyens de communication avec le réseau, les moyens de 15 calcul coopérant avec les moyens de stockage et les moyens de communication avec le réseau pour mettre en oeuvre le procédé de contrôle et/ou le procédé de décodage conforme à l'invention. Elle vise également un moyen de stockage d'informations lisibles par un ordinateur ou un microprocesseur conservant des instructions d'un 20 programme informatique, adapté à mettre en oeuvre le procédé de contrôle et/ou le procédé de décodage tels que ceux succinctement décrits ci-dessus. Finalement, la présente invention vise aussi un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, comportant des séquences d'instructions pour mettre en oeuvre un procédé de contrôle 25 et/ou un procédé de décodage tels que décrits succinctement ci-dessus, lorsque ce programme est chargé dans et exécuté par l'appareil programmable. Les caractéristiques particulières et les avantages du dispositif client, du moyen de stockage d'informations et du produit programme d'ordinateur sont similaires à ceux des procédés succinctement décrits ci-dessus. 30 Ces caractéristiques et avantages ne sont donc pas répétés ici. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après. Aux dessins annexés, donnés à titre d'exemples non limitatifs : - les figures 1 à 3 illustrent le principe du contrôle du transfert d'une séquence vidéo mis en oeuvre dans l'Art Antérieur sur un réseau de communication ; - la figure 4 est un schéma illustrant l'adaptation d'un abonnement d'un dispositif client dans l'Art Antérieur en fonction du débit disponible sur un réseau de communication ; - la figure 5 représente de façon schématique un mode particulier de réalisation d'un système de transmission vidéo adapté à mettre en oeuvre la présente invention ; - la figure 6 est un organigramme illustrant les étapes principales du procédé de contrôle conforme à un mode particulier de réalisation de la présente invention ; - les figures 7 et 8 sont des organigrammes illustrant plus en détail, dans un mode particulier de réalisation, l'étape de détection de pertes illustrée à la figure 6 ; - les figures 9 et 10 sont des organigrammes illustrant, selon un mode particulier de réalisation, l'étape de sélection des niveaux hiérarchiques à décoder illustrée à la figure 6 ; - la figure 11 est un organigramme illustrant, selon un mode particulier de réalisation, l'étape d'évaluation de l'importance des pertes de données illustrée à la figure 6 ; et - les figures 12 et 13 sont des schémas illustrant l'adaptation d'un abonnement d'un dispositif client mettant en oeuvre la présente invention, en fonction du débit disponible sur un réseau de communication. Dans la suite de la description, on considère une séquence vidéo transmise entre un serveur d'un réseau de communication et un ou plusieurs clients sur ce réseau de communication. La séquence vidéo est transmise selon un flux continu par un 30 ensemble de sessions de diffusion groupée adressé par un serveur à un dispositif client du réseau de communication. La présente invention a pour objet de contrôler l'abonnement du dispositif client à un sous-ensemble de sessions de diffusion groupée en vue d'optimiser le décodage de la séquence vidéo, notamment en améliorant la réaction à des pertes détectées, à la fois à court terme et à long terme. Dans cet exemple particulier de réalisation, les données vidéo sont codées selon un codage vidéo hiérarchique sur un ensemble de niveau hiérarchique (en anglais "Scalable Layer"). Les données vidéo peuvent être codées par exemple conformément à une norme de codage vidéo avec compression de données telle que H.264 ou SVC, où intervient la notion d'entité NAL décrite dans la partie introductive de la présente description. Le procédé de contrôle et de décodage est mis en oeuvre du côté d'un dispositif client au sens de l'architecture client/serveur. Comme illustré à la figure 5, un système de transmission vidéo 15 adapté à mettre en oeuvre la présente invention comporte un serveur 11 et un dispositif client 12. Le serveur 11 comporte une unité de stockage 14 adaptée à mémoriser par exemple une vidéo codée. Le serveur 11 comporte en outre une unité de calcul 13 adaptée à 20 exécuter des programmes ainsi qu'une unité réseau 15 adaptée à émettre des données vidéo sur le réseau. Une unité d'acquisition de données (non représentée) telle qu'une caméra vidéo, peut être ajoutée afin de saisir des vidéos en direct, l'unité de calcul 13 prenant en charge la compression des données vidéo. 25 Le dispositif client 12 comporte de même une unité de stockage 16 adaptée à mémoriser des programmes du dispositif client, et notamment un programme de décodage et d'affichage d'une vidéo. Une unité de calcul 17 est adaptée à exécuter ces programmes. En particulier, l'unité de stockage 16 du dispositif client comporte un 30 ou plusieurs programmes qui comportent des séquences d'instructions pour mettre en oeuvre le procédé de contrôle et le procédé de décodage conforme à l'invention, lorsque ce ou ces programmes sont chargés dans le dispositif client 12 et exécutés par l'unité de calcul 17. Le dispositif client 12 comporte également une unité réseau 18 adaptée à recevoir des paquets de données transmis sur le réseau de 5 communication. Finalement, le dispositif client 12 comporte également une unité d'affichage 19 adaptée à afficher les données vidéo décompressées. On se place ici dans un réseau de communication dans lequel les données sont transportées sur le réseau suivant le protocole RTP. 10 Ainsi, chaque paquet RTP transmis sur le réseau de communication transporte une tranche SVC ("slice" en anglais). Chaque paquet comporte en particulier des données sur le numéro de séquence du paquet RTP et l'estampille temporelle du paquet RTP ; ces données sont placées dans l'en-tête RTP. 15 Par ailleurs, la NAL comprend dans un en-tête appelé en-tête d'extension SVC (en anglais "SCV NAL Extension Header'), les paramètres DId, QId et TId définis dans la partie introductive de la présente description. L'ensemble de ces informations est géré au niveau du dispositif client 12 pour contrôler les pertes de données comme cela sera décrit 20 ultérieurement. On va décrire à présent en référence à la figure 6 un exemple de réalisation du procédé de contrôle et de décodage mis en oeuvre par le dispositif client du réseau de communication. Ici, le serveur transmet en continu le flux SVC sur un ensemble de 25 sessions de diffusion groupée (en anglais "Multicast sessions"). Chaque niveau hiérarchique défini par un niveau de couche spatiale DId, de couche de qualité QId et de couche temporelle TId est associé à une session de diffusion groupée. Ainsi, chaque session de diffusion groupée est associée à un triplet 30 Did, Qid, Tid, défini par les valeurs respectivement des paramètres DId, QId, TId contenus dans l'en-tête de NAL SVC. Comme illustré à la figure 6, le procédé de contrôle et de décodage d'une séquence vidéo commence par une étape d'abonnement 600 par le dispositif client à une première session de diffusion groupée qui contient le niveau hiérarchique le plus bas. Cette étape d'abonnement 600 est suivie par une étape d'initialisation 601. Lors de cette étape d'initialisation 601, la taille d'une fenêtre d'analyse à long terme WS (en anglais "Long Term Analysis Window") est déterminée. Comme cela ressortira de la suite du procédé, cette fenêtre d'analyse à long terme WS est une fenêtre glissante (en anglais "sliding window"), utilisée pour permettre au dispositif client d'analyser les effets à long terme des pertes de données sur le décodage afin d'adapter l'abonnement du dispositif client à différentes sessions de diffusion groupée. A titre d'exemple, la taille de la fenêtre d'analyse à long terme WS peut être initialisée à la longueur temporelle de deux GOP (acronyme du terme anglais "Group Of Pictures" contenant un nombre prédéterminé d'images, par exemple 16 ou 32) notée dans la suite 2A. Chaque paquet RTP transporte une NAL ou une portion de NAL (si la NAL est trop grosse). Dans SVC, un GOP commence par une NAL correspondant à l'indice de hiérarchie spatiale le plus bas (Did=O), l'indice de hiérarchie temporelle le plus bas (Tid=O), et l'indice de qualité le plus bas (Qid=O). Ce GOP se terminera lorsqu'on recevra la prochaine NAL ayant les mêmes indices (Did=O, Tid=O, Qid=O). Ce sont les données contenues dans le NAL Header et le SVC extension Header, qui permettent d'identifier le début et la fin d'une NAL. Lors de l'étape d'initialisation 601, une variable LST (acronyme du terme anglais "Low Subscription Time") permet de fixer la durée s'écoulant entre deux tentatives du dispositif client pour s'abonner à une nouvelle session de diffusion groupée, comprenant un niveau hiérarchique de données vidéo supérieur à celui des sessions de diffusion groupée auquel il est déjà abonné. La valeur de cette variable LST est par exemple initialisée à un GOP, LST = A. Cette étape d'initialisation 601 est suivie d'une étape de réception 602 correspondant à la réception d'une NAL. Une étape de détection de pertes 603 est ensuite mise en oeuvre. Si des pertes sont détectées, l'identification des données vidéo affectées par ces pertes est mise en oeuvre lors d'une étape d'identification 605. Cette étape d'identification 605 consiste à localiser les données perdues, c'est-à-dire les positions des NALs perdues dans le groupe d'images GOP et à mémoriser ces positions dans la mémoire du dispositif client. Ces étapes de détection et d'identification de pertes 603, 605 sont détaillées en référence aux figures 7 et 8. Comme le montre la figure 7, le processus de détection/localisation des étapes 603, 605 de la figure 6 débute lors d'un test 701 qui consiste à comparer le numéro de séquence, noté SeqNum, du dernier paquet reçu, et le numéro de séquence, noté SeqNum_, du paquet reçu immédiatement avant le dernier paquet reçu. Si la différence entre ces deux numéros de séquence est de 1 (test 701 positif), on peut en déduire qu'aucune perte ne s'est produite. Dans ce cas, le processus de détection/localisation prend fin. Sinon (test 701 négatif), on sait déjà à ce stade qu'au moins un paquet est perdu, sans cependant encore savoir quelle NAL est affectée. Dans ce cas, on effectue un test 703, consistant à comparer l'estampille temporelle, notée Timestamp, du dernier paquet reçu, et l'estampille temporelle, notée Timestamp_, du paquet reçu immédiatement avant le dernier paquet reçu. Si ces deux paquets consécutifs n'ont pas la même valeur d'estampille temporelle (test 703 négatif), on passe à l'étape 801, décrite plus loin en liaison avec la figure 8. Si en revanche les deux paquets consécutifs ont la même valeur d'estampille temporelle (test 703 positif), on compare lors du test suivant 707 Did et Did_. La notation Did représente la valeur du paramètre DId du dernier paquet reçu et la notation Did_ représente la valeur du paramètre DId du paquet reçu immédiatement avant le dernier paquet reçu. Si Did = Did , on teste si Qid = Qid_ lors du test suivant 709. La notation Qid représente la valeur du paramètre QId du dernier paquet reçu et la notation Qid_ représente la valeur du paramètre QId du paquet reçu immédiatement avant le dernier paquet reçu. Si le test 709 est positif (Qid = Qid_), cela signifie qu'il manque au moins une tranche dans la même AU, dans la même couche spatiale et dans la même couche de qualité que celles de la NAL reçue en dernier (événement 725). Si le test 709 est négatif, on teste si Qid = Qid_+1 lors du test 711. Si le test 711 est positif (Qid = Qid_-F1), on peut en déduire qu'il manque au moins une tranche dans la même AU et dans la même couche spatiale et avec une couche de qualité égale à Qid ou Qid_ (événement 727). Si le test 711 est négatif (Qid n'est pas égal à Qid_-F1), on peut en déduire que les NALs pour lesquelles QId est compris entre Qid_ et Qid sont perdues (événement 713). Si les deux paquets consécutifs ont des valeurs différentes de Did (test 707 négatif), on teste lors d'un test 715 si Did = Did_-F1. Si ce n'est pas le cas (test 715 négatif), on peut en déduire que les NALs pour lesquelles Did est compris entre Did et Did_ sont perdues (événement 721). Sinon, c'est-à-dire si Did = Did_+1 (test 715 positif), on teste si Qid = 0 (test 717). Si Qid n'est pas nul (test 717 positif), cela signifie que des NALs avec QId = 0 et QId Comme représenté sur la figure 8, la partie complémentaire du processus de détection/localisation débute lorsque les deux paquets consécutifs n'ont pas la même valeur d'estampille temporelle (test 703 négatif). On effectue alors un test 801 pour déterminer si la différence entre les deux valeurs d'estampille temporelle (notées Timestamp et Timestamp_) est égale à une unité de temps, notée A, qui correspond à la longueur temporelle d'un groupe d'images GOP. Si ce n'est pas le cas (test 801 négatif), on peut considérer que toutes les NALs dont les valeurs d'estampille temporelle sont comprises entre Timestamp_ et Timestamp, qui auraient donc dû être reçues entre Timestamp_ et Timestamp, ont été perdues (événement 803). Le test 801 et l'étape 803 sont suivis par le test 805, qui consiste à déterminer si Did Qid_ et DId > Did_ à la fin de la dernière AU (événement 809). Le test 807 et l'événement 809 sont suivis par un test 811 qui consiste à déterminer si Did prend sa valeur minimale pour la valeur courante de Tid, c'est-à-dire si Did = minDid(Tid). Si tel est le cas (test 811 positif), on peut en déduire (événement 813) qu'une nouvelle AU a été reçue et qu'il manque au moins une tranche, soit avec DId = minDid(Tid) dans l'AU courante, soit avec DId = MaxDid ou QId = MaxQid dans l'AU reçue précédemment. Si le test 811 est négatif, c'est-à-dire si Did est différent de minDid(Tid), on peut en déduire qu'il manque des couches spatiales avec DId Si le test 823 est négatif, il est suivi par un test 825 où on examine si Qid = minQid(Tid). Si ce n'est pas le cas (test 825 négatif), on peut en déduire que les premières couches de qualité de la couche spatiale courante dans l'AU courante sont manquantes (événement 827). Si en revanche Qid = minQid(Tid) (test 825 positif), cela signifie qu'il manque les dernières couches de qualité dans l'AU précédente (événement 835). Si on n'a pas Qid Si cette durée dépasse la valeur courante de LST, alors une tentative d'abonnement par le dispositif client peut être mise en oeuvre. En revanche, si la durée écoulée est inférieure à la valeur courante de LST, aucune tentative d'abonnement n'est mise en oeuvre sur le réseau de 5 communication. Par ailleurs, une étape de décodage 610 des données vidéos reçues dans le groupe d'images GOP est mise en oeuvre. L'étape d'abonnement 609 et l'étape de décodage 610 sont suivies de l'étape d'initialisation 601 décrite précédemment et l'ensemble des étapes 10 précédentes est réitéré. Sinon, si à l'issue de l'étape de test 608, des erreurs ont été détectées dans le groupe d'images GOP précédent, une étape de sélection 611 d'une technique de décodage en fonction de la localisation des données vidéo affectées par les pertes de données est mise en oeuvre. 15 Dans ce mode de réalisation, il s'agit de sélectionner les niveaux hiérarchiques pouvant être décodés en tenant compte de l'impact des pertes de données détectées et localisées sur un premier ensemble d'images correspondant, dans ce mode de réalisation et de manière non limitative, à un groupe d'images GOP. 20 Cette étape de sélection 611 des niveaux hiérarchiques à décoder est décrite en détail en référence aux figures 9 et 10. Le processus de sélection de niveau(x) hiérarchique(s) 611 consiste tout d'abord à initialiser les variables Did, Qid, Tid et NumFrame à la valeur 0 (étape 905). La variable NumFrame indique le numéro de l'image traitée. 25 Puis lors d'un test 907, on recherche la NAL qui a été identifiée comme étant perdue lors de l'exécution du processus de détection/localisation d'erreurs. Si la NAL ayant une valeur donnée de Did, Qid et Tid (ce qu'on note NAL(Did, Qid, Tid)) est perdue, l'image correspondante est marquée comme perdue (même si seule une tranche de cette image est perdue) lors d'une étape 30 913. Cette étape est suivie d'un test 915 qui sera décrit ci-après. Si le test 907 est négatif, c'est-à-dire que la NAL considérée NAL(Did, Qid, Tid) n'est pas perdue, on détermine lors d'un test 909 si l'image de référence de cette NAL a été perdue. Si ce n'est pas le cas (test 909 négatif), on effectue le test 915 décrit ci-après. Si en revanche l'image de référence de cette NAL a été perdue (test 909 positif), l'image concernée est marquée comme perdue (étape 911). Le test 915 consiste à déterminer si toutes les couches de qualité ont été analysées. Pour cela, on teste si Qid MaxQid, où MaxQid désigne la plus haute couche de qualité. Si toutes les couches de qualité n'ont pas encore été analysées, c'est-à-dire si Qid MaxQid (test 915 positif), on augmente Qid, en incrémentant par exemple d'une unité la valeur de Qid (étape 916), puis le processus se poursuit avec une nouvelle NAL (retour au test 907). Si toutes les valeurs de Qid ont été testées (test 915 négatif), on passe au test 917, lors duquel on teste si toutes les couches spatiales ont été analysées. Pour cela, on teste si Did MaxDid, où MaxDid désigne la plus haute couche spatiale. Si toutes les couches spatiales n'ont pas été analysées (test 917 positif), lors d'une étape 919 on augmente Did, en incrémentant par exemple d'une unité la valeur de Did, et on attribue à Qid la valeur minimale autorisée de Qid pour la valeur courante de Tid (notée minQid(Tid)). Si en revanche toutes les valeurs de Did et de Qid pour l'AU courante ont été analysées, on examine lors d'un test 921 si toutes les images dans le GOP pour la couche temporelle courante (notée Tid) ont été analysées. Pour cela, on teste si NumFrame NumFrame (Did, Tid). Si les images du GOP pour Tid n'ont pas toutes été analysées (test 921 positif), le processus se poursuit avec l'image suivante et la variable NumFrame est incrémentée d'une unité (étape 923). En outre, à l'étape 923, le paramètre DId est fixé à sa valeur minimale autorisée pour la valeur courante de Tid (cette valeur minimale est notée MinDid(Tid)). De plus, à l'étape 923, le paramètre QId est fixé à sa valeur minimale autorisée pour la valeur courante de Tid (cette valeur minimale est notée MinQid(Tid)). Lorsque toutes les images de la couche temporelle courante ont été analysées (test 921 négatif), on examine lors d'un test 925 si toutes les couches temporelles ont été testées. Pour cela, on teste si Tid MaxTid, où MaxTid désigne la plus haute couche temporelle. Si toutes les couches temporelles n'ont pas été analysées (test 925 positif), on passe à l'étape 929, où on passe à la couche temporelle supérieure (Tid + 1) et où on fixe les paramètres DId et QId à leurs valeurs minimales respectives pour la valeur courante de Tid (ces valeurs minimales sont respectivement notées minDid(Tid) et minQid(Tid). Lorsque toutes les couches temporelles ont été analysées (test 925 négatif), toutes les images perdues, soit directement (par perte de paquets), soit indirectement (par propagation d'erreurs) sont identifiées (état 931). Le processus de sélection des couches à décoder peut alors débuter. Ce processus est illustré sur l'organigramme de la figure 10. Le processus de sélection débute lors d'une étape 1001 par l'initialisation de Did, Qid et Tid à la valeur O. De plus, le processus démarre avec la première image ayant les valeurs courantes de Did et Tid (soit NumFrame(Did, Tid)=0). Ces variables vont permettre d'analyser (en anglais "to parse") toute la structure du GOP. En outre, une variable Nloss(x,y,z) désignant le nombre de pertes est aussi initialisée à la valeur nulle lors de l'étape 1001 (les variables x, y et z prenant respectivement toutes les valeurs possibles de Did, Qid et Tid). Puis lors d'un test 1003, on examine si l'image considérée est perdue. Si elle n'est pas perdue (test 1003 négatif), l'image concernée est marquée comme affichée dans la représentation de la structure du GOP (étape 1005). L'étape 1005 est suivie d'un test 1017 décrit plus loin. Si en revanche l'image considérée est perdue (test 1003 positif), on incrémente la variable Nloss(Did,Qid,Tid) d'une unité (étape 1007). Puis lors d'un test 1009, on examine si la valeur de la variable Nloss(Did,Qid,Tid) est strictement supérieure à un seuil qui dépend des valeurs de Did, Qid et Tid. Ce seuil est noté Th(Did,Qid,Tid). Il représente la quantité acceptable de pertes pour un triplet donné de valeurs de Did, Qid et Tid. En effet, chaque triplet représente un niveau hiérarchique. Etant donné que certains niveaux sont plus importants que d'autres, le niveau de pertes acceptable ne peut être le même pour tous les niveaux hiérarchiques. Ainsi, la valeur seuil Th(Did,Qid,Tid) a une valeur dépendante du niveau hiérarchique associé au triplet de valeurs Did,Qid,Tid. Si le seuil n'est pas dépassé (test 1009 négatif), on passe au test 1017. Sinon (test 1009 positif), toutes les images avec DId Did, QId Qid et TId Tid sont marquées comme non affichées lors d'une étape 1011. Puis, lors d'une étape 1013, on modifie les valeurs de MaxQid, de MaxTid et de MaxDid. On évite ici l'analyse (en anglais "parsing") de l'intégralité de la structure du GOP si on sait déjà que la qualité des couches suivantes ne sera pas acceptable. Ainsi, lors de l'étape 1013, la valeur de MaxQid pour les valeurs de DId supérieures ou égales à Did et pour les valeurs de TId supérieures ou égales à Tid est fixée, soit à la valeur (Qid ù 1), soit à la valeur nulle si Qid = O. Toujours à l'étape 1013, la valeur de MaxTid pour les valeurs de DId supérieures ou égales à Did est fixée, soit à la valeur (Tid ù 1), soit à la valeur nulle si Tid = 0, et la valeur de MaxDid est fixée, soit à la valeur (Did ù 1), soit à la valeur nulle si Did = O. L'étape 1013 est suivie par un test 1019 qui sera décrit plus loin. Lors du test 1017, on examine si toutes les images avec le triplet courant (Did, Qid, Tid) ont été traitées. Si les images correspondant à ce triplet n'ont pas encore toutes été traitées (test 1017 négatif), on passe à l'image suivante (étape 1015) puis on retourne au test 1003 décrit plus haut. Lorsque toutes les images ayant le triplet courant (Did, Qid, Tid) ont été traitées (test 1017 positif), on passe au test 1019. Lors du test 1019, on examine si Did a atteint sa valeur maximale. Pour cela, on teste si la valeur Did est inférieure ou égale à MaxDid. Si Did n'a pas atteint sa valeur maximale (test 1019 positif), on augmente Did, en incrémentant par exemple d'une unité la valeur de Did (étape 1021), puis on retourne au test 1003. Si Did a atteint sa valeur maximale MaxDid (test 1019 négatif), on effectue un test 1023, consistant à examiner si Tid a atteint sa valeur maximale pour la valeur courante de Did. Pour cela, on teste si la valeur Tid est inférieure ou égale à MaxTid(Did). Si Tid n'a pas atteint cette valeur maximale (test 1023 positif), on augmente Tid, en incrémentant par exemple d'une unité la valeur de Tid (étape 1025), puis on retourne au test 1003. De plus, à l'étape 1025, Did est réinitialisé à sa valeur minimale pour la valeur donnée de Tid. Si Tid a atteint sa valeur maximale pour la valeur courante de Did, soit Tid = MaxTid(Did) (test 1023 négatif), on effectue un test 1027, consistant à examiner si Qid a atteint sa valeur maximale pour les valeurs courantes de Did et Tid. Pour cela, on teste si la valeur Qid est inférieure ou égale à MaxQid(Did,Tid). Si Qid n'a pas atteint cette valeur maximale (test 1027 positif), on augmente la valeur de Qid, en incrémentant par exemple d'une unité la valeur de Qid (étape 1029), puis on retourne au test 1003. De plus, à l'étape 1029, Did est réinitialisé à sa valeur minimale pour Tid = 0 et Tid est réinitialisé à la valeur nulle. Si Qid a atteint sa valeur maximale pour les valeurs courantes de Did et Tid, soit Qid = MaxQid(Did,Tid) (test 1027 négatif), le processus de sélection de niveaux hiérarchiques 611 est terminé. Il est à noter que, dans les organigrammes des figures 7 à 10, les descriptions des tests consistant à tester, soit si une valeur est atteinte et/ou dépassée, soit si une valeur est strictement supérieure à un seuil, soit si toutes les images ont été traitées, etc., ont été données à titre d'exemples nullement limitatifs, conformément aux modes particuliers de réalisation décrits. En variante, ces tests pourraient tout aussi bien consister à tester la condition inverse, à savoir, respectivement, soit si la valeur considérée n'est pas atteinte et/ou n'est pas dépassée, soit si la valeur considérée est inférieure ou égale au seuil fixé, soit s'il reste au moins une image non encore traitée, etc. Les traitements illustrés sur la figure 10 sont suivis par l'étape 613 de décodage de NAL illustrée sur la figure 6. Avant de décoder la NAL courante, le dispositif client vérifie si l'image concernée a été marquée comme étant perdue, dans la structure du GOP mémorisée dans l'unité de stockage 6 du client. Si l'image courante a été marquée comme perdue, le décodeur SVC rejette la NAL courante sans la décoder. Si cette image n'est pas marquée 10 comme perdue, la NAL est décodée. L'étape de décodage 613 est suivie ensuite de l'étape de test 615 sur la taille de la fenêtre d'analyse glissante WS. On vérifie ainsi à l'étape de test 615 si la taille de la fenêtre d'analyse glissante WS est atteinte, c'est-à-dire si une quantité suffisante de groupes 15 d'images GOP a été analysée aux étapes 603 et 605. Dans la négative, on réitère l'ensemble des étapes à partir de l'étape 602 en recevant des NALs supplémentaires. En revanche, si la taille de la fenêtre d'analyse glissante WS est atteinte, c'est-à-dire si WS est égale ici à 2A, une étape d'évaluation des pertes et d'adaptation de l'abonnement 617 est mise 20 en oeuvre à partir de l'examen de l'impact des pertes à long terme sur les groupes d'images GOP. Cette étape d'évaluation de pertes et d'adaptation de l'abonnement est décrite en détail en référence à la figure 11. Dans son principe, l'évaluation de l'importance des pertes de 25 données sur les données vidéo reçues à long terme, c'est-à-dire sur un second ensemble d'images de longueur, ici 2A, supérieure à la longueur, ici A, du premier ensemble d'images, réutilise le principe décrit précédemment en référence à la figure 9. Alors que la figure 9 permet d'évaluer les pertes sur un premier 30 ensemble d'images de petite taille, correspondant ici à un groupe d'images GOP, l'étape d'évaluation des pertes telle que décrite ultérieurement en référence à la figure 11 consiste à évaluer les pertes sur un second ensemble d'images de longueur supérieure, correspondant à la taille de la fenêtre d'analyse glissante WS, ici égale à deux groupes d'images GOP. On notera ainsi que ce second ensemble d'images, correspondant à la fenêtre d'analyse glissante WS, est constitué d'un ensemble de groupes d'images GOP successifs incluant le premier ensemble d'images GOP analysé précédemment, sur lequel des pertes de données ont été détectées. Cette étape d'évaluation des pertes et d'adaptation de l'abonnement 617 débute par une étape d'initialisation 1100. Le dispositif client initialise les valeurs Did, Tid et Qid à leurs valeurs maximales, ces valeurs correspondant au niveau hiérarchique le plus élevé reçu dans la session de diffusion groupée la plus élevée. Did = MaxDid ; Qid = MaxQid (Did) et Tid = MaxTid (Did). Toutes les images correspondant à ces valeurs de Did, Qid et Tid dans l'ensemble des groupes d'images GOP correspondant à la fenêtre 15 d'analyse glissante WS devront être analysées. Une variable n est utilisée pour énumérer l'ensemble des images dans le niveau hiérarchique le plus élevé, cette variable n étant initialisée à zéro. Par ailleurs, une variable N est initialisée à la valeur NumFrame (Did, 20 Tid, Qid) correspondant au nombre d'images dans le niveau hiérarchique le plus élevé. Finalement, la valeur Nloss est initialisée à zéro et représente le nombre d'images perdues dans le niveau le plus élevé. On considère dans une première étape 1101 une première image 25 dans le niveau hiérarchique donné. Une étape de vérification 1103 permet de vérifier si l'image est perdue. Dans la négative, cette étape de vérification 1103 est suivie par une étape 1108 dans laquelle on vérifie si toutes les images ont été analysées. 30 En pratique, on vérifie si n Une étape de comparaison 1107 est mise en oeuvre pour comparer le nombre de pertes Nloss à la valeur seuil Th (Did, Qid, Tid), décrite précédemment, correspondant ici au nombre acceptable de pertes dans le niveau hiérarchique le plus élevé. Si le nombre de pertes Nloss est supérieur à la valeur seuil, l'étape d'adaptation d'abonnement 1111 est mise en oeuvre de telle sorte que le dispositif client prend la décision de se désabonner du niveau hiérarchique le plus élevé. Sinon, l'étape de comparaison 1107 se poursuit par les étapes 1108 et suivantes décrites précédemment. Ainsi, en revenant à la figure 6, une étape de test 619 permet d'identifier la décision qui a été prise lors des étapes d'adaptation d'abonnement 1111, 1113 à la figure 11. Ainsi, si le désabonnement à un niveau hiérarchique donné à été décidé, l'étape de test 619 est suivie de l'étape de test 625 où on vérifie si la taille de la fenêtre d'analyse glissante WS est différente de la valeur A correspondant à la longueur temporelle d'un groupe d'images GOP. Dans l'affirmative, la taille de la fenêtre d'analyse glissante WS est réduite d'une valeur A telle que WS = WS ùA à une étape de soustraction 627. En revanche, si à l'issue de l'étape de comparaison 625, la taille de la fenêtre d'analyse glissante WS est déjà égale à la valeur minimale A, elle conserve sa valeur. En revanche, la variable LST correspondant à la période de temps s'écoulant entre deux tentatives d'abonnement à une session de diffusion groupée de niveau supérieur par le dispositif client, est augmentée de la valeur A, correspondant à la taille d'un GOP, à une étape d'addition 629 telle que LST = LST+A. L'ensemble du processus est ensuite réitéré à partir de l'étape de réception d'une NAL 602. En revanche, si à l'issue de l'étape de test 619, l'adaptation de l'abonnement consiste à maintenir le même niveau d'abonnement, l'étape de test 619 est suivie d'une étape d'addition 621 dans laquelle la taille de la fenêtre d'analyse glissante WS est augmentée d'une valeur A correspondant à la taille d'un groupe d'images GOP. L'étape d'addition 621 est suivie d'une étape de réinitialisation 623 consistant à réinitialiser la valeur LST à A. L'ensemble du processus est ensuite 15 réitéré à partir de l'étape de réception d'une NAL 602. Ainsi, la longueur de la fenêtre d'analyse glissante WS varie en fonction de l'adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée. La longueur de la fenêtre d'analyse glissante WS est diminuée, si 20 elle n'a pas atteint sa taille minimale A, lorsque le dispositif client se désabonne d'au moins une session de diffusion groupée. En revanche, la longueur de la fenêtre d'analyse glissante WS est augmentée lorsque le dispositif client maintient son abonnement à un sous-ensemble de sessions de diffusion groupée. 25 Dans ce mode de réalisation, la longueur de cette fenêtre d'analyse glissante WS est augmentée ou diminuée à chaque fois de la longueur A d'un groupe d'images GOP. Par ailleurs, l'intervalle de temps LST entre deux tentatives d'abonnement par le dispositif client à une session additionnelle de diffusion 30 groupée est augmenté lorsque la longueur de la fenêtre d'analyse glissante WS atteint sa valeur minimale préfixée, ici égale à A correspondant à un GOP. On a illustré aux figures 12 et 13, le principe obtenu par un tel procédé de contrôle dans l'abonnement d'un dispositif client à un sous-ensemble de sessions de diffusion groupée. Comme illustré à la figure 12, pendant trois premières périodes de temps successives Ti, T2, T3, de longueur A = GOP, le dispositif client s'abonne à des sessions de diffusion groupée additionnelles correspondant à des niveaux hiérarchiques de plus en plus élevés (niveau 0, niveau 1, niveau 2). En effet, dès lors que le débit lié à la transmission de ces sessions de diffusion groupée reste inférieur au débit ou bande passante disponible sur le réseau de communication, il n'y a pas d'erreurs et de pertes de données détectées (ce qui correspond à une réponse négative à l'étape de test de présence d'erreurs 608). Ensuite, lorsque le dispositif client cherche à s'abonner à une session de diffusion groupée supplémentaire (correspondant au niveau hiérarchique 3), des erreurs apparaissent dans la transmission des données puisque le débit cumulé dépasse la bande passante disponible sur le réseau de communication. Cependant, tant que la quantité d'erreurs évaluée dans la session de diffusion groupée la plus élevée est considérée comme acceptable, c'est-à-dire que le nombre de pertes de données évaluées ne dépasse pas la valeur seuil prédéterminée qui dépend de ce niveau hiérarchique donné, le procédé de contrôle et de décodage conserve inchangé l'abonnement du dispositif client, et en particulier conserve l'abonnement à la session de diffusion groupée la plus élevée. En revanche, comme illustré à la figure 13, si le nombre de pertes de données évaluées à la quatrième période T4 n'est pas acceptable pour le décodage, le dispositif client continue à recevoir pendant cette période T4 les quatre sessions de diffusion groupée (niveau hiérarchique 0 à niveau hiérarchique 3), bien que le contenu du niveau hiérarchique 3 de la session de diffusion groupée la plus élevée ne soit pas décodé. Après la cinquième période T5, la quantité de pertes évaluées sur la fenêtre d'analyse glissante WS, correspondant à la quatrième et à la cinquième période T4, T5 est considérée comme non acceptable dès lors que le nombre de pertes de données évaluées dépasse la valeur seuil prédéterminée associée à ce niveau hiérarchique (ici niveau 3). Dans ce cas, le dispositif client se désabonne de la quatrième session de diffusion groupée (et ne reçoit plus le niveau 3). Ce désabonnement est visible sur la sixième période T6 à la figure 13. Dans ce cas, comme expliqué en référence à la figure 6, la longueur de la fenêtre d'analyse glissante WS est réduite d'une valeur A et le dispositif client tente de nouveau de s'abonner à la quatrième session de diffusion groupée à l'expiration de la sixième période T6. Ce nouvel abonnement provoque à la septième période T7, de 15 nouveau des pertes de données dont le nombre dépasse la valeur seuil prédéterminée. Dans ce cas, le dispositif client se désabonne de nouveau pour la huitième période T8 de la quatrième session de diffusion groupée. La taille de la fenêtre d'analyse glissante WS étant égale à son 20 minimum A, la longueur de l'intervalle de temps entre deux tentatives d'abonnement LST est augmentée d'une valeur A de telle sorte qu'une nouvelle tentative d'abonnement à la quatrième session de diffusion groupée n'a lieu qu'à la dixième période T10. Ainsi, le procédé de contrôle et de décodage permet au dispositif 25 client d'espacer les tentatives d'abonnement à une session de diffusion groupée de niveau supérieur lorsque cet abonnement entraine systématiquement une congestion du réseau de communication. Par ailleurs, grâce à l'utilisation d'une fenêtre d'analyse glissante WS de taille supérieure à la longueur d'un GOP, il est possible de ne pas réagir 30 systématiquement par le désabonnement du dispositif client à une session de diffusion groupée de niveau supérieur lorsque la congestion du réseau est de courte durée. On a décrit précédemment un mode de réalisation pratique de l'invention dans lequel l'évaluation des pertes de données sur le niveau hiérarchique le plus élevé reçu entraine le désabonnement à la session de diffusion groupée transmettant ce niveau hiérarchique le plus élevé. Toutefois, lorsque des congestions importantes du réseau se produisent, il peut être intéressant d'autoriser le désabonnement simultané à plusieurs sessions de diffusion groupée. Une solution consiste à utiliser l'insertion par le serveur d'un niveau de priorité associé à chaque paquet de données vidéo transféré. Le niveau de priorité inséré dans chaque paquet de données vidéo dépend du niveau hiérarchique des données vidéo insérées ainsi que de la dépendance de ces données vidéo avec d'autres données vidéo insérées dans des paquets différents. En pratique, ce niveau de priorité peut être inséré dans l'en-tête de la NAL, dans le champ priority_ID ou dans l'en-tête d'un paquet de données. En pratique, un niveau de priorité élevé sera associé avec une session de diffusion groupée transportant un niveau hiérarchique bas. A contrario, un niveau de priorité faible sera associé à une session de diffusion groupée transportant un niveau hiérarchique élevé. De manière classique, dans un réseau de communication mettant en oeuvre des niveaux de priorité associés à des paquets RTP, un routeur rejette systématiquement les paquets selon l'ordre de priorité lorsqu'une congestion du réseau de communication se produit. Aussi, en cas de congestion du réseau de communication, les paquets de données vidéo ayant les niveaux de priorité les plus faibles seront rejetés en premier. Ainsi, si un paquet de données associé à un niveau de priorité élevé est perdu, le dispositif client peut déduire d'une part qu'une congestion importante du réseau se produit et d'autre part que les paquets de données vidéo associés à un niveau de priorité plus faible seront également perdus. Dès lors qu'à l'issue des étapes d'identification et de localisation de pertes telles que décrites en référence aux figures 7 et 8, il est possible de connaître exactement quelle NAL est perdue, il est également possible de connaître le niveau de priorité de chaque NAL perdue, mémorisé par exemple dans l'en-tête de la NAL, dans le champ priority_ID. Chaque niveau de priorité étant associé respectivement à un paquet 5 de données, la session de diffusion groupée associée avec un paquet de données perdues peut être identifiée. Il est possible alors d'adapter l'abonnement du dispositif client au sous-ensemble de sessions de diffusion groupée en fonction du niveau de priorité identifié d'un paquet de données vidéo affectées par des pertes de 10 données. En pratique, l'étape d'adaptation d'abonnement 617 est adaptée pour s'appliquer de manière séquentielle à tous les niveaux hiérarchiques affectés par des pertes, en commençant par le niveau hiérarchique le plus bas. Si le nombre de pertes de données évaluées dépasse la valeur seuil 15 prédéterminée de pertes de données associée au niveau hiérarchique analysé, lors de l'adaptation de l'abonnement, non seulement la session de diffusion groupée correspondant au niveau hiérarchique analysé est rejetée, mais également l'ensemble des sessions de diffusion groupée transmettant des données vidéo de niveaux hiérarchiques supérieurs au niveau hiérachique 20 analysé. Ainsi, le dispositif client se désabonne à plusieurs sessions de diffusion groupée à la fois. REVENDICATIONS1. Procédé de contrôle par un dispositif client (12) du transfert d'une séquence vidéo transmise sur un ensemble de sessions de diffusion groupée par un serveur (11) dans un réseau de communication, ladite séquence vidéo étant codée selon un codage vidéo hiérarchique sur un ensemble de niveaux hiérarchiques, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée, ledit dispositif client (12) s'abonnant à au moins un sous-ensemble de sessions de diffusion groupée, caractérisé en ce qu'il comprend les étapes suivantes : - détection (603, 605), sur un premier ensemble d'images de ladite séquence vidéo, de pertes de données affectant des données vidéo dudit premier ensemble d'images ; - sélection (611) d'une technique de décodage en fonction de la 15 localisation des données vidéo affectées par lesdites pertes de données dans ledit premier ensemble d'images ; - détection (617), sur un second ensemble d'images (WS) de ladite séquence vidéo, la longueur dudit second ensemble d'images étant supérieure à la longueur dudit premier ensemble d'images, des pertes de données 20 affectant des données vidéo dudit second ensemble d'images ; - évaluation (617) de l'importance des pertes de données affectant les données vidéo dudit second ensemble d'images (WS) ; et - adaptation (617) de l'abonnement par ledit dispositif client (12) au sous-ensemble de sessions de diffusion groupée en fonction de l'importance 25 des pertes de données affectant les données vidéo dudit second ensemble d'images (WS). 2. Procédé de contrôle conforme à la revendication 1, caractérisé en ce que ladite étape de sélection (611) d'une technique de décodage est adaptée à sélectionner au moins un niveau hiérarchique à ne pas décoder. 30 3. Procédé de contrôle conforme à l'une des revendications 1 ou 2, caractérisé en ce qu'à ladite étape d'évaluation (617), l'importance des pertes de données est évaluée sur des données vidéo d'un niveau hiérarchique donné et en ce qu'à ladite étape d'adaptation (617), le dispositif client (12) se désabonne d'une session de diffusion groupée transmettant ledit niveau hiérarchique donné lorsque le nombre de pertes de données évaluées dépasse une valeur seuil prédéterminée Th (Did, Qid, Tid) de pertes de données. 4. Procédé de contrôle conforme à la revendication 3, caractérisé en ce que ladite valeur seuil prédéterminée Th (Did, Qid, Tid) a une valeur dépendante dudit niveau hiérarchique donné. 5. Procédé de contrôle conforme à l'une des revendications 3 ou 4, caractérisé en ce qu'à ladite étape d'adaptation (617), ledit dispositif client (12) se désabonne en outre d'au moins une session de diffusion groupée transmettant respectivement des données vidéo de niveau hiérarchique supérieur audit niveau hiérarchique donné. 6. Procédé de contrôle conforme à l'une des revendications 1 ou 2, ledit serveur insérant des niveaux de priorité respectivement dans des paquets de données vidéo transférés respectivement sur un ensemble de sessions de diffusion groupée, le niveau de priorité inséré dans un paquet de données vidéo étant dépendant du niveau hiérarchique desdites données vidéo dudit paquet, caractérisé en ce que le procédé de contrôle comprend les étapes suivantes : - identification du niveau de priorité associé à un paquet de données vidéo affectées par lesdites pertes de données détectées lors de ladite étape de détection (617) sur un second ensemble d'images (WS) de ladite séquence vidéo ; et - adaptation de l'abonnement par ledit dispositif client (12) au sous-ensemble de sessions de diffusion groupée en fonction dudit niveau de priorité identifié. 9. Procédé de contrôle conforme à l'une des revendications 1 à 6, caractérisé en ce qu'il comprend une étape de variation (621, 627) de la longueur dudit second ensemble d'images (WS) en fonction de l'adaptation de l'abonnement par le dispositif client (12) au sous-ensemble de sessions de diffusion groupée à ladite étape d'adaptation (617). 10. Procédé de contrôle conforme à la revendication 7, caractérisé en ce qu'à ladite étape de variation (627), la longueur dudit second ensemble d'images (WS) est diminuée lorsqu'à ladite étape d'adaptation (617), ledit dispositif client (12) se désabonne d'au moins une session de diffusion groupée. 9. Procédé de contrôle conforme à l'une des revendications 7 ou 8, caractérisé en ce qu'à ladite étape de variation (621), la longueur dudit second ensemble d'images (WS) est augmentée lorsqu'à ladite étape d'adaptation (617), ledit dispositif client (12) maintient son abonnement audit sous-ensemble de sessions de diffusion groupée. 10. Procédé de contrôle conforme à l'une des revendications 7 à 9, caractérisé en ce que le premier ensemble d'images est un groupe d'images (GOP), le second ensemble d'images (WS) étant constitué d'un ensemble de groupes d'images successifs incluant ledit premier ensemble d'images. 11. Procédé de contrôle conforme à la revendication 10, caractérisé en ce que la longueur dudit second ensemble d'images (WS) est augmentée ou diminuée de la longueur (A) d'un groupe d'images (GOP). 12. Procédé de contrôle conforme à l'une des revendications 1 à 11, caractérisé en ce que, lorsque la longueur dudit second sous-ensemble d'images (WS) est égale à une valeur minimale préfixée (A), un intervalle de temps (LST) entre deux tentatives d'abonnement par ledit dispositif client (12) à une session additionnelle de diffusion groupée, s'ajoutant audit sous-ensemble de sessions de diffusion groupée, est augmenté. 13. Procédé de décodage par un dispositif client (12) d'une séquence vidéo transmise sur un ensemble de sessions de diffusion groupée par un serveur (11) dans un réseau de communications, ladite séquence vidéo étant codée selon un codage vidéo hiérarchique sur un ensemble de niveaux hiérarchiques, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée, ledit dispositif client (12) s'abonnant à au moins un sous-ensemble de sessions de diffusion groupée, caractérisé en ce qu'il comprend les étapes suivantes : - détection (603, 605), sur un premier ensemble d'images de ladite séquence vidéo, de pertes de données affectant des données vidéo dudit premier ensemble d'images ; - décodage (613) d'une sélection de niveaux hiérarchique en fonction de la localisation des données vidéo affectées par lesdites pertes de données dans ledit premier ensemble d'images ; - détection (617), sur un second ensemble d'images (WS) de ladite séquence vidéo, la longueur dudit second ensemble d'images étant supérieure à la longueur dudit premier ensemble d'images, des pertes de données affectant des données vidéo dudit second ensemble d'images ; - évaluation (617) de l'importance des pertes de données affectant les données vidéo dudit second ensemble d'images ; et - adaptation (617) de l'abonnement par ledit dispositif client (12) au sous-ensemble de sessions de diffusion groupée en fonction de l'importance des pertes de données affectant les données vidéo dudit second ensemble d'images (WS). 14. Dispositif de contrôle du transfert d'une séquence vidéo transmise sur un ensemble de sessions de diffusion groupée par un serveur (11) dans un réseau de communications, ladite séquence vidéo étant codée selon un codage vidéo hiérarchique sur un ensemble de niveaux hiérarchiques, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée, ledit dispositif client (12) s'abonnant à au moins un sous-ensemble de sessions de diffusion groupée, caractérisé en ce qu'il comprend : - des moyens de détection (16, 17, 18), sur un premier ensemble d'images de ladite séquence vidéo, de pertes de données affectant des données vidéo dudit premier ensemble d'images ; - des moyens de sélection (16, 17, 18) d'une technique de décodage en fonction de la localisation des données vidéo affectées par lesdites pertes de données dans ledit premier ensemble d'images ; - des moyens de détection (16, 17, 18), sur un second ensemble d'images (WS) de ladite séquence vidéo, la longueur dudit second ensemble d'images étant supérieure à la longueur dudit premier ensemble d'images, des pertes de données affectant des données vidéo dudit second ensemble d'images ; - des moyens d'évaluation (16, 17, 18) de l'importance des pertes de données affectant les données vidéo dudit second ensemble d'images (WS) ; et - des moyens d'adaptation (16, 17, 18) de l'abonnement par ledit dispositif client (12) au sous-ensemble de sessions de diffusion groupée en fonction de l'importance des pertes de données affectant les données vidéo dudit second ensemble d'images. 15. Dispositif de contrôle conforme à la revendication 14, caractérisé en ce qu'il comprend des moyens de variation (16, 17, 18) de la longueur dudit second ensemble d'images (WS) en fonction de l'adaptation de l'abonnement au sous-ensemble de sessions de diffusion groupée. 16. Dispositif de contrôle conforme à l'une des revendications 14 ou 15, ledit serveur (11) insérant des niveaux de priorité respectivement dans des paquets de données vidéo transférés respectivement sur un ensemble de sessions de diffusion groupée, le niveau de priorité inséré dans un paquet de données vidéo étant dépendant du niveau hiérarchique desdites données vidéo dudit paquet, caractérisé en ce qu'il comprend en outre : - des moyens d'identification (16, 17, 18) du niveau de priorité associé à un paquet de données vidéo affectées par lesdites pertes de données détectées lors de ladite étape de détection sur un second ensemble d'images (WS) de ladite séquence vidéo ; et - des moyens d'adaptation (16, 17, 18) de l'abonnement par ledit dispositif client (12) au sous-ensemble de sessions de diffusion groupée en fonction dudit niveau de priorité identifié. 19. Dispositif client dans un réseau de communication, comportant des moyens de calcul (17), des moyens de stockage (16) et des moyens de communication (18) avec ledit réseau, lesdits moyens de calcul (17) coopérant avec lesdits moyens de stockage (16) et lesdits moyens de communication (18) avec le réseau pour mettre en oeuvre le procédé de contrôle conforme à l'une des revendications 1 à 12 et/ou le procédé de décodage conforme à la revendication 13. 20. Moyen de stockage d'informations lisibles par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet de mettre en oeuvre un procédé de contrôle conforme à l'une des revendications 1 à 12 et/ou un procédé de décodage conforme à la revendication 13. 19. Produit programme d'ordinateur pouvant être chargé dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de contrôle conforme à l'une des revendications 1 à 12 et/ou un procédé de décodage conforme à la revendication 13, lorsque ce programme est chargé dans et exécuté par l'appareil programmable.