Brevet FR2910218A1 — publié le 20080620

La présente invention concerne la transmission d'un contenu multimédia d'une source vers un ou plusieurs destinataires à travers un réseau non fiable et plus particulièrement des procédés et des dispositifs de resynchronisation lente d'un flux vidéo endommagé permettant une transition douce d'un flux vidéo endommagé à un flux vidéo correct. Les systèmes de transmission d'un contenu multimédia d'une source vers un ou plusieurs destinataires à travers un réseau non fiable sont en général constitués d'un serveur et d'un ou de plusieurs clients. La figure 1 représente de manière schématique un réseau distribué d'échange de données. Un tel réseau comporte un ensemble de terminaux clients et/ou serveurs, chaque terminal étant relié au réseau et ayant des moyens de communication. Le réseau peut être par exemple un réseau sans fil tel qu'un réseau WiFi (802.11 a ou b ou g), un réseau Ethernet ou le réseau Internet. Le serveur 100 est constitué en particulier d'un système d'acquisition ou de stockage de vidéo, d'un encodeur et d'un module réseau. Le client 105 est constitué en particulier d'un décodeur et d'un module réseau. Chaque terminal 100 et 105 comporte de préférence une mémoire de stockage volatile 110 (mémoire cache), un serveur de fichiers 115 et une interface homme-machine 120 qui permet la communication des requêtes de l'utilisateur. Les terminaux peuvent communiquer directement par l'intermédiaire du réseau global 125. L'encodage est généralement basé sur des standards vidéo mettant en oeuvre différent type de compression vidéo. Les méthodes de compression vidéo peuvent se distinguer en deux classes : les méthodes dite Intra ou spatiales qui réduisent la redondance spatiale au sein d'une image et les méthodes dites Inter , ou codage hybride, mélangeant la réduction des redondances spatiales et des redondances temporelles. Un flux vidéo de type Inter, est constitué majoritairement d'images prédites temporellement (images P ou B), mais aussi d'images Intra (images I) indépendantes de toutes autres 2910218 2 images. En termes de compression, les images P et B sont de taille très inférieure aux images I. Elles répondent alors mieux aux contraintes de bandes passantes caractérisant les réseaux. L'insertion d'images I permet d'accroître la résistance aux pertes des paquets et aux erreurs de transmission puisqu'elles 5 coupent les dépendances temporelles. Les phénomènes de propagation d'erreurs sont ainsi réduits. Le module réseau du serveur est chargé de mettre en paquets le flux vidéo et de transmettre ces paquets selon un débit principalement défini par l'état du réseau, les capacités et les désirs du client. Le récepteur reçoit et 10 décode les images successives de la vidéo et les affiche tout en continuant à recevoir les paquets suivants. Une méthode simple pour gérer les erreurs de transmission est de retransmettre les paquets perdus ou erronés. L'algorithme ARQ est un exemple d'une telle méthode. Cependant, les délais impartis par cette méthode sont 15 généralement trop importants pour des applications temps réel telles que la visioconférence. Une autre méthode consiste à introduire de la redondance dans les flux vidéo sous forme de codes correcteurs d'erreurs ou de versions dégradées des données originales. Le système FEC (Forward Error Correction) permet 20 ainsi de corriger des erreurs de transmission. Le problème inhérent à ce genre d'outils réside dans l'ajustement efficace du taux de redondance, suffisant pour corriger les pertes, mais limité pour maximiser la part de données utiles. Pour ces raisons, la plupart des systèmes utilisant un codage Inter, effectue par défaut un rafraîchissement (re-synchronisation) du flux en insérant 25 de façon périodique une image Intra, capable de mettre fin à toute propagation d'erreur éventuelle. Toutefois, les images Intra ayant un coût de codage très supérieur à celui des images Inter, la fréquence de ces images doit être réduite afin de ne pas augmenter exagérément le débit. D'autre part, des mécanismes d'acquittement des paquets peuvent indiquer au serveur la perte d'un paquet et 30 provoquer l'envoi explicite d'une image Intra pour stopper toute propagation d'erreur sur le flux vidéo du client (refresh on demand ou intra refresh). 2910218 3 Les mécanismes de correction d'erreur sont souvent complétés par des méthodes de masquage ou de dissimulation d'erreurs (error concealment), permettant d'interpoler les zones de l'image endommagées par les pertes. Ces méthodes ont l'avantage de ne rien coûter en terme de ressources réseau 5 (volume et délai). Leur mise en oeuvre ne s'appuie en effet que sur les informations et données présentes sur le client. Ces méthodes peuvent être basées sur une interpolation spatiale au sein d'une même image en s'appuyant sur les zones valides de l'image pour reconstruire les données manquantes ou peuvent être basées sur une interpolation temporelle qui utilise les données des 10 images précédentes et le mouvement estimé des blocs pour reconstruire l'image courante. Malgré ces techniques élaborées de résistance aux erreurs, il est aujourd'hui impossible de garantir une qualité parfaite de la vidéo, pour des applications temps réel , sur des réseaux peu fiables. 15 Lors de la transmission d'un flux vidéo à la volée sur un réseau peu fiable, une perte de données peut survenir et endommager la vidéo décodée. Le décodeur peut demander à l'encodeur de lui renvoyer une image future (globalement décalée du temps de transmission) et de préférence codée selon le mode Intra sur les zones endommagées afin de corriger totalement la vidéo 20 endommagée. En fonction de l'importance de la propagation des erreurs, la resynchronisation du flux par cette image Intra peut nuire au confort visuel de l'utilisateur par son caractère discontinu. En effet, il apparaît un saut de qualité entre d'une part la dernière image endommagée (possiblement mal corrigée) et 25 d'autre part l'image Intra qui est elle parfaite. Ce changement brutal souligne encore davantage la baisse de qualité liée à la perte antérieure. Il convient à cet égard de noter que la qualité visuelle d'une vidéo est difficile à évaluer automatiquement car une telle mesure doit répondre à différents critères psycho-visuels difficilement quantifiables. Certaines mesures 30 dites objectives telles que la mesure du PSNR (Peak Signal to Noise Ratio) estimant globalement la différence entre l'image d'origine et l'image reconstruite 2910218 4 sont aujourd'hui l'outil de référence pour estimer la qualité de reconstruction d'une image. Le brevet US6,683,988 décrit une méthode liée au masquage de perte et à la re-synchronisation d'un flux vidéo. En cas d'erreur de transmission 5 sur une image, le décodeur indique la perte au codeur qui va simuler le masquage de perte effectué sur le décodeur. Le masquage de cette perte est donc effectué sur le décodeur et sur le codeur, en utilisant strictement la même méthode, assurant ainsi d'avoir la même image de référence de chaque côté du réseau. Ensuite, cette image corrigée est utilisée comme image de référence au 10 niveau du codage pour les images prédites suivantes. Ainsi, la correction de la perte de données est effectuée automatiquement avec un minimum de coût de codage et de perte de qualité de la vidéo. Bien que le codeur utilise une image endommagée comme image de référence, ce brevet ne prend cependant pas en compte l'effet brutal du 15 rafraîchissement de la vidéo. Le brevet US 6,697,126 décrit une méthode pour améliorer le rendu visuel du masquage de pertes sur une image ou une vidéo endommagée. Cette méthode est indépendante et complémentaire à la méthode de masquage de perte employée. La méthode propose de lisser spatialement la transition entre 20 la zone corrigée et la partie valide de l'image évitant toute apparition de frontières artificielles et éventuellement brutales entre ces deux zones. Cette transition douce ne diminue pas de façon satisfaisante l'impact visuel de la correction effectuée sur la zone endommagée. L'invention permet de résoudre au moins un des problèmes exposés 25 précédemment. L'invention a ainsi pour objet un procédé de dissimulation d'au moins une erreur dans une séquence multimédia transmise à travers un réseau entre un serveur et un client, un acquittement négatif étant transmis dudit client audit serveur à la détection de ladite au moins une erreur, ce procédé étant 30 caractérisé en ce qu'il comprend les étapes suivantes, - création d'un premier flux lié à ladite séquence multimédia ; 2910218 5 - création d'un deuxième flux lié à ladite séquence multimédia, ladite au moins une erreur étant propagée dans ledit deuxième flux ; et, - création d'un troisième flux selon une fonction desdits premier et deuxième flux créés dans laquelle l'influence dudit deuxième flux diminue 5 progressivement avec le temps. Selon un mode de réalisation particulier ladite fonction desdits premier et deuxième flux créés est une moyenne pondérée. L'invention permet ainsi de diminuer l'impact visuel d'une erreur, d'une correction inefficace ou d'une correction partiellement efficace. Elle est 10 donc complémentaire des méthodes de correction et des techniques de masquage de perte dans un flux vidéo. Avantageusement, ladite séquence multimédia est codée selon un codage hybride de réduction des redondances spatiales et temporelles, ledit premier flux étant basé sur des données codées selon des redondances 15 spatiales et ladite au moins une erreur étant propagée dans ledit deuxième flux à travers des données codées selon des redondances temporelles. L'invention concerne donc en particulier la diffusion de vidéo codée en mode prédictif à travers un réseau peu fiable et les systèmes de visiophonie, de visioconférence et de vidéo à la demande pour réduire les effets indésirables 20 de la correction d'erreur et du masquage de pertes, altérant la qualité visuelle de la vidéo, alors qu'elle est censée l'améliorer. L'invention permet ainsi d'éviter la discontinuité temporelle artificielle due à la re-synchronisation brutale du flux vidéo endommagé effectués suite aux pertes de données. Malgré une baisse quantitative globale du PSNR, 25 l'invention permet d'augmenter la qualité visuelle subjective de la vidéo en cas de perte de données. Selon un mode de réalisation particulier, ledit procédé est implémenté dans ledit serveur, ledit précédé comprenant en outre une étape de réception d'informations de localisation de ladite au moins une erreur. Le 30 procédé comprend en outre avantageusement une étape de propagation de ladite au moins une erreur selon lesdites informations de localisation reçues. 2910218 6 L'invention peut être implémentée simplement au niveau de l'encodeur, sans modifier le décodeur. Toujours selon un mode de réalisation particulier, la création dudit deuxième flux est basée sur des données de référence, lesdites données de 5 référence étant déterminées selon ladite étape de propagation de ladite au moins une erreur. Avantageusement, le procédé comprend en outre des étapes de codage et de transmission dudit troisième flux. Selon un mode de réalisation particulier, le codage dudit troisième 10 flux est basé sur des données de référence et sur le résultat de ladite fonction desdits premier et deuxième flux, lesdites données de référence étant déterminées selon ladite étape de propagation de ladite au moins une erreur. Alternativement, ledit procédé est implémenté dans ledit client, ledit procédé comprenant en outre une étape de réception de données de resynchronisation formées à partir de ladite séquence multimédia. L'invention peut ainsi être implémentée au niveau du décodeur en ne modifiant que simplement l'encodeur. Avantageusement, lesdites données de re-synchronisation sont utilisées pour créer ledit premier flux. 20 Selon un mode de réalisation particulier, le procédé comprend en outre une étape de réception de données pour propager ladite au moins une erreur. Toujours selon un mode de réalisation particulier, des données de référence sont utilisées pour déterminer les données dudit deuxième flux à un 25 instant donné, lesdites données de référence étant les données dudit troisième flux à l'instant précédent. Avantageusement, le procédé comprend en outre une étape de masquage de ladite au moins une erreur dans ledit deuxième flux. L'invention peut ainsi être utilisée avec toute méthode de masquage 30 de perte, sans dégrader la qualité et l'efficacité du module de masquage de perte. L'invention rend ainsi rend plus naturelle et invisible les effets et défauts ou manques éventuels du masquage d'erreur. 2910218 7 Selon un mode de réalisation particulier, ladite séquence multimédia comprend une séquence vidéo, une séquence audio ou une séquence audiovidéo. L'invention a également pour objet un programme d'ordinateur 5 comprenant des instructions adaptées à la mise en oeuvre de chacune des étapes du procédé décrit précédemment. L'invention a également pour objet un moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un 10 programme d'ordinateur pour l'exécution de chacune des étapes du procédé décrit précédemment. L'invention a aussi pour objet un dispositif de dissimulation d'au moins une erreur dans une séquence multimédia transmise à travers un réseau entre un serveur et un client, un acquittement négatif étant transmis dudit client 15 audit serveur à la détection de ladite au moins une erreur, ce dispositif étant caractérisé en ce qu'il comprend les moyens suivants, - des moyens pour générer un premier flux lié à ladite séquence multimédia ; - des moyens pour générer un deuxième flux lié à ladite séquence 20 multimédia, ladite au moins une erreur étant propagée dans ledit deuxième flux ; et, - des moyens pour générer un troisième flux selon une fonction desdits premier et deuxième flux créés dans laquelle l'influence dudit deuxième flux diminue progressivement avec le temps. 25 L'invention permet ainsi de diminuer l'impact visuel d'une erreur, d'une correction inefficace ou d'une correction partiellement efficace. Elle est donc complémentaire des méthodes de correction et des techniques de masquage de perte dans un flux vidéo. Avantageusement, lesdits moyens pour générer ledit premier flux 30 comprennent un encodeur. De même, de façon avantageuse, lesdits moyens pour générer ledit deuxième flux comprennent un décodeur. 2910218 8 Selon un mode de réalisation particulier, le dispositif comprend en outre des moyens de codage adaptés à coder ledit troisième flux. L'invention a également pour objet un serveur comprenant le dispositif décrit précédemment. 5 Selon un mode de réalisation particulier, lesdits moyens pour générer ledit premier flux comprennent un décodeur. Toujours selon un mode de réalisation particulier, le dispositif comprend des moyens pour recevoir en parallèle deux flux distincts. D'autres avantages, buts et caractéristiques de la présente invention 10 ressortent de la description détaillée qui suit, faite à titre d'exemple non limitatif, au regard des dessins annexés dans lesquels : - la figure 1 représente schématiquement un réseau distribué dans lequel un serveur peut transmettre un contenu multimédia à un client ; - la figure 2 montre un exemple d'appareil permettant d'implémenter 15 au moins partiellement l'invention ; - la figure 3 décrit le principe d'un exemple du processus de resynchronisation lente, selon un diagramme temporel, d'un flux vidéo ayant subit une erreur de transmission ; - la figure 4 présente une réalisation matérielle possible du 20 diagramme temporelle décrit par référence à la figure précédente ; - la figure 5, comprenant les figures 5a et 5b, illustre les algorithmes implémentés dans l'encodeur et dans le décodeur de la figure 4 ; - la figure 6 décrit schématiquement la fonction PropagePerte(k,t) utilisée dans la figure 4 permettant le calcul de l'image courante endommagée 25 servant de référence au décodeur. - la figure 7 illustre un exemple de la phase de re-synchronisation lente effectuée sur le décodeur ; et, - la figure 8 illustre le schéma d'un système de décodage adapté à mettre en oeuvre l'algorithme décrit par référence à la figure 7 selon lequel une 30 image courante intermédiaire est calculée à partir de l'image correcte et de l'image endommagée simulée. 2910218 9 Les procédés et les dispositifs selon l'invention ont pour objet d'effectuer un fondu progressif de la vidéo endommagée vers la vidéo resynchronisée. Le fondu progressif peut être implémenté au niveau du décodeur ou de l'encodeur. 5 De façon schématique, la solution décrite nécessite la création et la gestion de deux flux vidéo parallèles sur une période donnée de transition : • le flux re-synchronisé et donc valide qui débute avec l'image Infra reçue ; et, • le flux endommagé sur lequel les erreurs sont propagées au-delà 10 de l'instant auquel l'image Infra est reçue, comme si cette dernière n'était pas encore arrivée. Le flux endommagé correspond au flux réel résultant du traitement du client si le mécanisme de fondu progressif est mis en oeuvre par le client et à un flux simulé si le fondu progressif est mis en oeuvre par le serveur. 15 Le flux obtenu par le fondu progressif entre le flux re-synchronisé et le flux endommagé correspond au flux affiché si le mécanisme de fondu progressif est mis en oeuvre par le client et au flux encodé si le mécanisme de fondu progressif est mis en oeuvre par le serveur. Le flux obtenu permet de passer de façon douce du flux endommagé vers le flux valide, masquant 20 davantage le traitement correctif effectué. Il convient de noter que la mise en oeuvre d'un mécanisme de masquage de pertes est optionnelle, bien que complémentaire du fondu progressif. Lorsque le fondu progressif est mis en oeuvre par le serveur, c'est-à- 25 dire par l'encodeur, il est nécessaire, à la réception d'un acquittement négatif, de simuler le masquage de perte effectué par le décodeur, ainsi que la propagation des erreurs jusqu'à l'image courante, puis d'encoder les images intermédiaires du fondu en recalculant l'image de référence du décodeur prenant en compte les fondus successifs. Une fois effectué l'envoi 30 d'acquittement négatif renseigné du paquet erroné, indiquant en particulier les zones perdues de l'image, le décodeur ne fait aucune action particulière, le flux 2910218 10 reçu contenant intrinsèquement la re-synchronisation douce. Cette solution n'implique donc que la modification de l'encodeur. Lorsque le fondu progressif est mis en oeuvre par le client, c'est-à-dire par le décodeur, il est nécessaire de disposer, au début de la re- 5 synchronisation, d'une image Infra pour re-synchroniser effectivement le flux et d'une image Inter pour permettre la propagation des erreurs et simuler le flux endommagé sur la période de transition. Une interpolation de cette image par le décodeur est éventuellement possible par des techniques de masquage de perte mais risquée en cas de mouvements complexes. Cette solution présente 10 cependant l'intérêt de ne modifier que le décodeur. Pour obtenir une meilleure qualité de flux progressif, il est préférable d'indiquer à l'encodeur de dupliquer l'image de re-synchronisation par l'envoi d'une image I et d'une image P que le décodeur saura identifier et traiter séparément. Aussi, une telle solution nécessite également une modification de l'encodeur. 15 Un appareil mettant en oeuvre l'invention ou une partie de l'invention est illustré sur la figure 2. L'appareil 200 est par exemple un micro-ordinateur, une station de travail, un assistant numérique, un téléphone portable, un caméscope numérique, un appareil photo numérique, une caméra de vidéo surveillance (Webcam), un lecteur DVD ou un serveur multimédia. Si cet 20 appareil n'intègre pas directement un capteur numérique d'images, il peut optionnellement être connecté à différents périphériques tels que, par exemple une caméra numérique 201 (ou un convertisseur analogique numérique ou tout autre moyen de capture de vidéo) reliée à une carte graphique et fournissant à l'appareil des données multimédia. 25 L'appareil 200 comporte un bus de communication 202 auquel sont reliés : - une unité centrale de traitement ou microprocesseur 203 (CPU, Central Processing Unit) ; - une mémoire morte 204 (ROM, Read Only Memory) pouvant 30 comporter les programmes "Prog", "Progl" et "Prog2" ; - une mémoire vive ou mémoire cache 206 (RAM, Random Access Memory) comportant des registres adaptés à enregistrer des variables et 2910218 11 paramètres créés et modifiés au cours de l'exécution des programmes précités ; et, - une interface de communication 218 reliée à un réseau de communication distribué 220, par exemple le réseau Internet, l'interface étant 5 apte à transmettre et à recevoir des données. Optionnellement, l'appareil 200 peut également disposer : - d'un écran 208 permettant de visualiser des données et/ou de servir d'interface graphique avec l'utilisateur qui pourra interagir avec les programmes selon l'invention, à l'aide d'un clavier 210 ou de tout autre moyen 10 tel qu'un dispositif de pointage, comme par exemple une souris 211 ou un crayon optique, un écran tactile ou une télécommande ; - d'une carte d'entrée/sortie (non représentée) reliée à un microphone 222 dans le cas, par exemple, de données audio ; - d'un disque dur 212 pouvant comporter les programmes "Prog", 15 "Prog1" et "Prog2" précités et des données traitées ou à traiter selon l'invention ; - d'un lecteur de disquette 214 adapté à recevoir une disquette 216 et à y lire ou à y écrire des données traitées ou à traiter selon l'invention ; et, - d'un lecteur de cartes mémoires adapté à y lire ou à y écrire des 20 données traitées ou à traiter selon l'invention. Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans l'appareil 200 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du 25 l'appareil 200 directement ou par l'intermédiaire d'un autre élément du l'appareil 200. Le code exécutable de chaque programme permettant à l'appareil programmable de mettre en oeuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur 212 ou en mémoire morte 204. 30 Selon une variante, la disquette 216 peut contenir des données ainsi que le code exécutable des programmes précités qui, une fois lu par l'appareil 200, sera stocké dans le disque dur 212. 2910218 12 En seconde variante, le code exécutable des programmes pourra être reçu par l'intermédiaire du réseau de communication 220, via l'interface 218, pour être stocké de façon identique à celle décrite précédemment. Les disquettes peuvent être remplacées par tout support 5 d'information tel que, par exemple, un disque compact (CD-ROM) ou une carte mémoire. De manière générale, les disquettes peuvent être remplacées par des moyens de stockage d'information, lisibles par un ordinateur ou par un microprocesseur, intégrés ou non à l'appareil, éventuellement amovibles, et adaptés à mémoriser un ou plusieurs programmes dont l'exécution permet la 10 mise en oeuvre du procédé selon l'invention. De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage de l'appareil 200 avant d'être exécutés. L'unité centrale 203 va commander et diriger l'exécution des 15 instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 212 ou dans la mémoire morte 204 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 212 ou la mémoire morte 204, 20 sont transférés dans la mémoire vive 206 qui contient alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en oeuvre de l'invention. Il convient de noter que l'appareil de communication comportant le 25 dispositif selon l'invention peut également être un appareil programmé. Cet appareil contient alors le code du ou des programmes informatiques par exemple figé dans un circuit intégré à application spécifique (ASIC). La figure 3 décrit le principe d'un premier exemple du processus de re-synchronisation lente, selon un diagramme temporel, d'un flux vidéo ayant 30 subit une erreur de transmission. Les termes de re-synchronisation lente et de transition douce signifient que le flux vidéo présenté au client converge progressivement vers une séquence ayant une qualité optimale après une re-2910218 13 synchonisation par une image INTRA. Le processus décrit par référence à la figure 3 est le processus de re-synchronisation lente mis en oeuvre dans l'encodeur, c'est-à-dire par le serveur. La référence 300 désigne les échanges de données dans le temps 5 entre le serveur et le client. L'échelle de temps 305 indique l'instant auquel le serveur transmet ou reçoit des données tandis que l'échelle de temps 310 indique l'instant auquel le client transmet ou reçoit des données. Par exemple à l'instant k, le serveur transmet (référence 315) l'image P(k) qui est reçue par le serveur à l'instant k'. 10 Le serveur envoie ainsi des paquets vidéo au client qui les réceptionne, les stocke et les décode au fur et à mesure de leur réception. Lors de la détection d'une erreur de transmission, par exemple sur l'image P(k), le client retourne (référence 320) un message NACK(k) (Negative ACKnowledgment) au serveur pour lui indiquer qu'il a perdu des données de 15 l'image k. Pendant ce temps, le serveur a continué d'envoyer des paquets correspondant à des images Intra I ou à des images Inter P. Dans cet exemple, le serveur a transmis les images Inter P(k+1) à P(k+10) avant de recevoir l'information selon laquelle le client a détecté une erreur sur l'image Inter P(k). A la réception du NACK(k) (temps t=k+10 sur la figure 3), l'encodeur 20 du serveur évalue le besoin d'envoyer une image Intra de re-synchronisation. L'envoi d'une image Intra n'est pas systématique. Par exemple, il n'envoi pas d'image Intra s'il a émis entre-temps une autre image Intra, selon le cycle normal, qui a déjà effectuée la re-synchronisation. De même, lorsque le serveur peut simuler le masquage de perte effectué sur le client et qu'il considère que 25 celui est efficace, il peut décider qu'il est inutile d'effectuer une re- synchronisation. Pour les besoins de la description, il est supposé par la suite que le serveur décide de rafraîchir le flux pour stopper toute propagation d'erreur. Pour les mêmes raisons, il est également admis que l'encodeur est capable de 30 simuler l'image de référence du décodeur en fonction des pertes déclarées par les NACK(i) reçues, et donc de simuler ensuite la propagation des erreurs sur les images suivantes. 2910218 14 Contrairement au processus standard, l'encodeur n'envoie pas directement une image de re-synchronisation brutale Intra (t+1). L'encodeur simule le masquage de perte à l'instant k et calcule la propagation des erreurs jusqu'à l'instant courant t. Il dispose ainsi de l'image de référence endommagée 5 du décodeur au temps t. Puis, sur une période de N encodages d'images déterminant la durée de la transition douce, par exemple N=5, l'encodeur effectue les opérations suivantes : - construction de l'image de référence de l'encodeur Ît (vidéo 10 réelle) ; - construction de l'image de référence du décodeur 7 (vidéoendommagée) avec simulation de la propagation des erreurs ; - calcul d'une image pondérée I; entre 7; et 7;*, par exemple selon la formule I := N -17+ N-a Îl effectuant un fondu linéaire entre les deux flux ; t 15 -encodage de I; en 1, en prenant pour référence l'image Î; ; et, - envoi au client de l'image Inter prédictive P'(t) correspondant à cette image Î' , . A l'issue de l'émission de ces (N-1) images intermédiaires et si aucune autre erreur n'est intervenue, le décodeur est complètement resynchronisé avec l'encodeur qui poursuit normalement son encodage en images Inter P(i) avec l'image de référence Î; . La référence 350 désigne la variation du PSNR (Peak Signal to Noise Ratio) dans le temps, c'est-à-dire la variation d'une quantification de l'erreur introduite dans l'image visualisée par le client. La courbe 355 25 représente le PSNR de la vidéo avant codage et transmission, c'est-à-dire le PSNR du flux vidéo ne comprenant aucune erreur. La courbe 360 désigne le PSNR du flux vidéo encodé et transmis au client. A l'instant k', lors de la réception de l'image Inter P(k) comprenant une erreur, le PSNR baisse brutalement. Du fait de la propagation de l'erreur, le PSNR continu à chuter 30 jusqu'au moment où le serveur reçoit le NACK et transmet une image corrigée. 2910218 15 A cet instant, le PSNR n'est pas brutalement corrigé mais est progressivement augmenté. La figure 4 présente une réalisation matérielle possible pour obtenir le diagramme temporelle décrit par référence à la figure 3. Le schéma prédictif 5 de l'encodeur présenté sur cette figure illustre le calcul de l'image courante intermédiaire entre l'image correcte et l'image endommagée simulée. Selon l'invention, une image intermédiaire est calculée à partir du flux correct et du flux endommagé simulé par l'encodeur. Cette image intermédiaire est toujours encodée par rapport à l'image de référence du 10 décodeur. La partie marquée en trait continu représente la boucle principale d'encodage des images d'entrée (valides) Ir et comprend un module d'encodage noté ENC_DEC (décrit par référence à la figure 5a). L'encodeur fournit l'image reconstruite Î, . La partie marquée en trait pointillé représente le 15 processus d'initialisation, sur signalement de perte, de l'encodeur pour la resynchronisation lente. Cette partie utilise une procédure de propagation de l'erreur comprenant la fonction PropagePertes qui reconstruit l'image de référence endommagée du décodeur à l'instant courant de l'encodeur. La partie marquée en trait fin continu représente la boucle d'encodage des images 20 intermédiaires Il pour la re-synchronisation lente du décodeur. II utilise un décodeur DEC référencé DEC* (décrit par référence à la figure 5b) pour simuler la propagation des erreurs Î, au-delà du temps courant, et d'un encodeur ENC_DEC référencé ENC_DEC' pour l'encodage des images Ir de resynchronisation lente. 25 L'image intermédiaire I; entre 7* et Î~ peut être calculée simplement selon, par exemple, la relation I; := N 2 + a 7 où i est l'indice de fondu qui peut être défini de la façon suivante, - i est égal à zéro lorsque aucun fondu n'est en cours (l'image I; est alors identique à l'image Î, ) ; 2910218 16 - i est initialisé à la valeur N-1 en début de re-synchronisation ; - si i est strictement supérieur à zéro, l'indice de fondu i est décrémenté au fur et à mesure de la re-synchronisation lente et finit à la valeur zéro en fin de re-synchronisation lente (en début de synchronisation I; 7t` et 5 en fin de synchronisation Il = 7.) ; et, - i est forcé à la valeur zéro en début de séquence ou de GOP (Group Of Pictures). Lors de l'étape d'initialisation 401 la variable t représentant le numéro de l'image courante est initialisée à la valeur to. 10 Dans la boucle d'encodage principale, le périphérique de stockage 402 (ou alternativement un périphérique d'acquisition vidéo) fournit l'image I,. . Un test 403 est alors effectué pour déterminer si l'image Ir est une image Intra de début de séquence (ou de début de GOP). Si l'image I, est une image Intra de début de séquence, l'indice de 15 fondu i est initialisé ou réinitialisé à la valeur zéro (étape 404) pour arrêter toute re-synchronisation en cours. Si l'image I, n'est pas une image Intra de début de séquence, un deuxième test est effectué pour déterminer si l'indice de fondu i est strictement supérieur à zéro (étape 405). Si l'indice de fondu i n'est pas strictement 20 supérieur à zéro, l'indice de fondu i est décrémenté de un (étape 406). Si l'indice de fondu i a été initialisé ou réinitialisé à la valeur zéro ou s'il n'est pas strictement supérieur à zéro, l'image de référence du décodeur 77 est réinitialisée selon l'image précédemment calculée (référence 410). Ensuite, à l'étape 408, l'encodeur ENC_DEC fournit en sortie 25 principale (référence 409) les données de vecteurs mouvements et les valeurs résiduelles pour une image Inter P ou une image compressée spatialement pour une image Intra I et en sortie secondaire (référence 710) l'image reconstruite Tt. L'encodeur ENC_DEC met à jour sa propre image de référence. 2910218 17 Le module de décodage DEC* réceptionne les images encodées et simule la propagation des pertes (étape 411) si une re-synchronisation est en cours car son image de référence (référence 724) est initialisée à la valeur de l'image endommagée. Lorsque qu'aucune erreur n'est survenue, le décodeur 5 DEC* dispose de la même image de référence que l'encodeur ENC_DEC. Il convient de noter que le décodeur DEC* continu de dériver jusqu'à la prochaine image Intra sans erreur ou jusqu'à la prochaine initialisation (image de référence 424). L'indice de fondu i étant égal à zéro, une image Î: fausse issue du décodeur DEC* n'a aucune conséquence sur l'image I; transmise. 10 A l'étape 412, l'image intermédiaire (référence 413) entre le flux vidéo correct (référence 410) et le flux vidéo endommagé (référence 411), pondérés par l'indice du fondu i, est calculée. L'encodeur ENC-DEC' encode ensuite (étape 415) l'image intermédiaire Ii (référence 413) avec l'image de référence Iref (référence 414). 15 L'image I; encodée (référence 416) est transformée en paquets de données qui sont transmis (étape 417) au transmetteur 418 qui envoie les paquets au client. Si aucune erreur NACK(k) n'est signalée par le client (étape 419), le numéro d'image courante est incrémenté (étape 420) et les étapes précédentes 20 sont répétées comme illustré. Si au contraire une erreur NACK(k) est signalée par le client (étape 419), l'indice de fondu i est initialisé à la valeur N et le masquage de perte au temps k est simulé avec les informations de pertes InfosPertes (référence 422) reçues. La propagation des erreurs est poursuivie jusqu'au temps t 25 courant afin d'obtenir l'image de référence de la vidéo endommagée I: (référence 423) à l'étape 421. Cette image I: est recopiée comme images de référence du décodeur DEC* (référence 424) et de l'encodeur ENC_DEC' (référence 414). Le numéro d'image courante est ensuite incrémenté (étape 420) et les étapes précédentes sont répétées comme illustré. 30 La figure 5, comprenant les figures 5a et 5b, illustre les algorithmes implémentés dans l'encodeur et dans le décodeur, respectivement. 2910218 18 La figure 5a décrit plus précisément la structure et l'enchaînement des opérations effectuées par l'encodeur ENC_DEC au temps t pour délivrer une image Intra, c'est-à-dire une image directement compressée spatialement, ou une image Inter, c'est-à-dire une image des erreurs de prédiction résiduelles 5 quantifiées E' , avec ses vecteurs mouvements MVt associés, à partir de l'image originale I, à encoder et de l'image de référence Iref , c'est-à-dire l'image précédente Ît_, telle que reconstruite par le décodeur. Par extension et pour simplifier le schéma et la description associée, les traitements sont décrits pour une image entière bien qu'ils soient en fait 10 généralement appliqués à chaque macrobloc MB de l'image d'entrée. Les notations sont également simplifiées aux images entières bien qu'elles devraient faire référence aux macroblocs des images. Ainsi par exemple, les traitements DCT (Discrete Cosine Transform) et l'estimation et la compensation de mouvement exprimés sur l'image I, sont en fait effectués sur chaque 15 macrobloc MB composant l'image I, . De plus, seuls l'encodage et le décodage d'images I et P sont considérés (selon un mode préféré de l'invention, les images B ne sont pas utilisées). L'encodeur ENC_DEC est capable de simuler un masquage de perte et sa dérive (drift). 20 A l'instant t, l'image (ou plus précisément le macrobloc) à encoder It est transmise à l'entrée 501 de l'encodeur qui dispose en interne de l'image de référence Iref du décodeur, soit généralement l'image précédente (t-1) reconstruite Î;_, ou éventuellement initialisée par l'entrée Ire (501") de l'encodeur. Lorsqu'une perte de données du décodeur du client est simulée sur 25 le serveur, les données InfosPertes , récupérées via la voie de retour, sont disponibles sur l'entrée 501'. Le module d'estimation de mouvement identifie pour chaque macrobloc MB de l'image I,. , par un algorithme standard de Block Matching , une zone de même taille de l'image de référence Ire qui lui est la plus 2910218 19 ressemblante. Le module d'estimation de mouvement en déduit les vecteurs de mouvement MVt qui minimisent l'erreur de prédiction (étape 502). Le module de compensation de mouvement calcule ensuite à partir de l'image de référence I,r et des vecteurs mouvements MVt calculés à l'étape 5 502 l'image compensée (ou prédite) Î . Lorsque des données sont perdues, le module de masquage de perte temporel tente de réparer les zones endommagées ou perdues de l'image prédite Î, à partir des informations de pertes InfosPertes fournies en paramètres. Le module de masquage de perte temporel construit une image 10 corrigée Î, étape 504). Si aucune perte n'est signalée, Î, est identique à Î. . L'image des erreurs résiduelles brutes de compensation est calculée selon la relation E1 -1, û Î7 (étape 505). Les vecteurs de mouvement MVt sont utilisés pour encoder l'image Et. Pour l'encodage d'une image Infra, les vecteurs sont nuls et Ît est forcée à zéro, ce qui provoque une simple 15 compression spatiale de l'image It . Avant d'être transmise à la couche réseau, l'image des erreurs Er est compressée par une transformée DCT puis quantifiée pour minimiser la taille des données à transmettre (étape 506). Cette compression dégrade l'image des erreurs Et en une image des erreurs quantifiéesE/ . Eg est l'image 20 finale des erreurs résiduelles de prédiction. Cette image finale est transmise, avec les vecteurs de mouvement MVt, après un codage entropique VLC (Variable-Length Code) et une transformation sous forme de paquets de données (référence 512). Dans un souci de clarté, les modules de codage et de décodage entropique, connus, ne sont pas représentés. 25 Pour disposer de l'image des erreurs effectivement reconstruite par le décodeur afin de calculer l'image courante Î, reconstruite par le décodeur, constituant la prochaine image de référence, il est nécessaire d'effectuer la transformée inverse, c'est-à-dire la quantification inverse et la transformée DCT inverse (étape 507). 2910218 20 La nouvelle image de référence est calculée comme la reconstruction de l'image en cours selon la relation 7, = Ît + E, où 'te est l'image compensée et éventuellement corrigée de l'ancienne image de référence avec les vecteurs mouvements virtuellement transmis (étapes 503 et 5 504) et É, est l'image décompressée des erreurs résiduelles transmises (étape 507). Si l'image encodée est une image Intra, l'image prédite 'te étant nulle, l'image 7, correspond à l'image décompressée E, (étape 507). Si des données ont été perdues, le module de masquage de perte spatial interpole spatialement les dernières zones endommagées issues de la 10 reconstruction de l'image 7, à l'étape 508 (étape 510). Comme illustré, l'image 7, est disponible à la sortie de l'encodeur ENC_DEC et elle est stockée comme nouvelle image de référence I,.ef (étape 511). Le résidu et les vecteurs mouvement MVt sont fournis en sortie principale de l'encodeur ENC_DEC pour être transmis au module de création 15 des paquets de données. Le schéma de la figure 5a est également valide pour l'encodage d'images Intra, la principale différence étant que l'estimation de mouvement n'est pas faite (les vecteurs MVt sont nuls), et que le résidu E, est forcé à 0. La figure 5b décrit plus précisément la structure et l'enchaînement 20 des opérations effectuées par le décodeur DEC au temps t pour délivrer une image 7, à partir de l'image des erreurs résiduelles quantifiées E9 et des vecteurs mouvements MVt associés, ainsi que de l'image de référence Ire, correspondant généralement à l'image précédente décodée. Le décodeur DEC dispose ici des mêmes modules de masquage de perte temporel et spatial que 25 l'encodeur. A l'instant t, le décodeur DEC réceptionne les données de l'image à décoder (Eq, MVt) sur l'entrée 521 et en extrait l'image des résidus E9 et les vecteurs mouvements MVt pour une image Inter (P) ou une image compressée E9 pour une image Intra (I). Les informations de pertes sont disponibles à 2910218 21 l'entrée 521' du décodeur DEC. Le décodeur DEC dispose également de l'image de référence Iref , généralement l'image précédemment reconstruite (t- 1) ou éventuellement initialisée par l'entrée Iref 521" du décodeur DEC. Le module de compensation de mouvement calcule ensuite l'image 5 compensée (ou prédite) Îf à partir de l'image de référence Ire et des vecteurs mouvements MVt, (étape 522). Si des données ont été perdues, le module de masquage de perte temporel tente de réparer les zones endommagées ou perdues de l'image prédite Î~ à partir des informations de pertes InfosPertes reçues (étape 10 523). L'image corrigée est l'image Î, c. Si aucune donnée n'a été perdue, l'image Î~ est identique à l'image Ît . Parallèlement aux étapes 522 et 523, l'image des erreurs E7 est décompressée par une quantification inverse suivie d'une transformée DCT inverse (étape 524) pour reconstruire l'image des erreurs -4 (ou l'image 15 complète si l'image à décoder est une image Intra). L'image finale 7 est alors reconstruite (étape 525) par sommation de l'image des résidus -4 issue de l'étape 524 avec l'image compensée Î7 issue de l'étape 523. Si l'image à décoder est une image Intra, l'image compensée Î~ est forcée à zéro. 20 S'il subsiste des erreurs (dommages résiduels), le module de masquage de perte spatial interpole spatialement les dernières zones endommagées issues de la reconstruction de l'image Î, à l'étape 525 (étape 526). L'image 7. , corrigée à l'étape 526 si nécessaire, est disponible en sortie du décodeur DEC, par exemple pour un périphérique de stockage ou pour être 25 affichée. L'image 7, est de préférence stockée comme nouvelle image de référence Ire L'encodeur ENC DEC et le décodeur DEC ont chacun une entrée I1ef qui permet si besoin d'initialiser leur image de référence. Bien que cette 2910218 22 possibilité ne soit pas toujours disponible en réalité, il doit être considéré que celle-ci n'est pas indispensable. En effet, il est évident pour l'homme de l'art d'initialiser une image comme image de référence en l'encodant et/ou en la décodant avant le traitement de la séquence vidéo souhaitée. Le fait de 5 décoder ou d'encoder une image place automatiquement celle-ci comme image de référence de l'encodeur ou du décodeur. La figure 6 décrit schématiquement la fonction PropagePerte(k,t) utilisée dans la figure 4 permettant le calcul de l'image courante endommagée Î, servant de référence au décodeur au temps t. L'image courante 10 endommagée Î, est obtenue par la simulation du masquage de perte Îk puis par la propagation des erreurs depuis l'image k. Le calcul de l'image courante endommagée 7 est effectué en deux étapes : le calcul du masquage de pertes au temps k (illustré avec des traits pointillés) et le calcul de la propagation des erreurs de k+1 à t (illustré avec des 15 traits continus). II est ici rappelé que la présence d'un module de masquage de pertes est optionnelle. En ce qui concerne le calcul du masquage de pertes au temps k, il est supposé que l'encodeur dispose d'un module de masquage de perte identique à celui du décodeur. Le signal d'acquittement négatif NACK(i) contient 20 ici au minimum le numéro du paquet perdu, et éventuellement d'autres informations telles que par exemple les paramètres du masquage de perte effectué par le décodeur pour cette perte. L'encodeur est capable de gérer la localisation des images envoyées et donc de connaître les zones endommagées par la perte d'un paquet non acquitté. L'encodeur est ainsi 25 capable de simuler la correction effectuée par le décodeur au temps k. Pour réaliser le masquage de perte et ainsi reconstruire l'image endommagée Îk à l'instant k (étape 601), l'encodeur doit disposer de l'image (Eq, MVt) reçue avec les informations précises des pertes subies (InfosPertes) fournies lors de l'acquittement négatif NACK(k) et de l'image de référence Îk_, 30 présente dans le décodeur au moment du masquage. 2910218 23 En parallèle, l'encodeur reconstruit l'image Îk (étape 602), servant de référence pour l'encodeur ENC_DEC à l'étape suivante. Pour calculer la propagation des erreurs de l'instant k+1 à l'instant t, l'encodeur simule la propagation des erreurs dues aux défauts du masquage de 5 pertes sur l'image k. A cette fin, la fonction PropagePerte(k,t) dispose d'un encodeur-décodeur classique tel que décrit précédemment (ENC_DEC), des images correctes de la vidéo (en particulier des instants k+1 à t), et d'un décodeur classique tel que décrit précédemment (DEC*) pour simuler les dérives 10 survenues sur le décodeur du client sur les images Inter P(k+1) à P(t). Une boucle est mise en oeuvre pour déterminer l'image comportant l'erreur cumulée à chaque instant, entre les instants k+1 et t. Cette boucle est initialisée en initialisant la variable T. à la valeur k+1 (i :=k+1) pour charger en mémoire l'image k+1. L'image de référence du décodeur ENC_DEC est 15 initialisé avec l'image 7k précédemment encodée. L'image de référence du décodeur DEC* est initialisé avec l'image Îk précédemment calculée par le module de masquage de perte. Pour chaque image 'r, l'encodeur ENC_DEC encode l'image Inter P de l'image correspondant à l'instant 'r et rafraîchit sa référence normalement par 20 l'image reconstruite (étape 603). Le décodeur DEC* récupère l'image Inter P (ET', MVT) qu'il décode avec l'image de référence endommagée Îz*, (étape 604). L'image de sortie de DEC* 7 est l'image endommagée dans laquelle les erreurs antérieures ont été propagées. Cette image devient la nouvelle référence du décodeur DEC* pour poursuivre la propagation sur les images 25 suivantes. Un test est effectué (étape 605) sur le numéro de l'image traitée pour permettre de sortir de la boucle lorsque ti=t, c'est-à-dire lorsque l'image î',* est déterminée. Si l'image traitée n'est pas l'image t, la variable i est incrémentée de un et les étapes précédentes sont répétées. Alternativement, le mécanisme de re-synchronisation lente peut être 30 implémenté dans le client. Le principe est alors de pouvoir disposer sur le client, 2910218 24 à l'instant de décodage t et durant toute la période de transition douce, d'une part du flux re-synchronisé et d'autre part du flux endommagé par propagation des erreurs. Le serveur doit être également modifié pour transmettre une image 5 Inter P sur un port secondaire immédiatement à la suite de l'image Intra de resynchronisation I. Seul le décodeur sait en temps réel s'il est soumis à des pertes. Certaines images Intra I sont envoyées cycliquement, toutes les m images, sans avoir été explicitement demandées suite à une perte. Ainsi, chaque image 10 Intra I peut avoir un effet de re-synchronisation potentiellement brutale en cas de dérive de la vidéo. Il n'y a donc pas lieu de différencier le traitement entre une image Intra de re-synchronisation normale et une autre due à des erreurs de transmission. Par conséquent, il est nécessaire de transporter constamment une image Inter P sur le lien secondaire pour toute image Intra I, qu'elle soit liée 15 à la période de rafraîchissement ou à un acquittement négatif. Ainsi, le processus de re-synchronisation lente peut s'effectuer pour toute image Intra en présence d'erreurs. Lors d'un changement de séquence, l'encodeur envoie sur le lien secondaire une image Inter P particulière, par exemple une image vide, indiquant au décodeur un début de séquence et que donc le fondu doit être 20 inhibé. Deux liens sont créés entre le serveur et le client : un lien principal (port1) pour la transmission classique de la vidéo et un lien secondaire (port2) pour la transmission d'image Inter pour la re-synchronisation lente de la vidéo. Le serveur transmet une image Intra I, (l'exposant indique le 25 numéro du port) suivie de m images Inter Pk(k=t+l_,t+m) au client sur le lien principal. Lorsque l'image I,1 est transmise, le serveur transmet également une image Pt' au client. Pte est de préférence nulle si 1,1 correspond à la première image d'une séquence (GOP) sinon P2 est l'image Inter correspondant à l'image courante. Comme l'indique l'exposant, l'image Pte est transmise sur le 30 port secondaire. 2910218 25 A la réception d'une image Inter Pk(k=,+,,r+ä>) , le client décode le flux vidéo de façon standard. Si le décodeur est en état d'erreur, l'image décodée est soumise à la propagation des erreurs. A la réception d'un paquet erroné, c'est à dire d'un paquet dont les 5 données comprennent au moins une erreur, le client envoi un acquittement négatif NACK au serveur. Si le décodeur dispose d'un module de masquage d'erreur, il masque l'erreur et se met dans un état d'erreur. A la réception d'une image I, de re-synchronisation, si le décodeur n'est pas en état d'erreur, il décode normalement la vidéo et ne prend pas en 10 compte l'image Inter 13,2 , inutile. Si le décodeur est en état d'erreur, il utilise l'image InterP,2 pour simuler la propagation des erreurs pendant la durée du fondu. L'indice de fondu i est initialisé à la valeur N-1. Le décodeur sort de l'état d'erreur et se re-synchronise lentement durant les N image Inter P' suivantes. Pour chacune des N images Inter P' suivantes, l'encodeur calcul et affiche une 15 image intermédiaire et décrémente l'indice de fondu i. La figure 7 illustre plus spécifiquement un exemple de la phase de re-synchronisation lente effectuée sur le décodeur. Dans cet exemple, N est égal à cinq, c'est-à-dire que la re-synchronisation complète nécessite cinq images. Le graphique de droite représente l'évolution de la qualité mesurée 700 20 par un PSNR pour l'image décodée par le décodeur du client et la qualité mesurée 705 par un PSNR pour l'image avant codage par le serveur. Durant la période 710, il n'y pas d'erreur détectée, les images Inter P1(j t-D>d, selon l'état du réseau. L'image (t-D) correspond à une image du passé du décodeur non encore affichée. A chaque encodage d'image, l'encodeur stocke et renouvelle en permanence l'image Intra I(t-D). De son côté, le décodeur stocke 25 en permanence les dernières D images Inter reçues (la valeur de D est de préférence connue par l'encodeur et le décodeur, alternativement le décodeur peut utiliser une valeur Dmax). 2910218 30 Si une image Inter P(k) transmise subit une perte détectée par le décodeur, celui-ci envoie immédiatement un acquittement négatif NACK(k) et l'encodeur poursuit l'émission des images suivantes dont P(d) et P(t-D). A la réception du NACK(k) correspondant à l'instant où l'image de 5 numéro t est encodée par l'encodeur, ce dernier envoie l'image Intra I(t-D) stockée et, dans le même cycle, transmet l'image Inter P(t). L'encodeur reprend ensuite normalement son encodage et la transmission de l'image t+1 et des images suivantes. Lorsque l'image Intra I(t-D) est reçue, le décodeur dispose d'une 10 image Inter et d'une image Intra de l'image t-D, l'image P(t-D) ayant déjà été reçue par le décodeur, ainsi que des images Inter de t-D+1 à t. Il est ici admis qu'il n'est pas nécessaire de ré-envoyer les images Inter P(t-D+1) à P(t). En effet, le fondu efface les erreurs de quantifications éventuelles sur la transition douce. II est donc supposé ici que les images P suivant la re-synchronisation 15 sont suffisamment compatibles avec le flux reconstruit. Le décodeur dispose ainsi des données nécessaires pour mettre en oeuvre le processus de resynchronisation lente. A la réception de l'image Intra I(t-D), le décodeur efface les images déjà décodées supérieures à t-D. Le décodage avec re-synchronisation lente 20 est initialisé à l'image t-D. Le principe de décodage est ensuite similaire au principe décrit précédemment par référence aux figures 7 et 8 en modifiant cependant la source des images Inter P1(t-D+1) à P1(t-d+N) de re-synchronisation qui sont stockées dans le décodeur. L'image Inter P2(t-D) permettant la propagation des 25 erreurs est l'image stockée P(t-D). II est préférable de re-décoder les images de t-D+N à t pour éviter des défauts de transition éventuels et simplifier le traitement. Lorsque la re-synchronisation lente est terminée, le décodage reprend normalement sur les images transmises, la re-synchronisation lente pouvant éventuellement se poursuivre après t comme décrit précédemment par 30 référence aux figures 7 et 8. Cette phase de reconstruction de la resynchronisation lente entre t-D et t doit s'effectuer le plus vite possible (par exemple à une cadence supérieure à 25 images par seconde pour un flux vidéo 2910218 31 à 25 images par seconde) afin de rattraper le retard induit par ce recalage sur le passé. Cette implémentation permet d'accélérer le rafraîchissement et de limiter la propagation des erreurs sans surcoût en ce qui concerne les 5 ressources liées à la transmission. Cependant, il est nécessaire, pour la mettre en oeuvre, que l'encodeur stocke en permanence une image choisie du passé de l'encodeur (image non encore décodée ou affichée par le décodeur), qu'il puisse transmettre au décodeur en cas d'erreur signalée. Le décodeur doit pouvoir intercepter cette image dans sa mémoire tampon immédiatement à sa 10 réception afin de la décoder immédiatement pour mettre en place le processus de re-synchronisation lente. Il suffit par exemple, au niveau du décodeur, d'utiliser un stockage des images reçues indexées par le numéro d'images (temps d'affichage), au lieu d'une mémoire de type premier entré premier sorti (FIFO, First ln First Out) classique, sans gestion de priorité. Si l'indice temporel 15 de l'image Intra a déjà été traité, il s'agit alors d'une re-synchronisation que le décodeur peut et doit mettre en oeuvre. Enfin, Le décodeur doit également stocker en permanence les D images Inter P de son passé pour re-simuler la re-synchronisation. 20 Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l'invention pourra appliquer des modifications dans la description précédente. REVENDICATIONS 1. Procédé de dissimulation d'au moins une erreur dans une séquence multimédia transmise à travers un réseau (125) entre un serveur (100) et un client (105), un acquittement négatif étant transmis dudit client audit serveur à la détection de ladite au moins une erreur, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes, - création d'un premier flux (408, 806) lié à ladite séquence multimédia ; - création d'un deuxième flux (411, 819) lié à ladite séquence multimédia, ladite au moins une erreur étant propagée dans ledit deuxième flux ; et, - création d'un troisième flux (412, 813) selon une fonction desdits premier et deuxième flux créés dans laquelle l'influence dudit deuxième flux diminue progressivement avec le temps. 2. Procédé selon la revendication 1 caractérisé en ce que ladite fonction desdits premier et deuxième flux créés est une moyenne pondérée. 3. Procédé selon la revendication 1 ou la revendication 2 caractérisé en ce que ladite séquence multimédia est codée selon un codage hybride de réduction des redondances spatiales et temporelles, ledit premier flux étant basé sur des données codées selon des redondances spatiales et ladite au moins une erreur étant propagée dans ledit deuxième flux à travers des données codées selon des redondances temporelles. 4. Procédé selon l'une quelconque des revendications précédentes caractérisé en que ledit procédé est implémenté dans ledit serveur (100), ledit précédé comprenant en outre une étape de réception d'informations de localisation de ladite au moins une erreur (422). 5. Procédé selon la revendication 4 caractérisé en ce qu'il comprend en outre une étape de propagation de ladite au moins une erreur selon lesdites informations de localisation reçues (421). 2910218 33 6. Procédé selon la revendication 5 caractérisé en ce que la création dudit deuxième flux est basée sur des données de référence, lesdites données de référence étant déterminées selon ladite étape de propagation de ladite au moins une erreur. 5 7. Procédé selon l'une quelconque des revendications 5 et 6 caractérisé en qu'il comprend en outre des étapes de codage (415) et de transmission (417) dudit troisième flux. 8. Procédé selon la revendication 7 caractérisé en ce que le codage dudit troisième flux est basé sur des données de référence et sur le résultat de 10 ladite fonction desdits premier et deuxième flux, lesdites données de référence étant déterminées selon ladite étape de propagation de ladite au moins une erreur. 9. Procédé selon l'une quelconque des revendications 1 à 3 caractérisé en que ledit procédé est implémenté dans ledit client, ledit procédé 15 comprenant en outre une étape de réception de données de re-synchronisation formées à partir de ladite séquence multimédia (803). 10. Procédé selon la revendication 9 caractérisé en ce que lesdites données de re-synchronisation sont utilisées pour créer ledit premier flux (806). 11. Procédé selon l'une des revendications 9 et 10 caractérisé en ce 20 qu'il comprend en outre une étape de réception de données pour propager ladite au moins une erreur (804). 12. Procédé selon l'une quelconque des revendications 9 à 11 caractérisé en ce que des données de référence sont utilisées pour déterminer les données dudit deuxième flux à un instant donné, lesdites données de 25 référence étant les données dudit troisième flux à l'instant précédent. 13. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comprend en outre une étape de masquage de ladite au moins une erreur dans ledit deuxième flux (504, 509, 523, 526). 14. Procédé selon l'une quelconque des revendications précédentes 30 caractérisé en ce que ladite séquence multimédia comprend une séquence vidéo, une séquence audio ou une séquence audio-vidéo. 2910218 34 15. Programme d'ordinateur comprenant des instructions adaptées à la mise en oeuvre de chacune des étapes du procédé selon l'une quelconque des revendications précédentes. 16. Moyen de stockage d'informations, amovible ou non, 5 partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 14. 17. Dispositif de dissimulation d'au moins une erreur dans une 10 séquence multimédia transmise à travers un réseau (125) entre un serveur (100) et un client (105), un acquittement négatif étant transmis dudit client audit serveur à la détection de ladite au moins une erreur, ce dispositif étant caractérisé en ce qu'il comprend les moyens suivants, - des moyens pour générer un premier flux lié à ladite séquence 15 multimédia ; - des moyens pour générer un deuxième flux lié à ladite séquence multimédia, ladite au moins une erreur étant propagée dans ledit deuxième flux ; et, - des moyens pour générer un troisième flux selon une fonction 20 desdits premier et deuxième flux créés dans laquelle l'influence dudit deuxième flux diminue progressivement avec le temps. 21. Dispositif selon la revendication précédente caractérisé en ce que lesdits moyens pour générer ledit premier flux comprennent un encodeur. 22. Dispositif selon l'une quelconques des revendications 17 et 18 25 caractérisé en ce que lesdits moyens pour générer ledit deuxième flux comprennent un décodeur. 23. Dispositif selon l'une quelconque des revendications 17 à 19 caractérisé en ce qu'il comprend en outre des moyens de codage adaptés à coder ledit troisième flux. 30 21. Serveur comprenant le dispositif selon l'une quelconque des revendications 17 à 20. 2910218 22. Dispositif selon la revendication 17 caractérisé en ce que lesdits moyens pour générer ledit premier flux comprennent un décodeur. 23. Dispositif selon l'une quelconque des revendications 17 et 22 caractérisé en ce qu'il comprend des moyens pour recevoir en parallèle deux 5 flux distincts.