Brevet FR2929790A1 — publié le 20091009

La présente invention concerne un procédé et un dispositif de transmission de données. Elle s'applique, notamment, à la transmission de flux vidéo adaptables (en anglais �scalable �) SVC (acronyme de � scalable video coding � pour codage vidéo adaptable) contenant plusieurs niveaux de résolution spatiale, d'un serveur vers un client, avec la possibilité de modifier les couches d'adaptabilité, ou �scalabilité �, transmises en cours de session vidéo, notamment le niveau de résolution spatiale reçu par le client. Dans un système de codage SVC client-serveur, il peut être intéressant, pour l'utilisateur, de naviguer entre les couches (� layers �) de scalabilité, en particulier entre les couches spatiales. On vise ici à rendre une séquence vidéo décodée avec la meilleure qualité possible du côté client lors de la commutation entre les couches de scalabilité spatiale. A cet effet, il est nécessaire que le processus de décodage vidéo soit capable de commuter depuis un niveau spatial à un autre à certains endroits de la séquence vidéo. Plusieurs solutions techniques existent déjà pour cela. On connaît des techniques de réduction de dérive durant des opérations de commutation, notamment l'introduction d'images dites � IDR � (acronyme de � Instantaneous Decoder Refresh � pour rafraîchissement de décodeur instantanée), l'introduction d'images SVC dites � clés �, les images H.264 SP et SVC ESP proposées au JVT (acronyme de �joint video team � pour équipe vidéo), la technique décrite dans la demande de Brevet Français n°06 50974 déposée le 21 mars 2006 et la solution technique décrite dans le document US 6,961,383. Ces différentes techniques sont analysées ci-dessous. Une première technique de codage vidéo SVC permettant la commutation entre niveaux de résolution spatiale consiste à insérer fréquemment des images codées en intra (c'est-à-dire sans référence à d'autres images) dans les différentes couches spatiales. Cette solution a comme inconvénient un coût additionnel en termes de taux de compression associé au codage intra. Une deuxième technique de codage vidéo SVC permettant la commutation entre niveaux de résolution spatiale consiste à utiliser des images dites � clés �. Ces images, codées dans une couche de base d'une couche d'amélioration spatiale donnée, sont systématiquement entièrement reconstruites au cours du procédé de décodage et sont utilisées comme images de référence des images futures dans la couche d'amélioration. Par conséquent, cette technique de codage mène à une plus grande complexité, en comparaison avec un mode de décodage à boucle simple (� single loop �) ainsi qu'à une perte d'efficacité de codage dans la couche d'amélioration. La demande de Brevet Français n°06 50974 décrit un procédé de codage qui comporte, lors du passage à partir d'une image dite � courante �, d'un niveau de qualité initial à un niveau de qualité visé différent du niveau de qualité initial un codage et une reconstruction de l'image courante jusqu'au niveau de qualité visé pour fournir une image courante codée, l'obtention de chaque image de référence de l'image courante au niveau de qualité initial, une détermination d'un raffinement de texture différentiel fonction de l'image de prédiction pour le niveau de qualité initial et de l'image courante reconstruite de niveau de qualité visé et une étape de codage du raffinement de texture différentiel. Cette technique présente donc l'inconvénient d'augmenter la quantité d'information à transmettre. Le problème à la base de la présente invention est de restituer la meilleure qualité vidéo possible à un client donné lors d'une commutation demandée par le client, entre deux niveaux de résolution spatiale différents. A cet effet, la présente invention vise, selon un premier aspect, un procédé de transmission de données entre un serveur et un client, caractérisé en ce qu'il comporte, réalisées par ledit serveur : - une étape de détermination d'au moins une commutation possible 30 entre deux niveaux de résolution spatiale différents, - une étape de génération d'au moins une couche de priorité adaptée à un niveau de résolution spatiale, en l'absence de commutation, - une étape de génération d'au moins une couche de priorité adaptée à une dite commutation possible, et - lors d'une réception d'une demande de commutation entre un niveau de résolution spatiale initial et un niveau de résolution spatiale cible, de la part du client, une étape de transmission de la couche de priorité adaptée à la commutation demandée. On tire ainsi profit du phénomène de dérive temporelle lors d'une commutation entre deux niveaux spatiaux SVC, au moins lorsque cette dérive apporte un gain en qualité par rapport à une commutation de résolution spatiale sans dérive (� drift �). Une dérive temporelle dans le décodeur est ainsi autorisée si elle améliore la qualité visuelle. Les avantages de la présente invention comportent : - de fournir au client la meilleure qualité en fonction des débits disponibles pour ce client, au moment d'un changement de niveau de résolution spatiale et - il n'y a pas de coût de mise en oeuvre de l'invention, en termes de débit, puisqu'il n'y a transmission d'aucune information additionnelle lors de la commutation. Selon des caractéristiques particulières, au cours de l'étape de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on génère un groupe d'images décodées obtenu lors d'une commutation entre le niveau spatial initial et le niveau spatial cible en ré-échantillonnant la dernière image d'un groupe d'images précédent pour l'adapter au niveau spatial cible. Selon des caractéristiques particulières, au cours de l'étape de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on décode les images du groupe d'images courant au niveau spatial cible avec, comme image de référence dans la prédiction temporelle, l'image décodée et ré-échantillonnée. Selon des caractéristiques particulières, au cours de l'étape de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on calcule, avec les images du groupe d'images courant ainsi décodées, les distorsions liées au décodage d'entités élémentaires du train binaire du groupe d'images courant. Selon des caractéristiques particulières, au cours de l'étape de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on constitue chaque couche de priorité en fonction des ratios des distorsions liées au décodage de chaque entité élémentaire du train binaire du groupe d'images courant par le débit nécessaire pour transmettre ladite entité élémentaire. Selon des caractéristiques particulières, au cours de l'étape de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on réalise une optimisation débit-distorsion pour attribuer des indices de couches de priorité, ou niveaux de priorité, à chaque entité élémentaire du groupe d'images courant. On obtient ainsi un jeu modifié d'entités élémentaires ("NAL units") transmises au client où le niveau de résolution spatiale est modifié en comparaison avec les approches connues dans l'art antérieur. Selon des caractéristiques particulières, l'étape de génération d'au moins une couche de priorité adaptée à une dite commutation possible comporte une étape de stockage, au cours de laquelle on stocke un identifiant d'au moins une couche de priorité définie en fonction desdits indices de couches de priorité. Selon des caractéristiques particulières, au cours de l'étape de stockage, on écrit des messages SEI (acronyme de � Supplemental Enhancement Information �) qui codent et stockent des données utiles pour une extraction et transmission de sous-flux optimaux, lorsque le client ou le réseau provoque une commutation spatiale. La présente invention vise, selon un deuxième aspect, un dispositif de transmission de données entre un serveur et un client, caractérisé en ce qu'il comporte, dans un serveur : - un moyen de détermination d'au moins une commutation possible entre deux niveaux de résolution spatiale différents, - un moyen de génération d'au moins une couche de priorité adaptée à un niveau de résolution spatiale, en l'absence de commutation, - un moyen de génération d'au moins une couche de priorité adaptée à une dite commutation possible, et - un moyen de transmission adapté, lors d'une réception d'une demande de commutation entre un niveau de résolution spatiale initial et un niveau de résolution spatiale cible, de la part du client, à transmettre la couche de priorité adaptée à la commutation demandée. Selon un troisième aspect, la présente invention vise un programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en oeuvre du procédé de transmission objet de la présente invention tel que succinctement exposé ci-dessus. Selon un quatrième aspect, la présente invention vise un support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé de transmission objet de la présente invention tel que succinctement exposé ci-dessus. Les avantages, buts et caractéristiques particulières de ce dispositif, de ce programme et de ce support d'information étant similaires à ceux du procédé tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques particulières de la présente invention ressortiront de la description qui va suivre, faite, dans un but explicatif et nullement limitatif, en regard des dessins annexes, dans lesquels : - la figure 1 représente, schématiquement, un mode de réalisation particulier du dispositif objet de la présente invention ; - la figure 2 représente une dérive lors de la commutation d'un niveau de résolution spatiale à un autre ; - les figures 3A et 3B représentent, schématiquement, des couches 30 de priorité mises en oeuvre dans un codage SVC et leur représentation dans un courbe ; - la figure 4 représente, schématiquement, le traitement de couches de priorité en vue de la commutation de niveau de résolution spatiale et - les figures 5 à 8 représentent, sous forme de logigramme, des étapes mises en oeuvre dans un mode de réalisation particulier du procédé objet de la présente invention. On observe, en figure 1, que, dans un mode de réalisation particulier, le dispositif objet de la présente invention, prend la forme d'un micro-ordinateur 100 muni d'un logiciel implémentant le procédé objet de la présente invention et de différents périphériques. Le dispositif constitue, ici un serveur adapté à transmettre des images codées à des clients (non représentés). Le micro-ordinateur 100 est connecté à différents périphériques, par exemple un moyen d'acquisition ou de stockage d'images 107, par exemple une caméra numérique ou un scanner, relié à une carte graphique (non représentée) et fournissant des informations d'image à compresser et à transmettre. Le micro-ordinateur 100 comporte une interface de communication 118 reliée à un réseau 134 apte à transmettre des données numériques à compresser et à transmettre des données compressées par le micro-ordinateur. Le micro-ordinateur 100 comporte également un moyen de stockage 112 tel que, par exemple, un disque dur. Le micro-ordinateur 100 comporte aussi un lecteur de disquette 114. Une disquette 116, comme le moyen de stockage 108, peuvent contenir des données compressées ou à compresser. La disquette 116 peut aussi contenir des instructions d'un logiciel implémentant le procédé objet de la présente invention, instructions qui, une fois lues par le micro-ordinateur 100, sont stocké dans le moyen de stockage 108. Selon une variante, le programme permettant au dispositif de mettre en oeuvre la présente invention est stocké en mémoire morte 104 (appelée � ROM �, acronyme de read only memory, en figure 1). En seconde variante, le programme est reçu par l'intermédiaire du réseau de communication 134 et est stocké dans le moyen de stockage 108. Le micro-ordinateur 100 est relié à un micro 124 par l'intermédiaire de la carte d'entrée/sortie 122. Le micro-ordinateur 100 possède un écran 108 permettant de visualiser les données à compresser ou de servir d'interface avec l'utilisateur,, à l'aide d'un clavier 110 ou de tout autre moyen (souris par exemple). Bien entendu, la disquette 116 peut être remplacée par tout support d'information tel que CD-ROM (acronyme de compact disc û read only memory pour mémoire en lecture seule en disque compact) ou une carte mémoire. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé objet de la présente invention. Une unité centrale 120 (appelée � CPU �, acronyme de central processing unit, en figure 1) exécute les instructions du logiciel implémentant le procédé objet de la présente invention. Lors de la mise sous tension, les programmes permettant l'implémentation du procédé objet de la présente invention stockés dans une mémoire non volatile, par exemple la ROM 104, sont transférés dans la mémoire vive RAM 106 qui contient alors les instructions de ce logiciel ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. Un bus de communication 102 permet la communication entre les différents éléments du micro-ordinateur 100 ou reliés à lui. La représentation du bus 102 n'est pas limitative. Notamment, l'unité centrale 120 est susceptible de communiquer des instructions à tout élément du dispositif directement ou par l'intermédiaire d'un autre élément du dispositif. La figure 2 illustre la qualité d'image qui peut être obtenue en décodant une séquence SVC lors d'une commutation depuis un niveau de résolution spatiale supérieur à un niveau de résolution spatiale inférieur. Les lignes horizontales 205 et 210 représentent les niveaux de qualité, en termes de rapport signal/bruit, par exemple PSNR (acronyme de Peak Signal to Noise Ratio pour rapport signal/bruit de pic), obtenus lorsque l'on décode régulièrement les niveaux de résolution spatiale supérieur et inférieur, respectivement, sans réaliser de commutation de niveau. En conséquence, si une commutation est effectuée sans aucune dérive par le décodeur, la qualité d'image obtenue par l'utilisateur correspond à la ligne 215, au cours de la commutation. Au contraire, si une dérive temporelle est présente lors de la commutation descendante depuis le niveau de résolution spatiale supérieur vers le niveau de résolution spatiale inférieur, la qualité d'image obtenue 220 peut se trouver entre les deux lignes 205 et 210. La présente invention met à profit cette qualité d'image, qui est supérieure à celle obtenue sans dérive temporelle. Les figures 3A et 3B illustrent le principe des couches de priorité mises en oeuvre dans le codage vidéo adaptable (� scalable �) SVC. En figure 3A est représenté un groupe d'image, ou GOP d'une séquence vidéo. En figure 3A, ne sont représentés que deux niveaux de résolution spatiale 305 et 310, étant entendu que plus de deux niveaux peuvent être mis en oeuvre dans le codage SVC. De plus, chaque niveau spatial contient deux niveaux de qualité, 306 et 307, pour le niveau spatial 305, et 311 et 312, pour le niveau spatial 310. Dans chaque niveau spatial, chaque image du GOP est identifiée par son type de codage, P ou B, et, pour les premières, l'indice du GOP et, pour les secondes, son indice dans la séquence. On a ainsi, successivement, les images P0, BO, B1, B2, B3, B4, B5, B6 et P1. Enfin, puisque l'adaptabilité temporelle est fournie par le codage SVC par le codage d'images B hiérarchisées, chaque image du GOP possède un identifiant de niveau temporel, indiqué au dessus des images. Ici cet identifiant prend successivement les valeurs t0, t3, t2, t3, t1, t3, t2, t3 et t0. Les images possédant les niveaux temporels les plus élevés peuvent être exclues pour extraire un sous-flux (� substream �) présentant une résolution temporelle réduite, ou fréquence d'images (� frame rate �). Dans la suite, chaque image d'un niveau spatial est identifiée par son niveau de qualité et son identifiant dans le niveau de qualité. Par exemple, B3, QO correspond à l'image B ayant un indice 3 et un niveau qualité Q0, dans le niveau spatial considéré. En termes d'éléments NAL (acronyme de � Network Abstract Layer � pour couche d'abstraction de réseau) Units.de train binaire (� bitstream �), une telle image est codée en un ou plusieurs éléments, en fonction du nombre de tranches de macroblocs (� slices �) utilisées pour encoder cette image (une � NAL unit � par tranche de macroblocs). Une NAL unit représente une entité élémentaire de données H.264 ou SVC, et est composée d'un en-tête et d'un corps). L'en-tête fournit des caractéristiques des données contenues dans le corps. Le corps contient soit des données d'un slice codé soit des paramètres de codage de la séquence ou d'images de la séquence vidéo. Ici, pour des raisons de clarté, on ne considère pas la possibilité d'encoder des images auxiliaires, qui transporteraient des données redondantes dans une unité NAL dédiée qui serait utilisée pour augmenter la robustesse de la transmission, face aux erreurs de transmission. La figure 3B illustre la manière dont les couches de priorité sont calculées pour les images du GOP illustré en figure 3A, pour un niveau spatial donné. D'une manière générale, le calcul des couches de priorité vise à fournir à chaque NAL unit codée contenue dans le GOP au niveau spatial donné une valeur dite d'identifiant de priorité (� priority ID-value �). Cet identifiant de priorité représente donc la contribution de chaque NAL unit à la qualité de la version décodée du GOP considéré, en fonction du coût de la NAL unit, en terme de débit. Ainsi, les NAL units qui portent la plus grande contribution à la qualité du GOP reconstruit obtiennent le niveau de priorité le plus élevé et une plus haute priorité de transmission. En d'autres termes, lorsque le serveur doit sélectionner un sous-flux pour un débit cible, le sous-flux est formé en sélectionnant, en premier, les NAL units possédant les plus hauts niveaux de priorité. Ainsi, le sous-flux possédant la meilleure qualité vidéo est formé par l'agent d'extraction de sous-flux (� substream extraction agent") en fonction du débit requis. Dans la suite, on explique comment les couches de priorité sont calculées dans SVC. Une couche de priorité réunit toutes les NAL units qui possèdent la même valeur d'identifiant de priorité dans un train binaire SVC. La détermination des couches de priorité est effectuée en trois phases principales : - d'abord, on calcule l'information de débit-distorsion de chaque NAL unit. Le débit associé à chaque NAL unit constituant le GOP est donné par la longueur, en octets de la NAL unit codée. La distorsion est obtenue en calculant la réduction de distorsion obtenue par le décodage du GOP avec ou sans la NAL unit considérée. Plus de détail sur les différentes manières de calculer la distorsion associée à une NAL unit donnée sont donnés dans l'article de I. Amonou, N. Gammas, S. Kervadec, et S. Pateux � Optimized rate-distortion extraction with quality layers in the scalable extension of h.264/avc � paru dans � IEEE Transactions on Circuits and Systems for Video Technology �, 17(9) : 1186-1193, Septembre 2007. - puis on détermine la courbe de débit-distorsion 320 dans le codage du GOP courant, comme illustrée en figure 3B. Cette courbe de débit-distorsion 320 est obtenue en triant les NAL units en fonction de leur pente (� slope �) de débit-distorsion. Cette pente est obtenue en divisant la réduction de distorsion associée à la NAL unit par le coût en termes de débit de cette NAL unit. Ainsi, les NAL units sont triées par ordre décroissant de leur pente, ce qui fournit la courbe de débit-distorsion 320 associée au codage du GOP courant dans le niveau spatial considéré. On note que des contraintes, imposées par la dépendance temporelle entre les images du GOP ont été prises en compte pour que des données de référence apparaissent avant les données prédites correspondantes, dans la liste des NAL units. La section III.B du document mentionné au paragraphe précédent fournit des éléments algorithmiques précis pour assurer le respect de ces contraintes. - enfin, on forme les couches de priorité (appelées � glayer � sur la figure) en fonction des points de débit-distorsion ordonnés et de chaque débit de couche désiré. Cette phase réunit les NAL units adjacentes à la fin de la phase précédente dans des niveaux de qualité. Différents critères peuvent être utilisés pour décider comment réunir les NAL units adjacentes dans la même couche de priorité. Par exemple, un débit cible requis pour chaque couche de priorité peut servir de critère. Les identifiants de couches de priorité sont encodés dans le train binaire SVC soit dans l'en-tête dans chaque NAL unit, dans un champ de six bits appelé � priority_id �, ou dans le message SEI appelé "Priority layer information" (pour information de couche de priorité). La syntaxe de ce message est décrite dans l'article de T. Wiegand, G. Sullivan, J. Reichel, H. Schwarz, et M. Wien � Joint Draft ITU-T Rec. H.264 / ISO/IEC 14496-10/Amd.3 Scalable Video Coding �. Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, Genève, Suisse, Juillet 2007. Document JVTX201, section G.13.6. Une fois les couches de priorité calculées et écrites dans le train binaire SVC, elles peuvent être utilisées dans le processus d'extraction de sous-flux. Les couches de priorité indiquent des points de décodage optimal en termes de débit-distorsion, dans le train binaire SVC. Ainsi, quand un serveur SVC doit transmettre un sous-flux à un débit donné, il peut utiliser l'information des couches de priorité pour extraire les couches de priorité qui fournissent un sous-flux avec un débit égal au débit requis. L'avantage technique d'utiliser des couches de priorité pour réaliser cette extraction est que le sous-flux extrait fournit la meilleure qualité vidéo pour le débit requis. Ainsi, les couches de priorité garantissent une extraction de sous-flux et une transmission optimales dans de système SVC client/serveur. La figure 4 illustre le calcul des couches de priorité dédiées à la commutation spatiale, en vue d'exploiter l'amélioration de qualité qui peut être obtenue par la dérive temporelle lors d'une commutation de niveau spatial contenus dans une séquence vidéo SVC. Dans le mode de réalisation de la présente invention illustré en figure 4, on calcule, pour chaque GOP de la séquence, un ou deux jeux additionnels d'identifiants de couches de priorité qui sont associés aux possibles commutations de niveau spatial pour le GOP considéré. Un exemple de séquence SVC, comportant trois niveaux spatiaux 480, 481 et 482 est représenté en figure 4. Une flèche horizontale droite représente le décodage régulier d'un GOP au niveau spatial intermédiaire. Une flèche descendante représente le chemin de décodage suivi lors d'une commutation depuis le niveau spatial supérieur 482 vers le niveau spatial intermédiaire 481. Une flèche ascendante représente le chemin de décodage suivi lors d'une commutation depuis le niveau spatial inférieur 480 vers le niveau spatial intermédiaire 481. Les références � PLSEI � des messages SEI des NAL units des couches de priorité sont données en dessous des images du niveau spatial intermédiaire 481. Elles comportent, en première ligne, les identifiants de couches de priorité normalement calculés comme décrit précédemment en regard de la figure 3. Pour chaque image du GOP du niveau spatial intermédiaire, deux autres messages SEI de couches de priorité sont illustrés en figure 4. Le premier, écrit juste en dessous de la référence � PLSEI �, noté � PLSEI_do � représente l'information de niveau de qualité qui est calculé en tenant compte de la commutation descendante entre le GOP précédent au niveau spatial supérieur 482 au GOP courant au niveau spatial intermédiaire 481. Le second, écrit juste en dessous de la référence � PLSEI_do �, noté � PLSEI_up � représente l'information de niveau de qualité qui est calculé en tenant compte de la commutation ascendante entre le GOP précédent au niveau spatial inférieur 480 au GOP courant au niveau spatial intermédiaire 481. L'intérêt de calculer des jeux additionnels de couches de priorité et de les écrire dans le train binaire est que ces informations supplémentaires de couche de priorité peuvent être utilisées par le serveur SVC lorsque le client effectue une commutation de niveau spatial. Le serveur SVC peut alors utiliser les informations de couches de priorité pré-enregistrées qui sont adaptées à la commutation effectuée par le client. A cet effet, le serveur SVC extrait et transmet le sous-flux qui présente les performances débit-distorsion optimales pour la commutation considérée puisque les couches de priorité utilisées sont précisément calculées pour déterminer une configuration de décodage qui est optimale en débit-distorsion pour cette commutation particulière. Les phases réalisées pour calculer les couches de priorité adaptées à la commutation considérée sont décrites ci-dessous. On note que le calcul de couches de priorité est réalisé hors-ligne (� off-line �) par le serveur SVC et que son résultat est conservé dans le train binaire à transmettre. Ainsi, le coût, en termes de traitements, lié au calcul des couches de priorité n'a pas d'impact sur le processus de transmission en temps-réel. Pour chaque chemin de décodage associé à chaque commutation possible (ascendante ou descendante), pour chaque GOP, pour chaque niveau spatial (d'identifiant de niveau spatial dans le flux vidéo � dependency_id �) et pour chaque représentation d'image dans ledit niveau spatial (� dependency unit � qui représente l'ensemble des NAL Units correspondant à une image dans un niveau spatial donné), on remplace l'image I ou P du GOP précédent par sa version décodée dans le niveau spatial de départ ré-échantillonné au niveau spatial d'arrivée (ou � cible �) de la commutation considérée. On réalise le processus d'attribution de couche de priorité classique sur le GOP obtenu. On génère un message SEI additionnel de type � Priority Layer information �, ou information de couche de priorité en français, correspondant à la commutation de niveau spatial considérée vers le niveau spatial courant (481 sur la figure 4). On enregistre chaque information de couche de priorité du côté serveur en distinguant les informations des messages SEI réguliers et les identifiants de couche de priorité nouveaux en générant un message SEI de couche de priorité propriétaire qui signale l'identifiant de couche de priorité adapté à la commutation. Selon les spécifications H.264 / AVC et SVC, de tels messages SEI propriétaires sont ignorés par les décodeurs qui ne les connaissent pas. Puis, lorsque la transmission en temps réel du train binaire SVC ainsi augmenté a lieu dans le serveur, en cas de commutation entre deux niveaux spatiaux, le serveur réalise une extraction optimale au sens débit-distorsion par le biais des messages SEI de couches de priorité enregistrés et correspondant à la commutation considérée. Comme ces couches ont été déterminées en prenant en compte le processus de décodage mis en oeuvre par le client au cours de la commutation considérée, elles donnent nécessairement des performances débit-distorsion supérieures ou égales à celles fournies par les couches de priorité classiques (identifiées par les messages PLSEI de la figure 4) qui ne prennent pas en compte de commutation spatiale. On note que les nouvelles couches de priorité ainsi signalées dans ces messages SEI propriétaires ne sont pas transmises au client. Elles ne servent qu'au niveau du serveur pour déterminer le meilleur jeu de NAL units à transmettre en cas de commutation de niveau spatial. La figure 5 représente un algorithme global de calcul de couches de priorité dans un mode de réalisation particulier du procédé objet de la présente invention. L'objectif de cet algorithme est d'attribuer trois indices différents, pour les couches intermédiaires (et deux, pour couches extrêmes), de couche de priorité optimisée en termes de débit-distorsion à chaque NAL unit du train binaire SVC : - l'indice de couche de priorité standard correspondant au décodage d'un sous-flux SVC sans changement de niveau spatial en cours de décodage, - l'indice de couche de priorité optimisé en termes de débit-distorsion dans le contexte d'une commutation spatiale depuis un niveau spatial inférieur vers le niveau spatial courant et - l'indice de couche de priorité optimisé en termes de débit-distorsion dans le contexte d'une commutation spatiale depuis un niveau spatial supérieur vers le niveau spatial courant. En variante on attribue deux indices différents pour les couches intermédiaires, et un indice pour les couches extrêmes, de couche de priorité optimisée en termes de débit-distorsion à chaque NAL unit du train binaire SVC, dont la couche de priorité standard. Cet algorithme correspond à l'algorithme de calcul de couches de priorité standard de SVC décrit dans l'article de J. Reichel, H. Schwarz, et M. Wien � Joint Scalable Video Model JSVM-11 � ISO/IEC JTC1/SC29/WG11 et ITU-T SG16 Q.6, Genève, Suisse, Juillet 2007, document Joint Video Team JVT-X202, auquel sont ajoutées les déterminations des indices de couche de priorité attribués aux différentes NAL units dans le contexte d'une commutation ascendante ou descendante entre niveaux spatiaux. Les entrées de l'algorithme illustré en figure 5 sont les suivantes: - le train binaire B pour lequel on cherche à calculer les couches de priorité, - le nombre NbDid de niveaux de résolution spatiale contenus dans le train binaire B, - le nombre de niveaux de qualité contenus dans chaque niveau de résolution spatiale du train binaire SVC considéré: {NbQL(d), V d e [0,..., NbDid - 1]}. Selon cet algorithme, on opère une boucle comportant les étapes 510 à 540 sur les niveaux spatiaux d successifs contenus dans le train binaire B. Après une étape 505 d'initialisation du niveau spatial courant d à 0, pour chaque niveau spatial d, on effectue une étape 510 qui consiste à calculer le coût en termes de débit 6R(d, q, t, i) et la baisse de distorsion 6D(d, q, t, i) de chaque NAL unit du train binaire B de niveau spatial d. Ce calcul est identique à celui effectué dans l'algorithme standard d'estimation des couches de priorité SVC décrit dans le document cité dans le paragraphe précédent et est connu de l'homme du métier. En effet, il correspond au calcul de débit et de distorsion pour un décodage d'un sous-flux SVC sans changement de niveau spatial en cours de décodage. Dans les notations ci-dessus, les grandeurs q et t représentent respectivement les niveaux de qualité et temporels auxquels contribue la NAL unit considérée. L'indice i est l'indice de l'image courante dans le niveau spatial, de qualité et temporel considéré. Dans le cas où chaque image est codée en une seule tranche de macrobloc (� slice �), une seule NAL unit contenant des données d'images codée est présente pour chaque combinaison d'indice (d, q, t, i). La suite de l'algorithme consiste à calculer des distorsions associées à chaque NAL unit de niveau spatial d dans le contexte de commutations, ou commutations, entre niveaux spatiaux. Au cours d'une étape 515, on détermine si le niveau spatial d est strictement supérieur à 0. Dans le cas où d est strictement supérieur à 0, une commutation spatiale ascendante, d'un niveau spatial inférieur à d vers le niveau spatial d, est possible puisqu'il existe au moins un niveau spatial inférieur au niveau d. On calcule alors, au cours d'une étape 520, les distorsions liées au décodage des NAL units dans le contexte d'un changement de niveau spatial au niveau du GOP (groupe d'images) dans lequel se trouve la NAL unit considérée. Cette étape 520 est détaillée en regard de la figure 6. Si le résultat de l'étape 515 est négatif, c'est-à-dire si le niveau spatial d est égal à 0, ou à la suite de l'étape 520, au cours d'une étape 525, on détermine si le niveau spatial d est strictement inférieur à sa valeur maximale NbDid-1. Si oui, une commutation descendante, du niveau spatial supérieur à d vers le niveau d, est possible. Au cours d'une étape 530, on calcule les distorsions associées au décodage de chaque NAL unit, dans le cas où une commutation spatiale descendante s'effectuerait au niveau du GOP dans lequel se situe la NAL unit courante. Cette étape 530 est détaillée en regard de la figure 7. Si le résultat de l'étape 525 est négatif ou à la suite de l'étape 530, c'est-à-dire une fois que le débit et les trois types de distorsion associés à chaque NAL units du niveau spatial courant sont obtenus au cours d'une étape 535, on calcule les couches de priorité optimales standards, c'est à dire en considérant un décodage sans changement spatial, puis les couches de priorité dans le cadre de commutations spatiales ascendante et descendante. Cette étape est détaillée en regard de la figure 8. Puis, au cours d'une étape 540, on détermine si le niveau d est strictement inférieur à sa valeur maximale NbDid-1. Si oui, on incrémente le niveau d puis on retourne à l'étape 510. Sinon, l'algorithme illustré en figure 5 prend fin car les couches de priorité on été calculées pour chaque niveau spatial d contenu dans le train binaire SVC B. La figure 6 illustre l'algorithme de calcul de distorsion associée au décodage des NAL units d'un niveau spatial donné d du train binaire B considéré, dans le contexte d'une commutation de niveau spatial ascendante, depuis le niveau spatial d-1, directement inférieur à d, vers le niveau d. Les entrées de l'algorithme sont les suivantes : - le train binaire en cours de traitement B, - le niveau spatial d courant pour lequel l'algorithme de la figure 5 cherche à optimiser les couches de priorité en termes de débit-distorsion et - le nombre de niveaux de qualité contenus dans le train binaire B au niveau de résolution spatial d : NbQL(d). L'algorithme opère une boucle (étapes 610 à 650) sur les niveaux de qualité contenus dans le niveau spatial courant d du train binaire B. Pour chaque niveau de qualité, une boucle (étape 615 à 640) sur les images du train binaire B de niveau spatial d et de niveau de qualité q est parcourue. On note I(d, q, t, i) l'image couramment traitée. Dans la suite, on parle également d'incrément de qualité car la portion de train binaire correspondant à ces paramètres, spatial, de qualité et temporel, constituent des données de raffinement en qualité SVC. Les indices t et i désignent respectivement le niveau temporel de l'image considérée et l'indice de l'image au sein des niveaux, spatial, de qualité, et temporel auxquels elle appartient. Au cours d'une étape 605, on effectue une initialisation du niveau de qualité courant q à la valeur O. Puis, au cours d'une étape 610, on effectue une initialisation de l'image courante I(d,q,t,i) à la première image du sous-flux de paramètres d et q. Au cours d'une étape 615, on détermine si le niveau temporel de l'image courante est égal à O. Si oui, on passe à l'étape 655, au cours de laquelle on décode l'image courante au niveau spatial inférieur. Puis, au cours d'une étape 660, on sur-échantillonne l'image décodée au cours de l'étape 655, de façon à générer une image décodée de résolution spatiale égal à celle du niveau spatial d. Le résultat de ce décodage suivi du sur-échantillonnage est alors stocké dans une image temporaire notée Iref(d, q, t = 0, i) et sera utilisée ultérieurement pour le calcul des distorsions associées aux images du GOP suivant le GOP contenant l'image courante I(d, q, t, i). Au cours d'une étape 665, on remplace l'image de référence de niveau temporel 0 précédent le GOP courant par l'image issue du décodage suivi de sur-échantillonnage spatial effectué sur le GOP précédent: Iref(d, q, t = 0, i - 1). En référence à la figure 4, cette étape revient à remplacer l'image de type P notée S1, QO en figure 4 par l'image du niveau spatial SO de même instant temporel dans sa version décodée et sur-échantillonnée vers le niveau spatial S1. Ainsi, l'image de type 1 ou P qui sert de référence pour la prédiction temporelle des images du GOP courant est modifiée, de façon à simuler le comportement obtenu au décodeur (côté client) lors d'un changement de niveau spatial en cours de décodage de la séquence SVC considérée. On considère ici que les changements de niveaux spatiaux sont toujours effectués au niveau des images de niveau temporel O. Ce changement d'image de référence mis en oeuvre lors d'un changement de niveau spatial a donc un impact sur le décodage de toutes les images du GOP suivant de niveau temporel zéro correspondant à l'instant du changement de niveau spatial. L'objectif de l'algorithme de la figure 6 est précisément de déterminer l'impact de cette commutation spatiale sur la distorsion des images décodées et de fournir les valeurs de distorsion ainsi obtenues au processus d'optimisation des couches de priorité. Une fois le remplacement d'image de référence du GOP courant effectué, on passe a l'étape 620. Si le résultat de l'étape 615 est négatif ou à la suite de l'étape 665, au cours d'une étape 620, on effectue un décodage de l'image courante sans la NAL unit contenant l'incrément de qualité I(d, q, t, i). Au cours d'une étape 625, on effectue un décodage de l'image courante avec la NAL unit contenant l'incrément de qualité I(d, q, t, i). La baisse de distorsion, correspondant à une hausse de qualité, liée 20 au décodage de l'image courante avec l'incrément de qualité I(d, q, t, i) est alors calculée, au cours d'une étape 630, et est notée 6Dup(d, q, t, i). Au cours d'une étape 635, on détermine si l'image I(d,q,t,i) est la dernière image du sous flux de paramètres d et q. Si non, au cours d'une étape 640, on passe à la prochaine image du sous-flux considéré et on retourne à 25 l'étape 615. Si le résultat de l'étape 635 est positif, au cours d'une étape 645, on détermine si q est le dernier niveau de qualité dans le niveau spatial courant d. Si non, on incrémente la valeur de q, au cours d'une étape 650 et on retourne à l'étape 610. Si le résultat de l'étape 645 est positif, l'algorithme s'achève. L'algorithme de la figure 6 prend ainsi fin lorsque tous les niveaux de 30 qualité contenus dans le niveau spatial d du train binaire B ont été traités. La figure 7 illustre le calcul de distorsion dans le contexte d'une commutation spatiale descendante. L'algorithme de la figure 7 est analogue à celui de la figure 6 et vise à calculer les valeurs de distorsion associées aux NAL units du train binaire B, lorsque celles-ci sont décodées dans le cadre d'une commutation descendante, entre deux niveaux spatiaux, survenant en cours de session vidéo. Les mêmes traitements que dans l'algorithme de la figure 6 sont mis en oeuvre, mais sont adaptés au cas d'un changement depuis un niveau spatial supérieur au niveau courant d vers le niveau spatial courant d. Ainsi, les étapes 705 à 725 et 735 à 750 sont respectivement identiques aux étapes 605 à 625 et 635 à 650. Au cours de l'étape 730, la baisse de distorsion, correspondant à une hausse de qualité, liée au décodage de l'image courante avec l'incrément de qualité I(d, q, t, i) est calculée et est notée 6Ddown(d, q, t, i). Si le résultat de l'étape 715 est positif, au cours de l'étape 755, on décode l'image courante au niveau spatial supérieur. Puis, au cours d'une étape 760, on sous-échantillonne l'image décodée au cours de l'étape 755, de façon à générer une image décodée de résolution spatiale égale à celle du niveau spatial d. Le résultat de ce décodage suivi du sous-échantillonnage est alors stocké dans une image temporaire notée Iref(d, q, t = 0, i) et sera utilisée ultérieurement pour le calcul des distorsions associées aux images du GOP suivant le GOP contenant l'image courante I(d, q, t, i). Au cours d'une étape 765, on remplace l'image de référence de niveau temporel 0 précédent le GOP courant par l'image issue du décodage suivi de sous-échantillonnage spatial effectué sur le GOP précédent: Iref(d, q, t=0, i - 1). La figure 8 illustre la détermination des indices de couches de priorité optimales dans un mode de réalisation particulier du procédé objet de la présente invention. Cette figure 8 détaille l'étape de calcul des couches de priorité standards adaptées aux changements de niveaux spatiaux de l'algorithme illustré en figure 5. Les entrées de l'algorithme de la figure 8 sont les suivantes : - le train binaire B en cours de traitement, - le niveau spatial courant d dans lequel on cherche à optimiser les couches de priorité, - le nombre de niveaux de qualité NbQL(d) contenus dans le niveau spatial courant et - le nombre de niveaux temporels dans chaque niveau de qualité du niveau spatial courant : {NbTL(d,q), V q E [0,. , , , NbQL(d) - 1]}. L'algorithme illustré en figure 8 parcourt une boucle (étapes 810 à 840) sur les différents niveaux de qualité contenus dans le niveau spatial courant d. Pour chaque niveau de qualité q, un indice de niveau de scalabilité temporelle t est initialisé au plus haut niveau temporel contenu dans le niveau de qualité q, au cours d'une étape 810 précédée par une étape 805 au cours de laquelle le niveau de qualité courant q est initialisé à la valeur O. A la suite de l'étape 810, au cours d'une étape 815, pour chaque image d'indice i du niveau de scalabilité temporelle maximum dans les niveaux de qualité et spatial courants, on initialise une liste d'incréments de qualité notée LOd,q,t,i. Les incréments de cette liste correspondent à la NAL unit contenant les données codées pour l'image courante dans la couche de scalabilité courante. Trois (ou deux pour les couches extrêmes) incréments constituent cette liste, sont notés I(d,q,t,i), Iup(d,q,t,i) et IdQWn(d,q,t,i), et correspondent respectivement au décodage de la NAL unit considérée sans changement de niveau spatial, avec commutation ascendante de niveau spatial et avec commutation descendante de niveau spatial. Ces trois incréments sont ordonnés dans la liste LOd,q,t,i, en fonction de leur pente débit-distorsion respectives, 6D(d,q,t,i) / 6R(d,q,t,i), 6Dup(d,q,t,i) / 6Rup(d,q,t,i) et 6DdoWn(d,q,t,i) / 6Rdown(d,q,t,i). La suite de l'algorithme, est connue de l'homme du métier et consiste à parcourir tous les niveaux temporels depuis le niveau temporel directement inférieur au plus haut niveau jusqu'au niveau temporel O. Ainsi, au cours d'une étape 820, on passe au niveau temporel juste inférieur, en décrémentant de 1 le niveau temporel courant. Puis, au cours d'une étape 825, on détermine si le niveau temporel est supérieur ou égal à O. Si oui, au cours d'une étape 830, pour chaque image du niveau temporel considéré, on opère une fusion et un tri des listes d'incréments de qualité des images du niveau temporel supérieur et dépendantes de l'image courante, notées LOd,q,ft,fi, de façon à former la liste ordonnée d'incréments de qualité associée à l'image courante: LOd,q,t,i. Cette boucle sur les niveaux temporels du plus élevé vers le plus bas fournit enfin, pour le niveau de qualité couramment traité, une liste d'incréments de qualité fusionnée et ordonnée notée LOd,q,0,0. Puis on retourne à l'étape 820. Si le résultat de l'étape 825 est négatif, au cours d'une étape 835, on détermine si le niveau de qualité q est égal au nombre NbQL(d)-1. Si non, au cours d'une étape 840, on incrémente la valeur du niveau de qualité q et on retourne à l'étape 810. Si le résultat de l'étape 835 est positif, cela signifie qu'une liste d'incréments de qualité fusionnée et ordonnée a été obtenue pour chaque niveau de qualité q contenue dans le niveau spatial d. Au cours d'une étape 845, les listes associées à chaque niveau de qualité sont fusionnées entre elles. Cette étape est également connue de l'homme du métier. Sa réalisation consiste à rassembler et ordonner les différents incréments de qualité des différentes listes par pente débit distorsion décroissante, tout en respectant les dépendances entre images de références et images prédites, imposant de positionner les images de référence devant les images qui en dépendent. La liste unique d'incréments de qualité en résultant est notée LOd,0,0,0. Puis, au cours d'une étape 850, on attribue les indices de couches de priorité aux différentes NAL units de niveau spatial d du train binaire B, de façon standard, c'est à dire en ne considérant que des décodages de sous-flux à niveau spatial constant au cours du décodage. Cette attribution ignore donc la présence dans la liste ordonnée des incréments de qualité de type Iup(d, q, t, i) et Idown (d, q, t, i), qui ne concernent que les cas de commutations spatiales ascendante et descendante. Cette étape 850 d'attribution d'indices de couches de priorité est effectuée de façon identique à la méthode standard mentionnée ci-dessus. Puis, au cours d'une étape 855, on attribue des indices de couches de priorité aux NAL units de niveau spatial d du train binaire B, en prenant en compte le cas où celles-ci seraient décodées lors d'un changement de niveau spatial. Cette étape 855 utilise l'ordonnancement des incréments de qualité correspondant aux commutations spatiales ascendante et descendante, par rapport aux incréments de qualité standards, au sein de la liste LOd,0,0,0 dans laquelle ils cohabitent. Les incréments correspondant à des commutations spatiales se voient attribuer un indice de couche de priorité égal à celui des incréments standards voisins dans la liste commune ordonnée LOd,0,0,0. De cette façon, dans un serveur vidéo SVC, lors d'un changement de niveau spatial en cours d'une session vidéo, les indices de couche de priorité correspondant à la commutation spatiale en cours, et attribués aux NAL units contenues dans le GOP au niveau duquel le changement spatial s'opère, seront pris en compte dans le choix des NAL units à transmettre de façon à fournir la meilleure qualité vidéo possible au client au cours de la commutation spatiale. Par exemple, en référence à la figure 4, si une commutation spatiale descendante, depuis la plus haute couche spatiale vers la couche spatiale intermédiaire survient au niveau du premier GOP illustré en figure 4, les indices de couches de priorité intermédiaires, stockés dans les messages SEI notés "PLSEI do" seront pris en compte par le serveur dans le processus d'extraction de sous-flux SVC à transmettre au client. Enfin, la dernière étape de l'algorithme de la figure 8, étape 860, consiste à stocker les indices de couches de priorité attribués aux NAL units et correspondant aux différentes commutations spatiales, par exemple dans des messages de type SEI spécifiquement définis pour ce besoin. De tels messages de type SEI sont donc non standards et sont uniquement utilisables par un serveur qui connaîtrait ces messages. Cependant ceci ne pose pas de problème d'interopérabilité dans la mesure où ces messages servent uniquement à améliorer le processus d'extraction de sous-flux SVC en cas de commutation spatiale, et ne sont pas transmis aux clients SVC. REVENDICATIONS1. Procédé de transmission de données entre un serveur et un client (100), caractérisé en ce qu'il comporte, réalisées par ledit serveur : - une étape (515, 525) de détermination d'au moins une commutation possible entre deux niveaux de résolution spatiale différents, - une étape (535, 850) de génération d'au moins une couche de priorité adaptée à un niveau de résolution spatiale, en l'absence de commutation, - une étape (520, 530, 535, 855) de génération d'au moins une couche de priorité adaptée à une dite commutation possible, et - lors d'une réception d'une demande de commutation entre un niveau de résolution spatiale initial et un niveau de résolution spatiale cible, de la part du client, une étape de transmission de la couche de priorité adaptée à la commutation demandée. 2. Procédé selon la revendication 1, caractérisé en ce que, au cours de l'étape (520, 530, 535, 855) de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on génère un groupe d'images décodées obtenu lors d'une commutation entre le niveau spatial initial et le niveau spatial cible en ré-échantillonnant (660, 760) la dernière image d'un groupe d'images précédentes pour l'adapter au niveau spatial cible. 3. Procédé selon la revendication 2, caractérisé en ce que, au cours de l'étape (520, 530, 535, 855) de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on décode (655, 755) les images du groupe d'images courant au niveau spatial cible avec, comme image de référence dans la prédiction temporelle, l'image décodée et ré-échantillonnée. 4. Procédé selon la revendication 3, caractérisé en ce que, au cours de l'étape (520, 530, 535, 855) de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on calcule (630, 730), avec les images du groupe d'images courant ainsi décodées, les distorsions liées au décodage d'entités élémentaires du train binaire du groupe d'images courant. 5. Procédé selon la revendication 4, caractérisé en ce que, au cours de l'étape (520, 530, 535, 855) de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on constitue (855) chaque couche de priorité en fonction des ratios des distorsions liées au décodage de chaque entité élémentaire du train binaire du groupe d'images courant par le débit nécessaire pour transmettre ladite entité élémentaire. 6. Procédé selon l'une quelconque des revendications 2 à 5, caractérisé en ce que, au cours de l'étape (520, 530, 535, 855) de génération d'au moins une couche de priorité adaptée à une dite commutation possible, on réalise (855) une optimisation débit-distorsion pour attribuer des indices de couches de priorité, ou niveaux de priorité, à chaque entité élémentaire du groupe d'images courant. 7. Procédé selon la revendication 6, caractérisé en ce que l'étape (520, 530, 535, 855) de génération d'au moins une couche de priorité adaptée à une dite commutation possible comporte une étape (860) de stockage, au cours de laquelle on stocke au moins une couche de priorité définie en fonction desdits indices de couches de priorité. 8. Procédé selon la revendication 7, caractérisé en ce que, au cours de l'étape (860) de stockage, on écrit des messages SEI (acronyme de � Supplemental Enhancement Information �) qui codent et stockent des données utiles pour une extraction et transmission de sous-flux optimaux, lorsque le client ou le réseau provoque une commutation spatiale. 9. Dispositif (100) de transmission de données entre un serveur et un client, caractérisé en ce qu'il comporte, dans un serveur : - un moyen (104, 106, 120) de détermination d'au moins une commutation possible entre deux niveaux de résolution spatiale différents, - un moyen (104, 106, 120) de génération d'au moins une couche de priorité adaptée à un niveau de résolution spatiale, en l'absence de commutation, - un moyen (104, 106, 120) de génération d'au moins une couche de priorité adaptée à une dite commutation possible, et- un moyen (104, 106, 120) de transmission adapté, lors d'une réception d'une demande de commutation entre un niveau de résolution spatiale initial et un niveau de résolution spatiale cible, de la part du client, à transmettre la couche de priorité adaptée à la commutation demandée. 10. Programme d'ordinateur chargeable dans un système informatique (100), ledit programme contenant des instructions permettant la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 8. 11. Support (116, 112) d'informations lisibles par un ordinateur (100) ou un microprocesseur (120), amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 8.