Brevet FR2910211A1 — 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 pour resynchroniser un flux vidéo endommagé. 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 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.11a 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érents types 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 toute autre image. En termes de compression, les images P et B sont de taille très 2910211 2 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 coupent les dépendances temporelles. Les phénomènes de propagation 5 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 décode les images successives de la vidéo et les affiche tout en continuant à 10 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 généralement trop importants pour des applications temps réel telles que la 15 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 (acronyme de Forward Error Correction en terminologie anglo-saxonne) permet ainsi de corriger des erreurs 20 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. Lorsque les mécanismes de correction d'erreurs par retransmission (ARQ) ou par insertion de redondance (FEC) ne sont pas en mesure de corriger 25 toutes les erreurs de transmission, ou lorsque de tels mécanismes ne sont pas mis en oeuvre, les erreurs de transmission qui subsistent provoquent des erreurs de décodage, aussi appelées des artefacts, visibles sur le flux vidéo décodé. Ces erreurs de décodage peuvent se propager d'une image à une autre à cause du codage prédictif utilisé. 30 Pour cette raison, la plupart des systèmes utilisant un codage Inter effectuent par défaut un rafraîchissement (ou une re-synchronisation) du flux en insérant de façon périodique une image Intra, capable de mettre fin à toute 2910211 3 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 5 d'un paquet et provoquer l'envoi explicite d'une image Intra pour stopper toute propagation d'erreur sur le flux vidéo du client (aussi appelé refresh on demand ou intra refresh en terminologie anglo-saxonne). Les mécanismes de correction d'erreur de transmission sont souvent complétés par des méthodes de masquage ou de dissimulation d'erreurs de 10 décodage (aussi appelés error concealment en terminologie anglo-saxonne), 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 (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 15 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 images précédentes et le mouvement estimé des blocs pour reconstruire l'image courante. 20 Malgré ces techniques élaborées de dissimulation d'erreurs de décodage, il est aujourd'hui impossible de garantir une reconstruction parfaite des images endommagées de la vidéo, particulièrement dans le cas d'applications temps réel . Ceci pose un problème de confort visuel pour l'utilisateur. 25 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 dites objectives telles que la mesure du PSNR (sigle de Peak Signal to Noise Ratio en terminologie anglo-saxonne) estimant globalement la différence entre 30 l'image d'origine et l'image reconstruite sont aujourd'hui l'outil de référence pour estimer la qualité de reconstruction d'une image. 2910211 4 Le brevet US 6,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 décodage 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 5 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 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 10 codage et de perte de qualité de la vidéo. Bien que le masquage de l'erreur de décodage se trouve amélioré, l'effet visuel dû au masquage n'est pas suffisamment pris en compte. 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 15 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 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. Cependant, cette méthode ne diminue pas de façon satisfaisante l'impact visuel 20 de la correction effectuée sur la zone endommagée. L'invention permet de résoudre au moins un des problèmes exposés précédemment. L'invention a ainsi pour objet un procédé de dissimulation d'au moins une erreur de décodage induite par au moins une erreur de transmission dans 25 une séquence multimédia transmise à travers un réseau entre un serveur et un client, ce procédé comprenant les étapes suivantes, - obtention, suite à la détection de ladite au moins une erreur de transmission, d'un flux dit synchronisé lié à ladite séquence multimédia, ledit flux synchronisé comprenant des données de rafraîchissement ; 30 - détermination de données caractéristiques de ladite au moins une erreur de décodage ; et 2910211 5 - création d'un flux dit résultant selon une fonction dudit flux synchronisé et desdites données caractéristiques, l'influence d'au moins l'une desdites données caractéristiques, dans ladite fonction, diminuant progressivement avec le temps. 5 Le procédé selon l'invention permet ainsi de diminuer l'impact visuel d'une erreur de décodage due à une erreur de transmission, d'une correction inefficace ou d'une correction partiellement efficace. Il est donc complémentaire des méthodes de correction et des techniques de masquage de perte dans un flux vidéo. 10 De façon avantageuse, l'influence de ladite au moins une desdites données caractéristiques, dans ladite fonction, diminue progressivement avec le temps à partir de l'élément dudit flux synchronisé comprenant lesdites données de rafraîchissement afin d'éviter une transition brutale entre un élément comprenant une erreur de décodage et les données rafraîchies. 15 Selon un mode de réalisation particulier, le procédé comprend en outre une étape de création d'un flux dit non synchronisé lié à ladite séquence multimédia, lesdites données caractéristiques étant propagées dans ledit flux non synchronisé. Le flux résultant peut alors être créé selon une moyenne pondérée des flux synchronisé et non synchronisé. 20 Toujours selon un mode de réalisation particulier, ladite séquence multimédia est codée selon un codage hybride de réduction des redondances spatiales et temporelles, ledit flux synchronisé étant basé sur des données codées selon des redondances spatiales et lesdites données caractéristiques étant propagées dans ledit flux non synchronisé à travers des données codées 25 selon des redondances temporelles. L'invention concerne 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 de la correction d'erreur et du masquage de pertes, altérant la qualité visuelle de la 30 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ée suite 2910211 6 aux pertes de données. Malgré une baisse quantitative globale du PSNR, 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 5 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 de décodage. De façon avantageuse, le procédé comprend également une étape de propagation desdites données caractéristiques selon lesdites informations de localisation reçues. 10 L'invention peut être implémentée simplement au niveau de l'encodeur, sans modifier le décodeur. De préférence, la création dudit flux non synchronisé 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 desdites données caractéristiques. Le 15 procédé comprend en outre avantageusement des étapes de codage et de transmission dudit flux résultant pour le transmettre à travers un réseau. Alternativement, ledit procédé peut être implémenté dans ledit client. L'invention peut ainsi être implémentée au niveau du décodeur en ne modifiant que simplement l'encodeur. 20 Le procédé comprend en outre avantageusement une étape de réception de données pour propager lesdites données caractéristiques. Selon un mode de réalisation particulier, des données de référence sont utilisées pour déterminer les données dudit flux non synchronisé à un instant donné, lesdites données de référence étant les données dudit flux 25 résultant à l'instant précédent. De façon avantageuse, le procédé comprend en outre une étape de masquage de ladite au moins une erreur de décodage dans ledit flux non synchronisé. 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 plus naturels et invisibles les effets et défauts ou manques éventuels du masquage d'erreur. 2910211 7 Alternativement, le procédé comprend en outre une étape d'estimation de ladite au moins une erreur de décodage, lesdites données caractéristiques comprenant ladite estimation de ladite au moins une erreur de décodage. 5 Selon ce mode de réalisation préféré, l'invention est mise en oeuvre au niveau du décodeur sans avoir à modifier l'encodeur ni un serveur vidéo. Avantageusement, ladite estimation est basée sur la prédiction d'un élément de ladite séquence multimédia à partir dudit flux synchronisé, ledit élément étant, de préférence, antérieur à ladite au moins une erreur de 10 transmission. Selon un mode de réalisation particulier, ladite estimation est obtenue par comparaison dudit élément prédit et de l'élément correspondant décodé. Alternativement, ladite estimation est basée sur la prédiction d'un 15 élément de ladite séquence multimédia, ledit élément comprenant ladite au moins une erreur de décodage, à partir d'un élément décodé. Selon un mode de réalisation particulier, ladite estimation est obtenue par comparaison dudit élément prédit et de l'élément correspondant dudit flux synchronisé comprenant au moins une desdites données de 20 rafraîchissement. Toujours selon un mode de réalisation particulier, le procédé comprend en outre une étape d'évaluation de la qualité de ladite prédiction afin de ne pas dégrader davantage une partie de la séquence multimédia. Avantageusement, lesdites données caractéristiques comprennent 25 une information représentative de la propagation de ladite au moins une erreur de décodage dans la séquence multimédia pour permettre la propagation de l'erreur de décodage atténuée. Ledit flux résultant est de préférence créé en reportant ladite estimation de ladite au moins une erreur de décodage dans ledit flux 30 synchronisé, l'influence de ladite estimation de ladite au moins une erreur de décodage diminuant progressivement avec le temps. Ladite estimation de ladite au moins une erreur de décodage est avantageusement reportée dans une 2910211 8 partie seulement d'au moins un élément dudit flux synchronisé, ladite partie étant déterminée à partir de ladite information représentative de la propagation de ladite au moins une erreur de décodage dans ladite séquence multimédia. Ainsi, seule la partie touchée par l'erreur de décodage est modifiée. 5 Toujours selon un mode de réalisation particulier, le procédé comprend une étape préalable de masquage de ladite au moins une erreur de décodage et une étape d'évaluation de la qualité dudit masquage, ladite étape de détermination de données caractéristiques n'étant mise en oeuvre que si ladite qualité estimée est inférieure à un seuil prédéterminé. Le procédé n'est 10 ainsi mis en oeuvre que si l'erreur de décodage ne peut pas être masquée de façon satisfaisante. Ladite séquence multimédia peut comprendre, par exemple, une séquence vidéo, une séquence audio ou une séquence audio-vidéo. L'invention a également pour objet un programme d'ordinateur 15 comprenant des instructions adaptées à la mise en oeuvre de chacune des étapes du procédé décrit précédemment ainsi qu'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 programme d'ordinateur pour l'exécution de chacune des étapes du procédé 20 décrit précédemment. L'invention a aussi pour objet un dispositif de dissimulation d'au moins une erreur de décodage induite par au moins une erreur de transmission dans une séquence multimédia transmise à travers un réseau entre un serveur et un client, ce dispositif comprenant les moyens suivants, 25 - moyens pour obtenir, suite à la détection de ladite au moins une erreur, un flux dit synchronisé lié à ladite séquence multimédia, ledit flux synchronisé comprenant des données de rafraîchissement ; - moyens pour déterminer des données caractéristiques de ladite au moins une erreur de décodage ; et, 30 - moyens pour générer un flux dit résultant selon une fonction dudit flux synchronisé et desdites données caractéristiques, l'influence d'au moins l'une desdites données caractéristiques diminuant avec le temps. 2910211 9 Le dispositif selon l'invention permet ainsi de diminuer l'impact visuel d'un artefact du à une erreur de transmission, d'une correction inefficace ou d'une correction partiellement efficace. Il est donc complémentaire des dispositifs de correction et de masquage de perte dans un flux vidéo. 5 Selon un mode de réalisation particulier, le dispositif comprend en outre des moyens pour créer un flux dit non synchronisé lié à ladite séquence multimédia, lesdites données caractéristiques étant propagées dans ledit flux non synchronisé. De façon avantageuse, lesdits moyens pour générer ledit flux 10 synchronisé comprennent un encodeur. De même, lesdits moyens pour générer ledit flux non synchronisé comprennent de préférence un décodeur. Avantageusement, le dispositif comprend en outre des moyens de codage adaptés à coder ledit flux résultant pour le transmettre à travers un réseau. 15 L'invention a également pour objet un serveur comprenant le dispositif décrit précédemment. Selon un mode de réalisation particulier, lesdits moyens pour générer ledit flux synchronisé du dispositif selon l'invention comprennent un décodeur. 20 Toujours selon un mode de réalisation particulier, le dispositif comprend des moyens pour recevoir en parallèle deux flux distincts afin de recevoir lesdits flux synchronisé et non synchronisé. Selon un mode de réalisation préféré, le dispositif comprend en outre des moyens pour estimer ladite au moins une erreur de décodage. L'invention 25 peut ainsi être mise en oeuvre au niveau du décodeur sans avoir à modifier l'encodeur ni un serveur vidéo. De façon avantageuse, le dispositif comprend en outre des moyens pour prédire un élément de ladite séquence multimédia, antérieur à la détection de ladite au moins une erreur de transmission, à partir dudit flux synchronisé. 30 Le dispositif comprend en outre, de préférence, des moyens pour comparer ledit élément prédit et l'élément correspondant décodé. 2910211 10 Alternativement, le dispositif peut comprendre des moyens pour prédire un élément de ladite séquence multimédia, postérieur à la réception desdites données de rafraîchissement, ledit élément comprenant ladite au moins une erreur de décodage. De même, le dispositif comprend en outre, de 5 préférence, des moyens pour comparer ledit élément prédit et l'élément correspondant dudit flux synchronisé. Selon un mode de réalisation particulier, le dispositif comprend en outre, de préférence, des moyens pour estimer la qualité dudit élément prédit afin de ne pas dégrader davantage une partie de la séquence multimédia. 10 Toujours selon un mode de réalisation particulier, le dispositif comprend les moyens suivants, -moyens pour masquer ladite au moins une erreur de décodage ; et, - moyens pour évaluer la qualité dudit masquage. 15 Les moyens pour atténuer les effets de l'erreur de transmission ne sont ainsi mis en oeuvre que si nécessaire. D'autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d'exemple non limitatif, au regard des dessins annexés dans lesquels : 20 - 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 au moins partiellement l'invention ; - la figure 3 décrit le principe d'un exemple du processus de re- 25 synchronisation lente, selon un premier mode de réalisation, sous forme d'un diagramme temporel, d'un flux vidéo ayant subi une erreur de transmission ; - la figure 4 présente une réalisation matérielle possible du diagramme temporel décrit par référence à la figure précédente ; - la figure 5, comprenant les figures 5a et 5b, illustre les algorithmes 30 implémentés dans l'encodeur et dans le décodeur de la figure 4 ; 2910211 11 - 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. - la figure 7 illustre un exemple de la phase de re-synchronisation 5 lente effectuée sur le décodeur, selon un deuxième mode de réalisation ; - 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 image courante intermédiaire est calculée à partir de l'image correcte et de l'image endommagée simulée ; 10 - la figure 9 illustre le principe d'un exemple du processus de resynchronisation lente selon un troisième mode de réalisation ; - la figure 10 illustre schématiquement les traitements utilisés pour mettre en oeuvre l'invention selon le troisième mode de réalisation ; - la figure 11 est une représentation détaillée de la figure 10 ; 15 - la figure 12 illustre la poursuite des erreurs dans la cartographie des positions des erreurs permettant la mise en oeuvre du troisième mode de réalisation ; - la figure 13 illustre l'étape de poursuite et d'atténuation des erreurs illustrée sur la figure 11 ; 20 la figure 14 illustre la façon selon laquelle un champ de vecteurs peut être déterminé en relation avec une image Intra pour la mise en oeuvre du troisième mode de réalisation ; - la figure 15 illustre l'étape de génération d'une image d'erreurs de la figure 10 ; et, 25 - la figure 16 représente une alternative au procédé décrit par référence à la figure 12 pour poursuivre les erreurs dans la cartographie des positions des erreurs afin d'améliorer la transition entre des images contenant des erreurs et des images ne contenant pas d'erreur ou contenant des erreurs différentes. 30 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 re-2910211 12 synchronisée. Le fondu progressif peut être implémenté au niveau du décodeur ou de l'encodeur. Selon un premier et un second mode de réalisation et de façon schématique, la solution décrite nécessite la création et la gestion de deux flux 5 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 Intra reçue ; et, • le flux endommagé sur lequel les erreurs sont propagées au-delà de l'instant auquel l'image Intra est reçue, comme si cette dernière n'était pas 10 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. Le flux obtenu par le fondu progressif entre le flux re-synchronisé et 15 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 davantage le traitement correctif effectué. 20 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-à-dire par l'encodeur, il est nécessaire, à la réception d'un acquittement négatif, 25 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 d'acquittement négatif renseigné du paquet erroné, indiquant en particulier les 30 zones perdues de l'image, le décodeur ne fait aucune action particulière, le flux reçu contenant intrinsèquement la re-synchronisation douce. Cette solution n'implique donc que la modification de l'encodeur. 2910211 13 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 resynchronisation, d'une image Intra pour re-synchroniser effectivement le flux et d'une image Inter pour permettre la propagation des erreurs et simuler le flux 5 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 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 10 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. Selon un troisième mode de réalisation, le fondu progressif est mis en oeuvre par le client. Une image Intra suivant une image Inter dégradée est ici 15 utilisée pour prédire une image Inter correspondante non dégradée, ces images Inter étant combinées pour réduire progressivement l'effet de la dégradation. 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 20 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 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 25 autre moyen de capture de vidéo) reliée à une carte graphique et fournissant à l'appareil des données multimédia. L'appareil 200 comporte un bus de communication 202 auquel sont reliés : - une unité centrale de traitement ou microprocesseur 203 (CPU, 30 Central Processing Unit) ; 2910211 14 - une mémoire morte 204 (ROM, acronyme de Read Only Memory en terminologie anglo-saxonne) pouvant comporter les programmes "Prog", "Prog1" et "Prog2" ; - une mémoire vive ou mémoire cache 206 (RAM, acronyme de 5 Random Access Memory en terminologie anglo-saxonne) comportant des registres adaptés à enregistrer des variables et 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 10 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 graphiqueavec l'utilisateur qui pourra interagir avec les programmes selon l'invention, à l'aide d'un clavier 210 ou de tout autre moyen 15 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", 20 "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émoire adapté à y lire ou à y écrire des 25 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 de 30 l'appareil 200 directement ou par l'intermédiaire d'un autre élément de l'appareil 200. 2910211 15 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. Selon une variante, la disquette 216 peut contenir des données ainsi 5 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. 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. 10 Les disquettes peuvent être remplacées par tout support 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 15 adaptés à mémoriser un ou plusieurs programmes dont l'exécution permet la 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. 20 L'unité centrale 203 va commander et diriger l'exécution des 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 25 mémoire non volatile, par exemple le disque dur 212 ou la mémoire morte 204, 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. 30 Il convient de noter que l'appareil de communication comportant le dispositif selon l'invention peut également être un appareil programmé. Cet 2910211 16 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 resynchronisation lente, selon un premier mode de réalisation, sous forme d'un 5 diagramme temporel, d'un flux vidéo ayant subi 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-synchonisation par une image INTRA. Le processus décrit par référence à la figure 3 est le processus de re- 10 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 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 à 15 l'instant k, le serveur transmet (référence 315) l'image P(k) qui est reçue par le serveur à l'instant k'. 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, affectant par exemple l'image 20 P(k), le client retourne (référence 320) un message NACK(k) (acronyme de Negative ACKnowledgment en terminologie anglo-saxonne) au serveur pour lui indiquer qu'il a perdu des données de 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+l) 25 à 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 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'envoie pas 30 d'image Intra s'il a émis entre-temps une autre image Intra, selon le cycle normal, qui a déjà effectué 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 2910211 17 celui est efficace, il peut décider qu'il est inutile d'effectuer une resynchronisation. 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 5 les mêmes raisons, il est également admis que l'encodeur est capable de 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. Contrairement au processus standard, l'encodeur n'envoie pas 10 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 du décodeur au temps t. Puis, sur une période de N encodages d'images déterminant la 15 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 Î, (vidéo réelle) ; construction de l'image de référence du décodeur 7* (vidéo 20 endommagée) avec simulation de la propagation des erreurs ; - calcul d'une image pondérée Ii entre Îz et Îz", par exemple selon la formule Iz := N I + N l I effectuant un fondu linéaire entre les deux flux ; - encodage de Ii en 1, en prenant pour référence l'image 7 1; et, - envoi au client de l'image Inter prédictive P'(t) correspondant à 25 cette image h . 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 Îz 2910211 18 La référence 350 désigne la variation du PSNR 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 représente le PSNR de la vidéo avant codage et transmission, c'est-à-dire le PSNR du flux vidéo ne comprenant 5 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 continue à chuter jusqu'au moment où le serveur reçoit le NACK et transmet une image corrigée. A cet instant, le PSNR n'est pas 10 brutalement corrigé mais est progressivement augmenté. La figure 4 présente une réalisation matérielle possible pour obtenir le diagramme temporel décrit par référence à la figure 3. Le schéma prédictif 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. 15 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 décodeur. La partie marquée en trait continu représente la boucle principale 20 d'encodage des images d'entrée (valides) Iz et comprend un module d'encodage noté ENC_DEC (décrit par référence à la figure 5a). L'encodeur fournit l'image reconstruite 2.. La partie marquée en trait pointillé représente le processus d'initialisation, sur signalement de perte, de l'encodeur pour la resynchronisation lente. Cette partie utilise une procédure de propagation de 25 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 intermédiaires Ii pour la re-synchronisation lente du décodeur. Il utilise un décodeur DEC référencé DEC* (décrit par référence à la figure 5b) pour simuler 30 la propagation des erreurs 7* au-delà du temps courant, et d'un encodeur 2910211 19 ENC DEC référencé ENC DEC' pour l'encodage des images It de resynchronisation lente. L'image intermédiaire Ii entre het h peut être calculée simplement selon, par exemple, la relation It := N Ît + a ûoù i est l'indice 5 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 Ii est alors identique à l'image Ît) ; - 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 10 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 1; Tt* et en fin de synchronisation l; = h) ; et, - i est forcé à la valeur zéro en début de séquence ou de GOP (sigle de Group Of Pictures en terminologie anglo-saxonne). 15 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. 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 It . Un test 403 est alors effectué pour déterminer si l'image It est une image Intra 20 de début de séquence (ou de début de GOP). Si l'image It est une image Intra de début de séquence, l'indice de fondu i est initialisé ou réinitialisé à la valeur zéro (étape 404) pour arrêter toute re-synchronisation en cours. Si l'image It n'est pas une image Intra de début de séquence, un 25 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 supérieur à zéro, l'indice de fondu i est décrémenté de un (étape 406). 2910211 20 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 7* est réinitialisée selon l'image Îz précédemment calculée (référence 410). Ensuite, à l'étape 408, l'encodeur ENC_DEC fournit en sortie 5 principale (référence 409) les données de vecteurs mouvement 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 Îz . L'encodeur ENC DEC met à jour sa propre image de référence. 10 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. Lorsqu'aucune erreur n'est survenue, le décodeur DEC* dispose de la même image de référence que l'encodeur ENC_DEC. II convient 15 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 2 fausse issue du décodeur DEC* n'a aucune conséquence sur l'image Ii transmise. A l'étape 412, l'image intermédiaire (référence 413) entre le flux 20 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 I~ef (référence 414). L'image Ii encodée (référence 416) est transformée en paquets de 25 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 sont répétées comme illustré. 2910211 21 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 5 courant afin d'obtenir l'image de référence de la vidéo endommagée Ii (référence 423) à l'étape 421. Cette image Ii est recopiée comme image 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é. 10 La figure 5, comprenant les figures 5a et 5b, illustre les algorithmes implémentés dans l'encodeur et dans le décodeur, respectivement. 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, 15 ou une image Inter, c'est-à-dire une image des erreurs de prédiction résiduelles quantifiées Eq , avec ses vecteurs mouvement MVt associés, à partir de l'image originale Iz à encoder et de l'image de référence Iref, c'est-à-dire l'image précédente 7,_1 telle que reconstruite par le décodeur. Par extension et pour simplifier le schéma et la description associée, 20 les traitements sont décrits pour une image entière bien qu'ils soient en fait 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 (sigle de Discrete Cosine Transform en terminologie anglo- 25 saxonne) et l'estimation et la compensation de mouvement exprimés sur l'image Iz sont en fait effectués sur chaque macrobloc MB composant l'image Iz . 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 30 et sa dérive (drift). 2910211 22 A l'instant t, l'image (ou plus précisément le macrobloc) à encoder Iz 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 Îz_1 ou éventuellement initialisée par l'entrée Iref (501") de 5 l'encodeur. Lorsqu'une perte de données du décodeur du client est simulée sur 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 Iz , par un algorithme standard de Block Matching , 10 une zone de même taille de l'image de référence Iref qui lui est la plus 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 Iref et des vecteurs mouvement MVt calculés à l'étape 15 502 l'image compensée (ou prédite) Îz. 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 Îz à partir des informations de pertes InfosPertes fournies en paramètres. Le module de masquage de perte temporel construit une image 20 corrigée Îi (étape 504). Si aucune perte n'est signalée, Îi est identique à Îz . L'image des erreurs résiduelles brutes de compensation est calculée selon la relation Et =1 z û Iz (étape 505). Les vecteurs de mouvement MVt sont utilisés pour encoder l'image Et. Pour l'encodage d'une image Intra, les vecteurs sont nuls et Îi est forcée à zéro, ce qui provoque une simple 25 compression spatiale de l'image Iz . Avant d'être transmise à la couche réseau, l'image des erreurs Et 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 2910211 23 l'image des erreurs Et en une image des erreurs quantifiéesEq . Eq est l'image 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 (sigle de Variable-Length Code en terminologie anglo-saxonne) et une transformation 5 sous forme de paquets de données (référence 512). Dans un souci de clarté, les modules de codage et de décodage entropiques, connus, ne sont pas représentés. Pour disposer de l'image des erreurs effectivement reconstruite par le décodeur afin de calculer l'image courante Îz reconstruite par le décodeur, 10 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). La nouvelle image de référence est calculée comme la reconstruction de l'image en cours selon la relation Î; = Ît + Et où Ît est 15 l'image compensée et éventuellement corrigée de l'ancienne image de référence avec les vecteurs mouvement virtuellement transmis (étapes 503 et 504) et Ez 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 Îi étant nulle, l'image Î; correspond à l'image décompressée Ez (étape 507). 20 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 reconstruction de l'image Î; à l'étape 508 (étape 509). Comme illustré, l'image Î 510 est disponible à la sortie de l'encodeur ENC_DEC et elle est stockée comme nouvelle image de référence Iref (étape 511). 25 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 des paquets de données. 2910211 24 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 Et est forcé à O. La figure 5b décrit plus précisément la structure et l'enchaînement 5 des opérations effectuées par le décodeur DEC au temps t pour délivrer une image Îz à partir de l'image des erreurs résiduelles quantifiées Eq et des vecteurs mouvement MVt associés, ainsi que de l'image de référence Iref , 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 10 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 Eq et les vecteurs mouvement MVt pour une image Inter (P) ou une image compressée Eq pour une image Intra (I). Les informations de pertes sont disponibles à 15 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 compensée (ou prédite) Îz à partir de l'image de référence Iref et des vecteurs 20 mouvement 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 Îz à partir des informations de pertes InfosPertes reçues (étape 523). L'image corrigée est l'image Îi . Si aucune donnée n'a été perdue, 25 l'image Îi est identique à l'image Îz . Parallèlement aux étapes 522 et 523, l'image des erreurs Eq est décompressée par une quantification inverse suivie d'une transformée DCT inverse (étape 524) pour reconstruire l'image des erreurs Ez (ou l'image complète si l'image à décoder est une image Intra). 2910211 25 L'image finale Îz est alors reconstruite (étape 525) par sommation de l'image des résidus Éz issue de l'étape 524 avec l'image compensée Îi issue de l'étape 523. Si l'image à décoder est une image Intra, l'image compensée Îi est forcée à zéro. 5 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 Îz à 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 10 affichée. L'image Îz est de préférence stockée comme nouvelle image de référence Iref . L'encodeur ENC DEC et le décodeur DEC ont chacun une entrée Iref qui permet si besoin d'initialiser leur image de référence. Bien que cette possibilité ne soit pas toujours disponible en réalité, il doit être considéré que 15 celleci 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 décoder ou d'encoder une image place automatiquement celle-ci comme image de référence de l'encodeur ou du décodeur. 20 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 1, servant de référence au décodeur au temps t. L'image courante endommagée 1, est obtenue par la simulation du masquage de perte Îk puis par la propagation des erreurs depuis l'image k. 25 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 traits continus). Il est ici rappelé que la présence d'un module de masquage de pertes est optionnelle. 2910211 26 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 ici au minimum le numéro du paquet perdu, et éventuellement d'autres 5 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 capable de simuler la correction effectuée par le décodeur au temps k. 10 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 Ik-1 présente dans le décodeur au moment du masquage. 15 En parallèle, l'encodeur reconstruit l'image 7k (é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 pertes sur l'image k. 20 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 survenues sur le décodeur du client sur les images Inter P(k+1) à P(t). 25 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 (t :=k+1) pour charger en mémoire l'image k+1. L'image de référence du décodeur ENC_DEC est initialisé avec l'image Îk précédemment encodée. L'image de référence du 2910211 27 décodeur DEC* est initialisée avec l'image 7k précédemment calculée par le module de masquage de perte. Pour chaque image i, l'encodeur ENC_DEC encode l'image Inter P de l'image correspondant à l'instant t et rafraîchit sa référence normalement par 5 l'image reconstruite (étape 603). Le décodeur DEC* récupère l'image Inter P (Eq, MV,) qu'il décode avec l'image de référence endommagée l , (é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 10 suivantes. Un test est effectué (étape 605) sur le numéro de l'image traitée pour permettre de sortir de la boucle lorsque t=t, c'est-à-dire lorsque l'image 7* est déterminée. Si l'image traitée n'est pas l'image t, la variable t est incrémentée de un et les étapes précédentes sont répétées. Alternativement, selon un deuxième mode de réalisation, le 15 mécanisme de re-synchronisation lente peut être implémenté dans le client. Le principe est alors de pouvoir disposer sur le client, à 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 20 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 25 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 30 à 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 2910211 28 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 inhibé. 5 Deux liens sont créés entre le serveur et le client : un lien principal (port1) pour latransmission 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 Iz (l'exposant indique le numéro du port) suivie de m images Inter Pkk=t+ht+m) au client sur le lien 10 principal. Lorsque l'image Iz est transmise, le serveur transmet également une image 13,2 au client. 13,2 est de préférence nulle si Iz correspond à la première image d'une séquence (GOP) sinon 13,2 est l'image Inter correspondant à l'image courante. Comme l'indique l'exposant, l'image 13, 2 est transmise sur le port secondaire. 15 A la réception d'une image Inter Pkk-z+iz+m), 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 données comprennent au moins une erreur, le client envoi un acquittement 20 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 Iz 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 compte l'image Inter Pz2, inutile. Si le décodeur est en état d'erreur, il utilise 25 l'image InterPz2 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 P1 suivantes. Pour chacune des N images Inter P1 suivantes, l'encodeur calcul et affiche une image intermédiaire et décrémente l'indice de fondu i. 2910211 29 La figure 7 illustre plus spécifiquement un exemple de la phase de re-synchronisation lente effectuée sur le décodeur selon le deuxième mode de réalisation. Dans cet exemple, N est égal à cinq, c'est-à-dire que la resynchronisation complète nécessite cinq images. Le graphique de droite 5 représente l'évolution de la qualité mesurée 700 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 P'(j t-D>d, selon 10 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 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 15 peut utiliser une valeur Dmax). 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 20 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 25 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. Il est donc supposé ici que les images P suivant la re-synchronisation 30 sont suffisamment compatibles avec le flux reconstruit. Le décodeur dispose 2910211 34 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 5 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 P'(t-D+1) à P'(t-d+N) de re-synchronisation qui sont stockées dans le décodeur. L'image Inter P2(t-D) permettant la propagation des 10 erreurs est l'image stockée P(t-D). Il 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 15 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 à 25 images par seconde) afin de rattraper le retard induit par ce recalage sur le passé. 20 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 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 25 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 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 30 (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 de l'image Intra a déjà été traité, il s'agit alors d'une re-synchronisation que le 2910211 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. Selon un troisième mode de réalisation, le client utilise une image 5 Intra suivant une image Inter dégradée pour prédire rétrospectivement une image Inter correspondante non dégradée, ces paires d'images Inter étant ensuite combinées pour réduire progressivement l'effet de la dégradation. La figure 9 illustre le principe général de ce mode de réalisation. Une séquence vidéo comprenant des images Inter et Intra est reçue 10 et décodée par le client. Par exemple, le client reçoit l'image Inter P(t-3), puis l'image Inter P(t-2), l'image Inter P(t-1), l'image Intra I(t) et ensuite l'image Inter P(t+l) comme illustré. L'image Inter P(t-3), référencée 900, contient ici une zone 902 représentant symboliquement un objet de la séquence vidéo. Comme illustré, en raison du mouvement lié à la séquence vidéo, la zone 902 change 15 de position d'une image à l'autre. Le rectangle noir 903 correspond à une partie de l'image perdue lors de la transmission. Cette partie peut être partiellement corrigée ou non. En raison de la propagation de l'erreur et de la dérive liée à l'erreur et à sa propagation, le rectangle noir 903 est transmis aux images Inter suivantes, 20 c'est-à-dire ici aux images P(t-2) et P(t-1). Lorsque l'image Intra suivante est reçue, c'est-à-dire ici l'image I(t) référencée 901, l'erreur disparaît brutalement, comme représenté. Pour éviter un effet visuel désagréable, l'image I(t) n'est pas affichée mais elle est utilisée pour supprimer progressivement l'erreur. 25 Tout d'abord, une estimation de l'image Inter P(t-1), référencée 907 et notée P(t -1), est déterminée (étape 905). L'image P(t -1) est calculée à partir de l'image Intra I(t) reçue en utilisant les vecteurs mouvement associés à l'image Inter P(t-1) reçue. Un exemple d'algorithme permettant de calculer une telle image estimée est présenté dans la suite de la présente description. 30 Il convient de noter que l'image P(tû1) étant déterminée à partir de l'image I(t), elle ne contient pas l'erreur de transmission représentée par le rectangle noir 903 sur l'image P(t-3). 2910211 36 La différence entre les images P(tûl) et P(t -1) , référencées 904 et 907, respectivement, est ensuite calculée (étape 908) pour obtenir une estimation de l'erreur, ou de la dérive de l'erreur, liée à la transmission. L'image obtenue par le calcul des différences est référencée 910 et notée Ê(t-1). 5 L'image estimée P(tûl) n'étant pas parfaite, la différence entre les images P(tûl) et P(tûl) n'est de préférence réalisée que dans la partie de l'image contenant l'erreur. Cette partie peut notamment être déterminée à l'aide d'un algorithme de poursuite appliqué aux images P(t-2) et P(t-1) comme décrit ci-après. 10 Comme illustré, le rectangle noir 912 de l'image 910 représente l'erreur estimée, c'est-à-dire la différence entre les images P(tûl) et P(tûl) dans la partie contenant l'erreur, correspondant à l'erreur représentée par le rectangle noir de l'image 904. Dans ce mode de réalisation, la variation de luminance due à l'erreur 15 de décodage et au rafraîchissement de l'image Intra est estimée sur l'image P(t-1). Cette prédiction conduit à une image d'erreur (909). On note que l'on peut aussi estimer cette erreur sur l'image I(t) (901) par prédiction d'une image Î(t) par projection au sens du mouvement de l'image P(t-1) au temps t. Cette image prédite contient l'erreur de décodage. L'obtention de l'image d'erreur 20 (équivalent de Ê(tû1) au temps t) se fait en soustrayant, pixel à pixel, Î(t) à l(t) . L'invention permet d'atténuer la suppression d'une erreur de transmission lors de la réception d'une image Intra selon une transition douce. A cette fin, l'erreur estimée représentée par le rectangle 912 est reportée dans 25 l'image Intra reçue et dans les suivantes tout en étant atténuée dans le temps (étape 911). Les résultats de cette poursuite et de cette atténuation sont représentés par les rectangles gris 913 et 914. L'erreur représentée par les rectangles 913 et 914 est reportée dans les images 901 et 915 (étape 916), c'est-à-dire dans l'image Intra I(t) et dans l'image Inter P(t+l), afin de former les 30 images 919 et 920 qui peuvent être affichées (étape 917). 2910211 37 Comme illustré par les images 918, 919 et 920, la correction de l'erreur de transmission est effectuée selon une transition douce. Dans cet exemple, l'image 918 correspond à l'image 904. Bien que la transition douce soit ici réalisée sur trois images successives, il convient de noter qu'en réalité, 5 cette transition douce affecte un plus grand nombre d'images, ce nombre d'images dépendant notamment des souhaits de l'utilisateur et de la fréquence d'affichage des images. Ainsi, la poursuite et l'atténuation des erreurs permettent d'éviter une correction brutale d'une séquence vidéo, désagréable pour l'utilisateur. 10 La figure 10 illustre schématiquement les traitements utilisés pour mettre en oeuvre l'invention selon le troisième mode de réalisation. Une interface réseau est utilisée pour recevoir des données d'un réseau (étape 1000), de préférence sous forme de paquets. Les données contenues dans les paquets reçus sont extraites (étape 15 1001) pour former le train de bits 1002 (appelé bitstream en terminologie anglo-saxonne) du flux vidéo. Un décodeur vidéo est ensuite utilisé (étape 1003) pour décompresser le train de bits issu des données reçues. Il est supposé ici que le décodeur vidéo est capable de localiser spatialement les erreurs dans les images reçues durant le décodage. Ces erreurs proviennent, en particulier, des 20 problèmes de transmission des paquets. Une cartographie des positions des erreurs détectées est générée et maintenue à jour (étape 1004). La cartographie des positions des erreurs comprend les positions des nouvelles erreurs détectées issues du décodeur vidéo ainsi que les positions des erreurs poursuivies au cours du temps. La 25 poursuite des erreurs utilise les vecteurs mouvement déterminés à l'aide des images Inter. En référence à la figure 9, la cartographie des positions des erreurs permet de poursuivre la position du rectangle noir référencé 903. Si l'image en cours de décodage est une image Intra, une image d'erreurs 1007 est générée (étape 1006). L'image d'erreurs est par exemple 30 l'image Ê(tû1) portant la référence 909 sur la figure 9. L'image d'erreurs est utilisée pour poursuivre et atténuer les erreurs au cours du temps (étape 1008). Cette étape, correspondant à l'étape 911 de la figure 9, utilise les vecteurs 2910211 38 mouvement déterminés à l'aide des images Inter. Simultanément à l'étape de suivi et d'atténuation des erreurs 1008, si des erreurs sont détectées par le décodeur vidéo, celles-ci sont transmises pour mettre à jour la cartographie des positions des erreurs (étape 1004) et normalement corrigées par un module de 5 dissimulation d'erreur (non représenté) situé au niveau du décodeur vidéo, indépendamment des étapes 1008 et 1009. Les images décodées 1005 issues du décodeur vidéo sont additionnées (étape 1009) avec l'image d'erreurs traitée à l'étape 1008. Le résultat peut alors être affiché (étape 1010). Il convient de noter ici, pour les images Inter, l'étape 1004 et les étapes 1006, 1007, 1008 et 10 1009 sont exécutées en parallèle. La figure 11 est une représentation détaillée de la figure 10. Les données sont reçues du réseau à travers une interface de communication (étape 1100), de préférence sous forme de paquets de données. Comme indiqué précédemment, les données contenues dans les paquets reçus sont 15 extraites (étape 1101) pour former le train de bits 1102, ou bitstream, du flux vidéo encodé transmis par le serveur. Un décodeur vidéo est ensuite utilisé (étape 1103) pour décompresser le train de bits issu des données reçues et ainsi former une image vidéo 1105. Simultanément, les vecteurs mouvement 1104 de l'image décodée 20 sont déterminés et mémorisés. Les vecteurs mouvement sont notamment utilisés ultérieurement pour la poursuite et l'atténuation des erreurs détectées. Par ailleurs, parallèlement au décodage des images reçues, la position des erreurs détectées par le décodeur vidéo est déterminée (étape 1106). Ces positions sont transmises à un module de dissimulation d'erreurs 25 adapté à corriger, au niveau du décodeur vidéo, les erreurs de transmission des paquets (étape 1107). Simultanément, l'image référencée 1116 correspondant à la position des erreurs dans un groupe d'images est mise à jour. La mise à jour consiste à poursuivre les erreurs précédentes (étapes 1114 et 1115) au cours du temps et 30 à ajouter les nouvelles positions des erreurs 1106 détectées dans les dernières images décodées (étapes 1115 et 1119). Le module de poursuite est détaillé 2910211 39 par référence à la figure 12. L'image 1116 est réinitialisée à zéro lorsqu'une image Intra est reçue. Si l'image décodée est une image Intra (étape 1108), une analyse de scène est effectuée pour détecter un changement de scène (étape 1109). Cette 5 étape permet de déterminer si l'image analysée est temporellement corrélée à la précédente. Si aucun changement de scène n'est détecté, c'est-à-dire s'il existe une corrélation spatiale importante entre l'image analysée et l'image précédente, une prédiction d'erreur est effectuée (étape 1110). Cette étape de prédiction d'erreur, correspondant à l'étape 1006 de la figure 10, est détaillée 10 par référence aux figures 14 et 15. Cette étape permet de générer une estimation de la dérive Ê(tû1) référencée 1111 (référence 909 de la figure 9) aussi appelée image d'erreurs. Eventuellement, pour certaines images Intra, le processus 1110 peut ne pas être exécuté. Ces cas particuliers correspondent par exemple à l'arrivée 15 d'une image Intra alors qu'aucune nouvelle erreur n'a été détectée (1106) et lorsque le processus de poursuite et d'atténuation des erreurs (étape 1112) n'a pas encore convergé vers une image proche de zéro. Quelque soit le type d'image décodée 1105, une poursuite des erreurs est réalisée sur l'image d'erreurs 1111 au cours du temps, tout en 20 atténuant ces erreurs (étapes 1112 et 1113). Cette poursuite d'erreurs est basée sur les vecteurs mouvement 1104. L'étape 1112, correspondant à l'étape 911 de la figure 9, est détaillée par référence à la figure 13. L'image d'erreurs 1111 est ajoutée à l'image analysée avant que celle-ci ne soit affichée (étapes 1117 et 1118). 25 Il convient de noter que l'étape 1112 de poursuite et d'atténuation des erreurs et l'étape 1117 d'ajout de l'image d'erreurs à l'image analysée ne sont appliquées que sur un nombre limité d'images. L'estimation des erreurs et de leurs dérives doit disparaître relativement rapidement pour éviter un effet de changement brusque lors de l'affichage d'une image Intra. En conséquence, 30 l'image d'erreurs doit de préférence être réinitialisée à zéro régulièrement, par exemple toutes les N images, N pouvant correspondre à dix ou quinze images. N est avantageusement inférieure à la taille des groupes d'images. 2910211 40 La figure 12 illustre la poursuite des erreurs dans la cartographie des positions des erreurs. Une image 1200, appelée ELMt_1, correspond à la cartographie des positions des erreurs à l'instant t-1 (ELM est le sigle de Error Location Map en terminologie anglo-saxonne). La partie grisée 1201 de l'image 5 1200 correspond aux positions des erreurs accumulées déterminées entre la dernière image Intra reçue et l'image à l'instant M. L'image ELMt_1 peut ainsi être définie de la façon suivante, 0 blanc ELM,_1 (x, y) = 1 gris L'image 1206, appelée ELMt, correspond à la cartographie des 10 positions des erreurs, en cours d'élaboration, à l'instant t. Certains des vecteurs mouvement, déterminés à partir de l'image Inter reçue à l'instant t lors de son décodage, sont illustrés par les références 1204 et 1205. La référence 1204 caractérise le vecteur mouvement selon lequel la position du bloc 1208 de l'image 1206 correspond à la position du bloc 1202 de l'image 1200. De même, 15 la référence 1205 caractérise le vecteur mouvement selon lequel la position du bloc 1207 de l'image 1206 correspond à la position du bloc 1203 de l'image 1200. Il convient de rappeler ici que lorsqu'une image Inter est reçue, un vecteur mouvement est déterminé pour chaque bloc de cette image. Les 20 vecteurs mouvement proviennent de la représentation codée de l'image en cours d'analyse. Ces vecteurs mouvement sont utilisés pour prédire chaque bloc de l'image en cours d'analyse à partir des blocs de l'image précédente. L'invention utilise l'information donnée par les vecteurs mouvement utilisés dans le codage des images Inter pour poursuivre la position des erreurs. 25 Tout d'abord, tous les pixels (acronyme de Picture Element en terminologie anglo-saxonne) de l'image ELMt sont initialisés à zéro. Ensuite, tous les blocs de l'image ELMt sont traités. Si l'on considère le bloc 1207 de l'image 1206 représentant la cartographie des positions des erreurs ELMt à l'instant t, le vecteur mouvement 30 1205 associé à ce bloc est sélectionné. Le vecteur mouvement 1205 permet de déterminer le bloc correspondant au bloc 1207 dans l'image précédente, c'est- 2910211 41 à-dire le bloc 1203 dans l'image ELMt_1. La position du bloc 1203 est déterminée selon la relation suivante, ~xt ~Yz )=~xt+vx,Y,+vy) dans laquelle (xt_I,yt_i) représente les coordonnées du centre du bloc 5 1203, (xt,yt) représente les coordonnées du centre du bloc 1207 et (vx, vy) représente les composantes du vecteur mouvement associé au bloc 1207, c'est-à-dire le vecteur mouvement 1205. Les valeurs des pixels du bloc 1203 sont alors recopiées dans le bloc 1207. 10 De façon similaire, il est possible de déterminer la position du bloc 1202 de l'image ELMt_1 à partir de la position du bloc 1208 de l'image ELMt et duvecteur mouvement 1204 associé à ce bloc. De même, les valeurs des pixels du bloc 1202 sont alors recopiées dans le bloc 1208. Tous les blocs de l'image ELMt sont ainsi traités. Ceci permet de 15 poursuivre les positions des erreurs accumulées. Comme l'image ELMt_1, l'image ELMt est définie de la façon suivante, ELM,_1 (x, y) = 0 blanc 1 gris où le gris représente des positions correspondant à des erreurs et où le blanc correspondant à des zones correctement décodées. 20 Comme mentionné précédemment, en référence à l'étape 1119 de la figure 11, les positions des erreurs identifiées par le décodeur doivent être ajoutées aux positions déterminées par le mécanisme de poursuite des erreurs. Dans la figure 12, les positions des erreurs 1210 identifiées par le décodeur sont mémorisées dans une image référencée 1209. Cette image est 25 additionnée, pixel par pixel, à l'image 1206 représentant les positions déterminées par le mécanisme de poursuite des erreurs (étape 1211). Il convient de noter ici que l'addition peut être considérée comme un OU logique. Le résultat de cette addition est l'image 1212 qui correspond à la cartographie des positions des erreurs à l'instant t, c'est-à-dire à l'image ELMt. 30 La figure 13 illustre l'étape 1112 de poursuite et d'atténuation des erreurs illustrée sur la figure 11. L'image 1300 correspond à l'image d'erreurs à 2910211 42 l'instant t-1, aussi appelée EMt_1 : il s'agit de l'erreur de prédiction, référencée 909 sur la figure 9, suivi au cours du temps. La façon de calculer l'image d'erreurs lors de la réception d'une image Intra est expliquée plus en détail par référence à la figure 15. Il est ici montré comment cette image d'erreurs est 5 suivie et atténuée au cours du temps. Les zones blanches correspondent ici aux zones dans lesquelles aucune erreur n'a été identifiée tandis que les zones grises 1301 correspondent aux zones dans lesquelles des erreurs ont été identifiées. Même si les zones grises sont représentées par une seule couleur pour des considérations de simplicité, elles peuvent prendre n'importe quelle 10 valeur. Le principe de poursuite, similaire à celui présenté précédemment par référence à la figure 12, a pour objet de déterminer une image d'erreurs EMt à l'instant t. L'image 1306 représente l'image d'erreurs EMt en cours d'évaluation tandis que l'image 1310 représente l'image d'erreurs EMt en fin 15 d'évaluation. Tous les pixels de l'image 1306 sont tout d'abord initialisés à zéro. Comme en ce qui concerne la représentation codée de l'image en cours de décodage, l'image 1306 est décomposée en blocs selon le même découpage que celui réalisé par le codeur vidéo. Un vecteur mouvement est 20 associé à chaque bloc de l'image en cours de décodage. Si l'image en cours de décodage est une image de type Intra, les vecteurs mouvement sont déterminés de la façon présentée ci-dessous, par référence à la figure 14. Les vecteurs mouvement associés aux blocs de l'image 1306 25 représentant l'image d'erreurs à l'instant t, issus de l'image en cours de décodage, permettent de déterminer des blocs correspondants dans l'image 1300 représentant l'image d'erreurs à l'instant M. Ainsi, pour chaque bloc de l'image EMt, un bloc de l'image EMt_1 lui est associé. Par exemple, le vecteur mouvement 1304 permet d'associer le bloc 1302 de l'image 1300 au bloc 1308 30 de l'image 1306. De même, le vecteur mouvement 1305 permet d'associer le bloc 1303 de l'image 1300 au bloc 1307 de l'image 1306. 2910211 43 Le contenu de chaque bloc de l'image 1306 est remplacé par le contenu du bloc qui lui est associé dans l'image 1300. Tous les blocs de l'image 1306 sont ainsi traités afin de déterminer une valeur à chaque pixel de l'image 1306. 5 Lorsque l'étape de poursuite est réalisée, une étape d'atténuation 1309 est effectuée. Pour cela, la valeur de chaque pixel de l'image 1306 est multipliée par un coefficient a de la façon suivante, EM,(x,v)=a.EM,(x,v) La valeur du coefficient a est déterminée de telle façon qu'elle 10 permette des transitions entre des images contenant des erreurs et des images n'en contenant pas, ou n'en contenant pas aux mêmes emplacements, c'est-à-dire notamment entre des images Inter et une image Intra. La transition est avantageusement réalisée sur une période inférieure à celle définie par deux images Intra consécutives. Si une image Intra est reçue toutes les N images, N 15 pouvant correspondre à dix ou quinze images, la transition doit, de préférence, être réalisée sur N images. En d'autres termes, si une image Intra est reçue à l'instant t, la transition doit être terminée à l'instant t+N-1. Si la période entre deux images Intra consécutives est grande, par exemple supérieure à 25, alors il est de préférence considéré que la période de transition ne doit pas excéder 20 12 images. Pour déterminer la valeur du coefficient a une variable AF peut être utilisée. La valeur de la variable AF est initialisée à la valeur N à chaque réception d'une image Intra et la valeur AF est décrémentée de un à chaque réception d'une image. La valeur du coefficient a peut alors être déterminée 25 selon la relation suivante, AF-1 a= AF Si la valeur du coefficient a est négative, la valeur du coefficient a est fixée à zéro et le procédé de poursuite et d'atténuation d'erreur est arrêté. La transition est considérée comme étant terminée. 30 Si l'image en cours de décodage est une image Intra, aucun vecteur mouvement n'est associé à chaque bloc de cette image. Il est donc nécessaire 2910211 44 dans ce cas de déterminer les vecteurs mouvement associés à chaque bloc de l'image en cours de traitement. Bien qu'alternativement il soit possible de calculer Ê(t) et non Ê(tù1) pour éviter ce problème, cette solution nécessite la prédiction de 5 l'image I(t) à la place de l'image P(t-1) et, par conséquent, le même problème se pose. Il convient de noter ici que, si Ê(t) est calculé, l'erreur est alors estimée par la comparaison de l'image Intra I(t) et l'image Inter P(t) prédite à partir de l'image Inter P(t-1) et des vecteurs mouvement. La figure 14 illustre la façon selon laquelle un champ de vecteurs 10 peut être déterminé en relation avec une image Intra. L'image 1400 est ici une représentation symbolique de l'image Inter P(t-1) telle que représentée sur la figure 9. Il est considéré que cette image est divisée en blocs, de la même façon que celle utilisée par l'encodeur vidéo, et qu'un vecteur mouvement est associé à chacun de ces blocs. Les vecteurs mouvement sont issus de la 15 représentation codée de l'image Inter P(t-1). Ce champ de vecteurs est projeté (étape 1401) sur l'image 1402 de la façon suivante : en considérant un bloc de l'image Inter P(t-1) dont les coordonnées du centre sont (x,y) et le vecteur mouvement (vx, vy), la projection est caractérisée par le même vecteur mouvement et par le bloc comprenant le point dont les coordonnées sont, 20 (x',Y')=(xùvx,yùvy) où l'image 1402 est également divisée en blocs selon le même découpage. Ainsi, par exemple, la projection du bloc 1405 de l'image 1400 permet d'obtenir le bloc 1406. Le bloc comprenant le centre du bloc 1406 est le 25 bloc 1407. Le vecteur mouvement associé au bloc 1405 est ensuite recopié et associé au bloc 1407. Une telle projection est avantageusement effectuée pour tous les blocs de l'image 1400. L'étape 1403 a ensuite pour objet de déterminer par interpolation un 30 vecteur mouvement à chaque bloc de l'image 1402 auquel aucun vecteur mouvement n'a été associé durant la projection. Un exemple d'interpolation 2910211 45 consiste à appliquer un filtre médian sur les vecteurs mouvement obtenus par projection. Par exemple, chaque bloc de l'image 1402 est considéré comme un pixel. L'image 1402 est ainsi considérée, pour l'application du filtre médian, comme une image de vecteurs à deux dimensions. A chaque pixel correspond 5 un vecteur mouvement à deux dimensions. Si aucun vecteur mouvement n'est attribué au bloc par le processus 1401 alors le vecteur mouvement est considéré comme nul. Le filtrage médian consiste à centrer une grille, par exemple de dimension 5x5, sur un pixel et à prendre la valeur médiane des 25 pixels de l'image 1402 qui sont englobés par la grille. L'image 1402 étant ici 10 composée de vecteurs à deux dimensions, la valeur médiane s'applique sur chaque composante. L'image 1404 obtenue comprend les vecteurs mouvement associés à chaque bloc de l'image Intra I(t) suivant une image Inter P(t-1) dont les vecteurs mouvement sont connus. 15 Naturellement, il existe d'autres méthodes permettant d'obtenir les vecteurs mouvement associés à une image Intra. La figure 15 illustre l'étape 1006 de la figure 10 ou 1110 de la figure 11 de génération d'une image d'erreurs. Cette étape correspond à l'étape d'évaluation de la différence, appelée Ê(tû1) et référencée 909 sur la figure 9, 20 entre l'image Inter P(t-1) et l'estimation P(t -1) de cette image. L'image 1500 est une représentation symbolique de l'image Inter P(t-1). L'image 1500 est ici divisée en blocs selon le même découpage que celui effectué par le codeur vidéo. Un vecteur mouvement est associé à chaque bloc. Les vecteurs mouvement 1502, correspondant aux vecteurs déterminés par le 25 codeur vidéo, sont extraits durant le décodage de l'image Inter P(t-1). L'image 1501 est une représentation de l'image Intra I(t) décodée. L'image 1507 représente la cartographie des positions des erreurs à l'instant t-1, aussi appelée ELMt_1. La zone grisée 1508 représente la position des erreurs poursuivies, comme expliqué par référence à la figure 12, tandis que la zone 30 blanche correspond à la zone dans laquelle aucune erreur n'a été détectée. La notation suivante peut être utilisée pour caractériser la position des erreurs, 46 2910211 ELM,_1 = 0 blanc 1 gris L'étape 1503 consiste en une projection permettant de déterminer une estimation P(t -1) , référencée 1504, de l'image Inter P(t-1). La valeur de chaque pixel de coordonnées (x,y) de l'image 1504 est estimée selon la relation 5 suivante, 13(t -1)(x, y) = {I(t)(xùvYùv) si ELM,_1(x, y) = 1 y si ELMt-~ (x, y) = 0 où y est une valeur particulière, par exemple y est égal à 1000. Dans cette relation, le vecteur mouvement (vx,vy) est le vecteur mouvement déterminé pour l'image Inter P(t-1) aux coordonnées (x,y). Si le 10 pixel de coordonnées (x,y) est situé dans un bloc B, le vecteur mouvement associé à ce bloc B est attribué au pixel de coordonnées (x,y). Lorsque l'estimation P(t -1) a été calculée, la différence Ê(t -1) entre l'image Inter P(t-1) et l'estimation P(t -1) de cette image est déterminée (étape 1505), 15 Ê(t -1)(x, y) = P(t -1)(x, y) ù P(t -1)(x, y) La différence n'est calculée que si P(t -1)(x, y) est différent de y. Si P(t -1)(x, y) est égal à y alors Ê(t -1)(x, y) est égal à zéro. La figure 16 représente une alternative au procédé décrit par référence à la figure 12 pour poursuivre les erreurs dans la cartographie des 20 positions des erreurs afin d'améliorer la transition entre des images contenant des erreurs et des images ne contenant pas d'erreur ou contenant des erreurs différentes. Selon la figure 12, la position des erreurs déterminées dans l'image 1206 est ajoutée à l'image 1209 représentant la position des erreurs 25 poursuivies. Comme il l'a été montré précédemment, la transition lente qui suit la prise en compte d'une image Intra nécessite l'estimation de la différence Ê(t -1) entre l'image Inter P(t-1) et l'estimation P(t -1) de cette image. 2910211 47 Cependant, si la prédiction P(t -1) de l'image P(t-1) est mauvaise, la différence Ê(tû1) sur laquelle est effectuée la poursuite et l'atténuation des erreurs pour les images suivantes risquent d'introduire des artefacts ne correspondant pas à de mauvaises dissimulations d'erreurs mais qui sont issus d'une mauvaise 5 prédiction. L'alternative illustrée par la figure 16 a pour objet de réduire ce risque. La solution consiste ici à ajouter (référence 1211 de la figure 12) la position des erreurs détectées (image 1209 de la figure 12) seulement si le mécanisme de dissimulation d'erreur est inefficace. 10 L'image décodée 1600 comprend une partie dans laquelle les données ont été perdues. A titre d'illustration, la partie dans laquelle les données ont été perdues est divisée en quatre zones 1601, 1602, 1603 et 1604. Un mécanisme de dissimulation d'erreur est appliqué sur chacune de ces zones. 15 La qualité de la dissimulation des erreurs est ensuite évaluée pour chacune des zones (étape 1605). Par exemple, la régularité du mouvement entre des images consécutives peut être utilisée pour déterminer la qualité de la dissimulation des erreurs. Si le mouvement est considéré comme régulier sur les images précédentes, il peut alors être considéré que la procédure de 20 dissimulation d'erreurs est de bonne qualité. A l'inverse, si le mouvement sur les images précédentes est quasi aléatoire, il peut être considéré que la procédure de dissimulation d'erreurs n'est pas efficace. Dans l'exemple présenté sur la figure 16, il est considéré que la qualité de la dissimulation d'erreur est bonne pour les zones 1602 et 1604. Par 25 conséquent, ces zones ne seront pas à l'origine d'une transition brutale lors de l'affichage d'une image Intra suivante. Par contre, il est considéré ici que la qualité de la dissimulation d'erreur n'est pas satisfaisante pour les zones 1601 et 1603. Ces zones risquent donc d'être à l'origine d'une transition brutale lors de l'affichage d'une image Intra suivante. 30 L'image d'erreurs est donc modifiée pour prendre en compte les positions des erreurs dont la dissimulation n'est pas satisfaisante. Ainsi, sur la figure 12 et selon le mécanisme illustré par référence à la figure 16, l'image 2910211 48 1209 ne représente plus toutes les erreurs détectées mais uniquement les erreurs détectées pour lesquelles la qualité de dissimulation n'est pas satisfaisante, comme illustré sur l'image 1606 par les zones 1607. Une solution pour évaluer la qualité de la dissimulation des erreurs 5 consiste à déterminer si la continuité entre les zones correspondant aux erreurs non dissimulées et les zones correspondant aux erreurs dissimulées est respectée ou non. Dans une variante de réalisation, la qualité de la prédiction de P(t -1) est tout d'abord évaluée pour déterminer les parties pour lesquelles la 10 prédiction est bonne. S'il est déterminé que la prédiction ne peut être réalisée de façon satisfaisante dans certaines parties de la zone où la dissimulation est appliquée, ces parties sont exclues de l'image d'erreurs. Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l'invention pourra appliquer des modifications 15 dans la description précédente. REVENDICATIONS 1. Procédé de dissimulation d'au moins une erreur de décodage induite par au moins une erreur de transmission, dans une séquence multimédia transmise à travers un réseau (125) entre un serveur (100) et un client (105), ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes, - obtention, suite à la détection de ladite au moins une erreur de transmission, d'un flux dit synchronisé (408, 806, 1103) lié à ladite séquence multimédia, ledit flux synchronisé comprenant des données de rafraîchissement ; - détermination de données caractéristiques (411, 819, 1106) de ladite au moins une erreur de décodage ; et - création d'un flux dit résultant (412, 813, 1117) selon une fonction dudit flux synchronisé et desdites données caractéristiques, l'influence d'au moins l'une desdites données caractéristiques, dans ladite fonction, diminuant progressivement avec le temps. 2. Procédé selon la revendication 1 selon lequel l'influence de ladite au moins une desdites données caractéristiques, dans ladite fonction, diminue progressivement avec le temps à partir de l'élément dudit flux synchronisé comprenant lesdites données de rafraîchissement. 3. Procédé selon la revendication 1 ou la revendication 2 comprenant en outre une étape de création d'un flux dit non synchronisé lié à ladite séquence multimédia, lesdites données caractéristiques étant propagées dans ledit flux non synchronisé. 4. Procédé selon la revendication 3 selon lequel un acquittement négatif est transmis dudit client audit serveur à la détection de ladite au moins une erreur de transmission. 2910211 50 5. Procédé selon la revendication 3 ou la revendication 4 selon lequel ledit flux résultant est créé selon une moyenne pondérée desdits flux synchronisé et non synchronisé. 6. Procédé selon l'une quelconque des revendications 3 à 5 5 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 flux synchronisé étant basé sur des données codées selon des redondances spatiales et lesdites données caractéristiques étant propagées dans ledit flux non synchronisé à travers des données codées selon des redondances 10 temporelles. 7. Procédé selon l'une quelconque des revendications 3 à 6 selon lequel 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 de décodage (422). 15 8. Procédé selon la revendication 7 comprenant en outre une étape de propagation desdites données caractéristiques selon lesdites informations de localisation reçues (421). 9. Procédé selon la revendication 8 selon lequel la création dudit flux non synchronisé est basée sur des données de référence, lesdites données 20 de référence étant déterminées selon ladite étape de propagation desdites données caractéristiques. 10. Procédé selon la revendication 8 ou la revendication 9 comprenant en outre des étapes de codage (415) et de transmission (417) dudit flux résultant. 25 11. Procédé selon la revendication 10 selon lequel le codage dudit flux résultant est basé sur des données de référence et sur le résultat de ladite fonction desdits flux synchronisé et non synchronisé, lesdites données de référence étant déterminées selon ladite étape de propagation desdites données caractéristiques. 30 12. Procédé selon l'une quelconque des revendications 3 à 6 selon lequel ledit procédé est implémenté dans ledit client. 2910211 51 13. Procédé selon la revendication 12 comprenant en outre une étape de réception de données pour propager lesdites données caractéristiques (804). 14. Procédé selon la revendication 12 ou la revendication 13 selon 5 lequel des données de référence sont utilisées pour déterminer les données dudit flux non synchronisé à un instant donné, lesdites données de référence étant les données dudit flux résultant à l'instant précédent. 15. Procédé selon l'une quelconque des revendications 3 à 11 caractérisé en ce qu'il comprend en outre une étape de masquage de ladite au 10 moins une erreur de décodage dans ledit flux non synchronisé, ladite étape de masquage étant mise en oeuvre dans ledit client (504, 509) et dans ledit serveur (523, 526), le masquage mis en oeuvre dans le serveur reproduisant le masquage effectué dans le client. 16. Procédé selon la revendication 1 ou la revendication 2 15 caractérisé en ce que ladite étape de détermination de données caractéristiques comprend une étape d'estimation (908) de ladite au moins une erreur de décodage, lesdites données caractéristiques comprenant ladite estimation de ladite au moins une erreur de décodage. 17. Procédé selon la revendication 16 selon lequel ladite étape 20 d'estimation de ladite au moins une erreur de décodage comprend les étapes suivantes, - prédiction d'un élément de ladite séquence multimédia, appelé élément non erroné, à partir d'un élément dudit flux synchronisé comprenant au moins une desdites données de rafraîchissement ; et, 25 -comparaison dudit élément non erroné avec l'élément décodé correspondant, appelé élément erroné, ledit élément erroné comprenant ladite au moins une erreur de décodage. 18. Procédé selon la revendication 16 selon lequel ladite étape d'estimation de ladite au moins une erreur de décodage comprend les étapes 30 suivantes, 2910211 52 - prédiction d'un élément de ladite séquence multimédia, appelé élément erroné, à partir d'un élément comprenant ladite au moins une erreur de décodage ; et, - comparaison dudit élément erroné avec l'élément correspondant 5 dudit flux synchronisé, appelé élément non erroné, ledit élément non erroné comprenant au moins une desdites données de rafraîchissement. 19. Procédé selon l'une des revendications 17 et 18 comprenant en outre une étape d'évaluation de la qualité de ladite prédiction. 20. Procédé selon l'une quelconque des revendications 16 à 19 10 selon lequel lesdites données caractéristiques comprennent une information représentative de la propagation de ladite au moins une erreur de décodage dans la séquence multimédia. 21. Procédé selon la revendication précédente selon lequel ledit flux résultant est créé en reportant ladite estimation de ladite au moins une erreur 15 de décodage dans ledit flux synchronisé, l'influence de ladite estimation de ladite au moins une erreur de décodage diminuant progressivement avec le temps (911). 22. Procédé selon la revendication précédente selon lequel ladite estimation de ladite au moins une erreur de décodage est reportée dans une 20 partie seulement d'au moins un élément dudit flux synchronisé, ladite partie étant déterminée à partir de ladite information représentative de la propagation de ladite au moins une erreur de décodage dans ladite séquence multimédia (911). 23. Procédé selon l'une quelconque des revendications 16 à 22 25 caractérisé en qu'il comprend une étape préalable de masquage de ladite au moins une erreur de décodage et une étape d'évaluation de la qualité dudit masquage, ladite étape de détermination de données caractéristiques n'étant mise en oeuvre que si ladite qualité estimée est inférieure à un seuil prédéterminé. 30 24. Procédé selon l'une quelconque des revendications précédentes 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. 2910211 53 25. 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. 26. 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 à 24. 27. Dispositif de dissimulation d'au moins une erreur de décodage 10 induite par au moins une erreur de transmission, dans une séquence multimédia transmise à travers un réseau (125) entre un serveur (100) et un client (105), ce dispositif étant caractérisé en ce qu'il comprend les moyens suivants, - moyens pour obtenir, suite à la détection de ladite au moins une 15 erreur, un flux dit synchronisé lié à ladite séquence multimédia, ledit flux synchronisé comprenant des données de rafraîchissement ; - moyens pour déterminer des données caractéristiques de ladite au moins une erreur de décodage ; et, - moyens pour générer un flux dit résultant selon une fonction dudit 20 flux synchronisé et desdites données caractéristiques, l'influence d'au moins l'une desdites données caractéristiques diminuant avec le temps. 31. Dispositif selon la revendication précédente comprenant en outre des moyens pour créer un flux dit non synchronisé lié à ladite séquence multimédia, lesdites données caractéristiques étant propagées dans ledit flux 25 non synchronisé. 32. Dispositif selon la revendication précédente selon lequel lesdits moyens pour générer ledit flux synchronisé comprennent un encodeur. 33. Dispositif selon la revendication 28 ou la revendication 29 selon lequel lesdits moyens pour générer ledit flux non synchronisé comprennent un 30 décodeur. 2910211 54 31. Dispositif selon l'une quelconque des revendications 28 à 30 comprenant en outre des moyens de codage adaptés à coder ledit flux résultant. 32. Serveur comprenant le dispositif selon l'une quelconque des 5 revendications 28 à 31. 33. Dispositif selon la revendication 27 ou la revendication 28 selon lequel lesdits moyens pour générer ledit flux synchronisé comprennent un décodeur. 34. Dispositif selon la revendication 28 comprenant en outre des 10 moyens pour recevoir en parallèle deux flux distincts. 35. Dispositif selon la revendication 27 comprenant en outre des moyens pour estimer ladite au moins une erreur de décodage. 36. Dispositif selon la revendication précédente comprenant en outre des moyens pour prédire un élément (905) de ladite séquence multimédia, 15 antérieur à la détection de ladite au moins une erreur de transmission, à partir dudit flux synchronisé. 37. Dispositif selon la revendication 35 comprenant en outre des moyens pour prédire un élément de ladite séquence multimédia, postérieur à la réception desdites données de rafraîchissement, ledit élément comprenant 20 ladite au moins une erreur de décodage. 38. Dispositif selon la revendication 36 ou la revendication 37 comprenant en outre des moyens pour comparer ledit élément prédit et l'élément correspondant décodé. 39. Dispositif selon l'une des revendications 35 à 38 comprenant en 25 outre des moyens pour estimer la qualité dudit élément prédit. 40. Dispositif selon l'une quelconque des revendications 35 à 39 comprenant en outre les moyens suivants, - moyens pour masquer ladite au moins une erreur de décodage ; et, 30 - moyens pour évaluer la qualité dudit masquage.