Brevet FR2958472A1 — publié le 20111007

La présente invention concerne un procédé et un dispositif de détection de transition dans la loi de distribution des pertes de paquets transmis sur un réseau de communication et un procédé et un dispositif de protection de ces données transmises. Elle s'applique, en particulier, à une adaptation d'un taux de redondance, notamment d'un taux de codes de correction d'erreur, dans une transmission de paquets sur un réseau, filaire ou non, soumis à des pertes de paquet. Pour tenir compte de ces pertes, des codes de correction d'erreur (ou FEC, pour « Forward Error Correction ») peuvent être utilisés. Un code correcteur d'erreur permet de générer des paquets de redondance à partir de paquets de données pour pouvoir restaurer des paquets reçus erronés ou perdus. La restauration ne pouvant aboutir que si le taux de pertes ou d'erreurs reste inférieur à une certaine limite, dépendante du taux de redondance générée. En conséquence, il est nécessaire de déterminer un bon niveau de redondance. Un niveau trop faible correspond à une trop faible protection des données. En revanche, un niveau trop élevé résulte en un encombrement inutile du réseau par les paquets de redondances. Dans la suite, on ne considère que les pertes de paquets, car les paquets reçus erronés sont écartés et donc considérés également comme des 25 paquets perdus. Pendant une transmission de données, le taux de perte peut varier fortement d'un moment à un autre. Aussi, pour trouver le niveau de redondance adéquat et l'adapter rapidement, il est nécessaire de détecter rapidement les fortes variations du taux de perte. 30 Le document US 2006/0251011 décrit un algorithme basé sur le protocole TCP (acronyme de « Transmission Control Protocol » pour protocole de contrôle de transmission) tolérant aux pertes. Les paquets de codes de correction d'erreur sont additionnés aux données dans une fenêtre de dimension W du protocole TOP. Pour calculer le ratio entre les paquets de codes de correction d'erreur et les paquets de données dans la fenêtre courante, un taux de perte est extrapolé en fonction de la précédente fenêtre de dimension W. Cependant, cette extrapolation ne reflète pas les variations réelles de taux de perte et l'adaptation du taux de redondance au taux de perte n'est donc pas assez rapide. Le document PCT/US01/45222 propose d'adapter la protection par code de correction d'erreur à la durée des périodes de rafale de pertes ou « burst ». Ces périodes de « burst » sont en relation avec un haut niveau de pertes. Cependant, les périodes de « burst » sont, dans ce document, détectées dans le domaine analogique. Cette méthode ne peut donc être appliquée dans le cas des paquets IP/RTP (acronyme de Internet Protocol/Real-Time Transport Protocol pour protocole Internet / protocole de transport temps réel). Le document US 7,328,394 décrit un module qui adapte le niveau de redondance à un historique constitué de fenêtres de dimension fixe consécutives. Un niveau de redondance est testé. Ce niveau de redondance permet de calculer un taux de perte pour chacune des fenêtres successives en simulant une correction par code de correction d'erreur. Le taux de perte final est obtenu en pondérant le taux de perte de chaque fenêtre avec un poids qui est inversement proportionnel à l'âge de la fenêtre. Le niveau de redondance par code de correction d'erreur qui mène au taux de perte final est sélectionné. Cependant, la performance de ce système n'est pas optimale puisqu'il revient à une extrapolation d'un historique. La présente invention vise notamment à remédier à ces inconvénients. A cet effet, selon un premier aspect, la présente invention vise un procédé de détection de transition entre deux états d'un réseau de communication correspondant à des taux de pertes différents de données émises, caractérisé en ce qu'il comporte : - une étape de détermination d'une probabilité de transition et - une étape de détermination de l'existence d'une transition en fonction de ladite probabilité. Ainsi, la présente invention propose une solution pour détecter rapidement les variations ou transitions de distribution de pertes et, en conséquence, déterminer des périodes de temps homogènes en termes de lois de distribution de pertes. Cette détection trouve des applications diverses, par exemple : - pour évaluer les conditions de transmission sur un réseau, et - pour adapter un niveau de redondances en fonction de la loi de distribution déterminée pour une période de temps homogène. Selon des caractéristiques particulières, au cours de l'étape de détermination d'une probabilité, on détermine la probabilité de transition en fonction des pertes de données survenant après la dernière transition détectée. Ainsi, on détecte les transitions de manière itérative. En effet, chaque transition détectée permet de détecter la transition suivante puisque la détermination de probabilité de transition est effectuée sur la base des pertes survenues depuis la transition précédente. Selon des caractéristiques particulières, le réseau de communication véhiculant des paquets de données, l'étape de détermination d'une probabilité de transition comporte : - une étape de détection de paquets perdus parmi les paquets de données 20 émis; - une étape de détermination de distances représentatives d'écarts entre les numéros de séquence desdits paquets perdus, et - une étape de calcul d'une probabilité de transition entre un premier ensemble de distances et un second ensemble de distances choisies 25 parmi les distances déterminées. La détermination de probabilité est ainsi simplifiée par le fait d'utiliser des distances représentatives d'écarts entre numéros de séquences, qui sont faciles à déterminer. Selon des caractéristiques particulières, le réseau de communication 30 véhiculant des paquets de données, au cours de l'étape de détermination d'une probabilité de transition, on détermine, pour une pluralité de paquets candidats émis depuis la dernière transition détectée, une probabilité qu'une transition ait lieu au moment de la transmission d'un de ces paquets candidats. On sépare ainsi les événements antérieurs et postérieurs à la transmission de ce paquet candidat, ce qui évite d'avoir à le considérer dans l'une puis dans l'autre des distributions. Selon des caractéristiques particulières, pour déterminer la probabilité de transition, on sélectionne un paquet candidat pour lequel la probabilité constitue un extremum des probabilités correspondant aux différents paquets candidats et on compare la probabilité correspondant au paquet candidat sélectionné à une valeur limite prédéterminée. Selon des caractéristiques particulières, au cours de l'étape de détermination d'une probabilité de transition, on détermine une probabilité que deux lois de distributions de pertes différentes existent de part et d'autre du paquet candidat, ledit extremum étant un maximum. Selon des caractéristiques particulières, au cours de l'étape de détermination d'une probabilité de transition, on détermine une probabilité que la même loi de distributions de pertes existe de part et d'autre du paquet candidat, ledit extremum étant un minimum. Grâce à chacune de ces dispositions, on détermine non seulement l'existence d'une transition entre les lois de distribution de pertes mais aussi l'instant auquel la transition est supposée avoir eu lieu, ce qui permet les itérations discutées plus haut. Selon des caractéristiques particulières, au cours de l'étape de détermination d'une probabilité, on effectue un test de Wilcoxon. Selon un deuxième aspect, la présente invention vise un procédé de protection de données contre des pertes lors de leur transmission sur un réseau de communication, caractérisé en ce qu'il comporte : - une étape de détection d'une transition entre taux de pertes de paquets objet de la présente invention telle que succinctement exposée ci- dessus, - une étape de détermination d'un taux de redondance basé uniquement sur la période de temps écoulée depuis la dernière transition, et - une étape de génération de données redondantes dont le taux est fonction du taux de redondance déterminé au cours de l'étape de détermination. Le procédé objet de la présente invention est plus performant que les procédés de l'état de la technique, parce que la segmentation de l'historique est effectuée dans des régions homogènes, en fonction de détections de transitions. La dernière région détectée a une distribution statistique homogène et les paramètres des codes de correction d'erreur sont déterminés seulement en fonction de cette dernière région. En conséquence, les paramètres des codes de correction d'erreur correspondent à l'état le plus récent du réseau et non à une pondération arbitraire. En effet, le calcul des redondances des codes de correction d'erreur est meilleur s'il prend en compte les pertes résultant de la dernière variation du taux d'erreur que s'il prend en compte des pertes provenant de différents taux de perte. Ainsi, l'adéquation entre la protection des données et l'occupation de la bande passante est meilleure. Selon des caractéristiques particulières, lesdites redondances comportent des codes de correction d'erreur. Selon des caractéristiques particulières, lesdits paquets sont des paquets IP/RTP (acronyme de « Internet Protocol / Real-time Transport Protocol »). Selon des caractéristiques particulières, au cours de l'étape de détermination du taux de redondance, ledit taux de redondance est déterminé par un client et transmis à un serveur de données. Selon des caractéristiques particulières, au cours de l'étape détermination du taux de redondance, le taux de redondance est déterminé en fonction du taux de perte maximum déterminé pour une période de temps séparant deux transitions détectées. Selon des caractéristiques particulières, au cours de l'étape de détermination du taux de redondance, pour chacune d'une pluralité de valeurs candidates de taux de redondance, on détermine un taux de perte résiduel après restauration des données réellement perdues depuis la dernière transition par simulation de la mise en oeuvre de la valeur de taux de redondance candidate et on compare ce taux de perte résiduel à une valeur cible. Selon un troisième aspect, la présente invention vise un dispositif de détection de transition entre deux états d'un réseau de communication correspondant à des taux de pertes différents de données émises, caractérisé en ce qu'il comporte : - un moyen de détermination d'une probabilité de transition et - un moyen de détermination de l'existence d'une transition en fonction de ladite probabilité. Selon un quatrième aspect, la présente invention vise un dispositif de protection de données contre des pertes lors de leur transmission sur un réseau de communication, caractérisé en ce qu'il comporte : - un dispositif de détection d'une transition entre taux de pertes de paquets tel que succinctement exposé ci-dessus, - un moyen de détermination d'un taux de redondance basé uniquement sur la période de temps écoulée depuis la dernière transition, et - un moyen de génération de données redondantes dont le taux est fonction du taux de redondance déterminé au cours de l'étape de détermination. Selon un cinquième aspect, la présente invention vise un programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en oeuvre du procédé objet de la présente invention, tel que succinctement exposé ci-dessus. Selon un sixième aspect, la présente invention vise un support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé objet de la présente invention, tel que succinctement exposé ci-dessus. Les avantages, buts et caractéristiques particulières de ces dispositifs, de ce programme et de ce support d'informations étant similaires à ceux des procédés objets de la présente invention, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre faite, dans un but explicatif et nullement limitatif, en regard des dessins annexés, dans lesquels : - la figure 1 représente, schématiquement, deux types de pertes de données pouvant survenir lors de la transmission de données depuis un serveur jusqu'à un client, - la figure 2 représente, dans un schéma bloc, différentes fonctions effectuées par des éléments d'un serveur et d'un client, pour la transmission de paquets de données, - la figure 3 représente, schématiquement, un mode de réalisation particulier d'un dispositif objet de la présente invention, - la figure 4 représente, schématiquement, une succession de paquets émis par un serveur, - la figure 5 représente, sous forme d'un logigramme, des étapes mises en oeuvre dans un mode de réalisation particulier du procédé objet de la présente invention, - la figure 6 représente, schématiquement, des contenus de mémoires pour la mise en oeuvre des étapes illustrées en figure 5, - la figure 7 représente, sous forme d'un logigramme, des étapes mises en oeuvre dans une étape illustrée en figure 5, - la figure 8 représente, schématiquement, un contenu de mémoire pour la mise en oeuvre des étapes illustrées en figure 7, et - la figure 9 représente des éléments mis en oeuvre pour la détermination d'un taux de pertes résiduel après correction d'erreurs. Les figures 1 et 2 illustrent un contexte dans lequel la présente invention peut être utilisée. Dans ce contexte, un flux de données codées est transmis sur un réseau entre un dispositif émetteur et au moins un dispositif destinataire. Le flux de données est, par exemple, audio ou vidéo. On suppose ici que les données sont des données vidéo. Ces données sont compressées par un encodeur vidéo 130 (figure 2) pour former le flux de données. Ce flux est transmis par le serveur 100 sous forme de paquets de données qui sont envoyés à chaque client 101 destinataire. Dans les figures 1 et 2, un seul client est représenté. Le serveur 100 transmet les données sous la forme de paquets IP/RTP 103 sur un premier lien de réseau 102. Ce premier lien 102 peut être filaire ou non filaire. On suppose ici qu'il est filaire. Les liens du réseau, de manière usuelle, sont connectés à des routeurs 106 composés d'une queue (mémoire tampon) qui conserve les paquets reçus par le routeur avant de les retransmettre sur un autre lien 105. En figure 1, le deuxième lien 105 est supposé être un lien sans fil. Si la capacité de transmission du deuxième lien 105 est plus faible que la capacité de transmission du premier lien 102, des paquets IP peuvent être perdus en cas de saturation de la queue du routeur 106. Par exemple, le paquet 108 peut être perdu ainsi. De telles pertes sont appelés « pertes de congestion » (en anglais « congestion losses »). Du fait du haut niveau d'occupation de la queue dans le routeur 106, la durée de transfert d'un paquet est alors accrue. En cas de congestion, la durée globale de transmission, ou ROTT (pour « Relative One-way Trip Time »), d'un paquet entre le serveur 100 et le client 101 est augmentée. Par ailleurs, le lien non filaire 105 est sujet à des interférences 109. Par exemple, des micro-ondes peuvent polluer le réseau sans fil. Dans ce cas, des paquets, par exemple le paquet 110, peuvent être perdus. La durée entre deux pertes dues aux interférences est usuellement plus élevée que la durée entre deux pertes de congestion. Il est cependant possible que les pertes soient proches, voire consécutives. En figure 1, le lien non filaire 105 est connecté, par l'intermédiaire d'un routeur 107, à un lien filaire 104, à travers lequel les paquets sont transmis à un client 101. Si aucune protection des données n'est prévue, les paquets vidéo non reçus ne peuvent pas être restaurés par le client 101. Du fait de ces absences, la qualité de la vidéo est mauvaise au niveau du client 101. Il est donc préférable que le serveur vidéo 100 ajoute des données redondantes, notamment grâce à des codes de correction d'erreur FEC, aux paquets de données vidéo. Ces paquets de données redondantes servent à restaurer les paquets de données vidéo manquant. En figure 2, les paquets sont constitués par un paquetiseur (en anglais « packetizer ») 131 à partir d'un flux 101b encodé par l'encodeur 130. Des paquets additionnels de codes de correction d'erreur FEC sont calculés par un module 131b. Ces paquets peuvent être construits par un algorithme de Reed-Solomon, ou un algorithme « XOR », avant d'être encapsulés comme des paquets RTP communs par le paquetiseur 131. Pour connaître le détail de la génération de paquets, le lecteur pourra se reporter aux exemples connus sous les noms de RFC-2733 et RFC-5109. Les paquets de réseau formés par le paquetiseur 131 sont mémorisés dans une mémoire tampon 132. Dans le contexte illustré en figures 1 et 2, le réseau de communication reliant le serveur 100 au client 101 est un réseau à commutation de paquets. Le protocole utilisé pour le transport des données dans ce type de réseau est, par exemple, RTP (pour "Real-time Transport Protocol" ou protocole de transport temps-réel). De manière connue en soi, chaque paquet de données comporte deux parties. La première partie correspond à des données représentant le début du paquet ou un en-tête de réseau, par exemple un en-tête conforme au protocole RTP. La deuxième partie correspond aux données utiles (ou « payload » pour charge utile) comportant les données du flux de données à transmettre. L'en-tête de réseau comporte de l'information concernant, par exemple, le numéro de séquence du paquet de réseau, c'est-à-dire un index du paquet indiquant son rang d'émission (aussi appelé numéro de séquence ou « sequence number » pour un paquet RTP). Un module d'ordonnancement (en anglais « scheduler ») 134 adapte le taux de transmission de paquets, ou débit, en fonction d'une largeur de bande passante cible donnée par un module d'analyse de réseau 133. Le module d'analyse 133 analyse les numéros de séquence de paquets de réseau retournés par un client 101, appelés paquets « RTCP/AVPF » (pour « Real- Time Transport Control Protocol/ Audio-Visual Profile with Feedback »). Par exemple, le taux de pertes de congestion peut être transmis par le client 101 par l'intermédiaire de paquets RTCP et utilisé par le module d'analyse 133. En fonction de cette analyse, le débit de transmission de paquet est déduit et, en conséquence, la largeur de bande passante est estimée. Si le nombre de paquets perdus du fait d'événements de congestion est élevé, le débit de transmission est réduit. Cette information concernant le débit de transmission ou largeur de bande B(t) est transmis au scheduler 134. Ainsi, en fonction de l'analyse du réseau, on fournit un contrôle de la congestion de réseau, en adaptant le débit de transmission de paquets. Cette analyse permet d'optimiser le débit de paquets sortant et, en conséquence, d'utiliser la largeur de bande du réseau efficacement, en réduisant le risque de congestion dans le réseau. Une carte de réseau 136 effectue la tâche de transmettre les paquets de réseau sur le réseau de communication. Les paquets de réseau sont adaptés au format utilisé sur le réseau. Par exemple, dans le cas d'un réseau mettant en oeuvre le protocole IP (« Internet Protocol »), les paquets sont formés en paquets UDP (pour « User Datagram Protocol ») de même qu'en paquets IP. Les paquets RTCP/AVPF peuvent aussi transporter de l'information concernant les paquets de redondance FEC pour le module 131b de construction de paquets de redondance FEC. Le taux de compression appliqué par l'encodeur 130 est contrôlé par des moyens 137 de contrôle de taux de compression, selon le débit de transmission des paquets et le niveau de remplissage de la mémoire tampon 132. Un module de mesure de taux 135 mesure le débit de transmission du réseau au niveau de la carte de réseau 136. Cette mesure B'(t) est transmise aux moyens de contrôle de taux de compression 137. Ainsi, si la largeur de bande passante disponible est soudainement réduite, la carte de réseau 136 transmet les paquets au réseau plus lentement et le taux de compression est adapté au nouveau débit de transmission. Cette nouvelle valeur de débit de transmission, ou largeur de bande B'(t) est mesurée par le module de mesure 135 et transmise aux moyens de contrôle de taux de compression 137, qui agit sur l'encodeur vidéo 130 pour accroître ou décroître la taille du flux de données 101b généré. On note que, lorsque la valeur de la largeur de bande disponible est constante, la valeur de la largeur de bande B(t) estimée par le module d'analyse de réseau 133 est similaire à la largeur de bande B'(t) mesurée par le module de mesure de taux 135. Un client 101 reçoit les paquets de réseau du réseau de communication et les conserve dans une mémoire tampon 140. Un module de détection de pertes 147 analyse les numéros de séquence de chacun des paquets RTP reçus pour identifier les paquets perdus. Les paquets sont dépaquetisés par un dépaquetiseur 141. « Dépaquetiser » un paquet consiste à retirer l'en-tête de paquet et à assembler les données utiles des paquets pour former un nouveau flux de données que le client 101 conserve dans une mémoire tampon 142. Le flux de données est ensuite décodé par un décodeur 143 et les images de la vidéo sont obtenues. Ces images sont stockées dans une mémoire tampon 144. Si des paquets de réseau sont perdus, un module de restauration d'erreur (« error concealment ») 145 réalise une interpolation pour fournir les donnés manquantes d'une image. Cette méthode de correction d'image peut être, par exemple, une interpolation spatiale, lorsque le type d'image est INTRA et une interpolation temporelle lorsque le type d'image est INTER. Une fois cette méthode mise en oeuvre, l'image est affichée par des moyens d'affichage 146. Les paquets RTP FEC sont utilisés pour corriger les paquets de données qui ont été détectés comme perdus. L'en-tête RTP des paquets FEC est supprimé par le dépaquétiseur 141 et le contenu de ces paquets est utilisé en coopération avec certains paquets RTP de données reçus pour restaurer des paquets perdus. La plupart des paquets RTP de données perdus sont donc corrigés. Le module de détection de perte 147 analyse les paquets conservés dans la mémoire tampon 140 pour détecter si des paquets ont été perdus pendant la transmission sur le réseau. Comme décrit plus haut, la perte d'un paquet est détectée par analyse des numéros de séquence des paquets reçus. Lorsque des paquets perdus sont détectés, un module d'analyse d'erreur 148 est mis en oeuvre. Ce module 148 participe particulièrement à l'implémentation de la présente invention. Le rôle de ce module d'analyse 148 est de stocker les numéros de séquence des paquets RTP perdus et d'envoyer cette liste de numéros de séquence à un module 149. Le module 149 reçoit une liste de numéros de séquence, détermine un taux de pertes et calcule un niveau de redondances FEC qui correspond à ce taux de perte. Le niveau de redondance est transmis au module d'analyse 133 du serveur vidéo 100 dans des paquets RTCP/AVPF 150 et est utilisé par le module 131b du serveur 100 pour calculer les redondances FEC adéquates (calcul des paquets redondants). On note que, pour les paquets RTP, le numéro de séquence, codé dans deux octets, se trouve entre « 0 » et « 65535 ». On suppose, dans la suite de la description, que le numéro de séquence peut prendre toute valeur entre 0 et l'infini. Ainsi, si le client 101 reçoit un numéro de séquence égal à « 65535 » puis un numéro de séquence égal à « 0 », il traduit le second en 65536. On note que la liste de numéros de séquence transmise peut être très importante. De plus, les numéros de séquence des paquets perdus peuvent être issus de différents régimes de pertes intervenant à différents instants. Préférentiellement, on ne transmet au module 149 que les numéros de séquence qui correspondent à la période de temps en cours qui présente un taux de perte homogène. Dans des modes de réalisation de la présente invention, le module 148 réalise cette tâche en sélectionnant, à partir d'une liste de paquets perdus, les paquets qui correspondent à la même distribution statistique sur un période temporelle donnée. Dans le mode de réalisation illustré en figure 2, le module 148 détermine rapidement les transitions entre des distributions statistiques de pertes et, en conséquence, détermine des périodes de temps homogènes en terme de lois de distribution de pertes. Cette fonctionnalité trouve des applications diverses, par exemple : - pour évaluer les conditions de transmission sur un réseau, et - pour adapter le niveau de redondances FEC en fonction de la loi de distribution déterminée pour une période de temps homogène. Dans le mode de réalisation illustré en figure 2, l'adaptation du taux de redondance est réalisé par le serveur 100, en fonction d'un retour d'information de la part d'un client 101. On note cependant que, dans des modes de réalisation, l'adaptation est effectuée sur la base d'une des précédentes périodes de temps homogènes, notamment celle présentant le taux de perte maximum. La figure 3 représente un mode de réalisation particulier d'un dispositif de traitement de flux de données codées objet de la présente invention. Dans ce mode de réalisation, le dispositif est un serveur de média ou un client de média 310. Le dispositif 310 comporte une interface de communication 312 connectée à un réseau 313 et adapté à recevoir des données numériques à traiter. Le dispositif 310 comporte aussi des moyens de stockage 308, tels qu'un disque dur, un lecteur 309 de support amovible 305. Le support amovible 305 peut être une disquette, un compact disque (CD-ROM), un disque numérique vidéo (DVD), une carte à mémoire ou un périphérique USB, par exemple. Le support amovible 305 et les moyens de stockage 308 peuvent conserver des données traitées ainsi qu'au moins un programme implémentant le procédé objet de la présente invention, une fois lus par le dispositif 310. En variante, chaque programme permettant au dispositif 310 d'implémenter le procédé objet de la présente invention peut être conservé et lu dans une mémoire non re-inscriptible 302 (appelée ROM pour "Read Only Memory"). En variante, chaque programme peut être reçu du réseau de communication 313, pour est stocké comme exposé ci-dessus. Le dispositif 310 possède un écran d'affichage 304 pour afficher les données traitées et servir d'interface avec l'utilisateur, par exemple pour que ce dernier sélectionne des données à traiter, avec un clavier 314 ou tout autre moyen, notamment dispositif de pointage. L'unité centrale de traitement 300 (appelée « CPU » en figure 3), exécute les instructions de chaque programme implémentant le procédé objet de la présente invention. Par exemple, l'unité centrale 300 réalise les étapes illustrées en figure 5. Lors de la mise sous tension, chaque dit programme est transféré depuis une mémoire non volatile, par exemple la mémoire 302, dans une mémoire à accès aléatoire (« RAM ») 303, qui comporte alors le code exécutable ainsi que les registres pour stocker les variables nécessaires pour implémenter la présente invention. D'une manière générale, un support d'information, qui peut être lu par un ordinateur ou un microprocesseur, intégré ou non dans le dispositif, et qui peut être partiellement ou intégralement amovible, conserve un programme implémentant le procédé objet de la présente invention. Le bus de communication 301 permet la communication entre les différents éléments du dispositif 310 qui lui sont relies. La représentation de ce bus 301 n'est pas limitative et, en particulier, l'unité centrale 300 peut communiquer des instructions à tout élément du dispositif 310, directement ou par l'intermédiaire d'autres éléments du dispositif 310. Le dispositif 310 comprend, en outre, un codec (ou codeur-décodeur) 306, par exemple sous la forme d'une puce (« chip ») standard, utilisée par l'unité centrale 300 d'une manière conventionnelle par l'intermédiaire du bus 301, pour encoder ou décoder des données reçues du réseau 313 ou d'un capteur d'image électronique 307, par exemple une caméra numérique. La figure 4 illustre la fonction du module 148. Dans cette figure 4, une liste de numéros de séquence correspondant aux paquets envoyés est représentée. Cette liste commence avec un numéro de séquence 190 et s'achève avec un numéro de séquence 217. Ces numéros de séquence correspondent soit à des paquets 402 reçus par le client, référencés par un « R », comme, par exemple, le numéro 202, soit à des paquets 403 perdus sur le réseau, référencés par un « L », comme, par exemple, le numéro 201. Le module 148 ne conserve en mémoire que les numéros de séquence relatifs à des pertes de paquet. Cependant, dans un but explicatif, les numéros de séquence tant des paquets reçus que des paquets perdus sont représentés en figure 4. En figure 4, on a considéré que les pertes sont issues de deux distributions de pertes. La première distribution de pertes 230 correspond aux paquets dont les numéros vont du numéro 190 et 202. La deuxième distribution de pertes 235 correspond aux paquets dont les numéros vont du numéro 203 et 217. Pour la première distribution de pertes 230, le taux de perte est plus élevé que pour la deuxième distribution de pertes 235. La différence entre numéros de séquence de paquets perdus successifs, illustrée par les flèches 404 et 405 est, en conséquence, plus faible pour la première loi de distribution 230 que pour la deuxième loi de distribution 235. Il existe donc une transition 406 entre deux lois de distribution de pertes. La fonction du module 148 est de détecter cette transition 406 aussi rapidement que possible. Cela permet de ne transmettre que les numéros de paquets perdus entre 203 et 218 au module 149. La précision du niveau de redondances FEC calculées par le module 149 est alors meilleure parce que seules les pertes correspondant à la dernière loi de distribution de perte 235 sont utilisées. La figure 5 représente, sous forme d'un logigramme, des étapes de mises en oeuvre des données illustrées en figure 4. Les figures 5 et 6 détaillent, en particulier, la manière dont le niveau de redondance FEC est calculé au niveau du module 149 du client 101. Les figures 5 et 6 montrent comment les transitions sont détectées pour sélectionner l'ensemble de paquets perdus utilisé pour calculer les redondances FEC. Au cours d'une étape 500, un paquet RTP est reçu par le client 101. Dès la réception de ce paquet, chaque éventuel paquet perdu depuis la précédente réception d'un paquet est détecté. Par exemple, si les paquets ayant les numéros de séquence 10000 et 10002 sont reçus, on en déduit que le paquet dont le numéro de séquence est 10001 est perdu, au cours d'une étape 501. Au cours d'une étape 502, on extrait le numéro de séquence de chaque paquet perdu. Dès qu'un numéro de paquet perdu est fourni, il est stocké en mémoire tampon au cours d'une étape 507. Parallèlement, au cours d'une étape 503, on détermine la différence de numéros de séquence entre chaque paquet perdu et paquet perdu qui le précède. Cette différence est mise en mémoire tampon au cours d'une étape 504. Au cours d'une étape de déclenchement 505, on détermine quand un algorithme de détection de transition doit être lancé. Ce déclenchement peut être basé soit sur une horloge (par exemple, l'algorithme de détection de transition est lancé toutes les dix millisecondes), soit sur un événement extérieur (par exemple un nouveau numéro de séquence de paquet perdu a été mis en mémoire tampon). Lorsque le déclenchement s'effectue, au cours d'une étape 506, on tente de détecter une transition dans la loi de distribution de pertes de paquets en fonction des différences de numéros de séquence entre paquets perdus successifs. La détection d'une transition est préférablement effectuée sur la base des seules différences entre numéros de séquence postérieurs à la dernière détection de transition. La figure 6 illustre cette manière de procéder. La mémoire tampon 525 conserve les numéros de séquence de paquets perdus. La mémoire tampon 524 conserve les différences de numéros de séquence entre paquets perdus. Supposons que la dernière transition détectée 520 entre des lois de distribution correspond au paquet perdu 522 et à la différence de numéros de séquence d 521. L'ensemble de différences de numéros de séquence utilisé au cours de l'étape 506, pour déterminer une possible nouvelle transition, correspond aux différences postérieures à la différence 521. En d'autres termes, seules les différences 523 sont utilisées pour détecter une possible nouvelle transition. Si une nouvelle transition est détectée au cours de l'étape 506, le numéro de séquence correspondant à cette nouvelle transition est mémorisé au cours d'une étape 508. Puis la dernière transition est mise à jour, au cours d'une étape 509, afin que l'étape 506 vise détecter une nouvelle transition, postérieure à la transition mise à jour, sur la base des différences de numéros de séquence postérieures à cette transition. Au cours d'une étape 510, un deuxième déclenchement est utilisé pour déclencher un algorithme qui calcule le niveau de redondance FEC, au cours d'une étape 511. Ce déclenchement est effectué à chaque fois qu'une transition de loi de distribution de pertes est détectée au cours d'une étape 506 et à intervalle de temps régulier si aucune transition n'est détectée. Au cours de l'étape 511, on lit, dans la mémoire tampon utilisée au cours de l'étape 507 pour mémoriser les numéros de séquence des paquets perdus, tous les numéros de séquence supérieurs à celui correspondant à la dernière transition, mis à jour au cours de l'étape 509. A partir de cet ensemble de numéros de séquence, on calcule une nouvelle valeur de paramètre de redondances FEC, ou niveau de redondance. Au cours d'une étape 512, on détermine si cette nouvelle valeur diffère de la précédente. Si oui, un message en retour est transmis au serveur 100 pour lui notifier le niveau de protection à utiliser. Une manière possible pour calculer le niveau de protection par redondances FEC est décrite en regard de la figure 9. On note que la détection d'une transition dans la loi de distribution de pertes peut survenir avec une certaine latence (retard de détection), au cours de l'étape 506. L'effet de cette latence est cependant limité comme le montre l'étude des deux cas possibles : - en cas d'accroissement de la fréquence des pertes (le niveau de protection étant précédemment faible), le taux de redondance FEC sera mis à jour assez rapidement puisque le nombre de pertes est élevé et que la détection sera donc rapide puisqu'elle est fonction du nombre de pertes et - en cas de décroissance de la fréquence des pertes, le taux de redondance FEC sera supérieur à ce qui est nécessaire et les conséquences du retard seront donc limitées La figure 7 décrit le détail de l'étape 506, c'est-à-dire comment les transitions sont détectées. Comme exposé ci-dessus, on y utilise un ensemble de différences de numéros de séquence conservées dans la mémoire tampon 504 ou, préférentiellement, le sous-ensemble des différences de numéros de séquence conservées dans la mémoire tampon 504 qui sont postérieures à la dernière transition détectée. Cette entrée de numéros prend la forme d'une table 600. L'objet de l'étape 506 est de détecter si une transition a eu lieu et, si oui, à quel numéro de séquence elle correspond. Le résultat de cette détection de transition est représenté en figure 8. La table initiale de différences de numéros de séquence 651 y est scindée en deux parties, 652, des numéros antérieurs à celui du paquet correspondant à la transition détectée et 653 des numéros postérieurs à celui-ci. Le point séparant ces deux parties est la position 651 de la transition. Ce point est celui où la probabilité est maximum que deux lois de distribution différentes existent de part et d'autre de ce point. Inversement, ce point est celui où la probabilité que les deux ensembles de différences appartiennent à la même loi de distribution est la plus faible. C'est cette deuxième propriété qui est utilisée dans les étapes illustrées en figure 7. Dans cette figure 7, deux phases successives sont mises en oeuvre. La première phase consiste à trouver une approximation de la position de l'éventuelle transition. La seconde phase consiste à accroître la précision de la position de l'éventuelle transition. Au cours d'une étape 601, on initialise un ensemble de variables. « SO » représente la précision de la position de transition. SO est initialisé à « 5 ». Cela signifie que la table de différences est d'abord traitée cinq différences par cinq différences. Le point de départ « S » dans la table est donc égal à « 5 ». Le point d'arrêt « E » dans la table de différences est E = 195. E correspond au nombre de différences de la table, supposé ici égal à 200, moins cinq. La position « TL » de la supposée transition est initialisée à la valeur TL = -1. La variable « Min », qui correspond à une probabilité minimale, prend la valeur 1,0. Au cours d'une étape 602, les variables de l'algorithme de la phase courante sont initialisées à partir des valeurs courantes des variables initialisées au cours de l'étape 601 et, dans le cas de la seconde phase, mises à jour au cours d'une étape 612. La variable « step » prend la valeur de « SO ». La variable « start » prend la valeur de « S » et la variable « end » prend la valeur de « E ». Dans la suite, l'algorithme tente de séparer la table des différences en deux ensembles, l'un dans un intervalle [0, i], le second dans l'intervalle [i, TS] ou TS est le nombre de différences dans la table de différences. La probabilité que ces deux ensembles de différences correspondent à la même loi de distribution est calculée. En utilisant différentes valeurs candidates pour « i », la valeur candidate qui donne la plus faible probabilité est sélectionnée comme position de la possible transition. Puis on détermine si une transition a effectivement eu lieu. Au cours d'une étape 603, la valeur de la variable « i » est initialisée à la valeur de la variable « Start ». Au cours d'une étape 604, deux ensembles de différences sont générés, « X(i) » et « Y(i) ». Par exemple, en regard de la figure 8, ces deux ensembles correspondent respectivement aux intervalles de différences 652 (différences antérieures à la position testée) et 653 (différences postérieures à la position testée). Au cours d'une étape 605, on effectue un test statistique pour évaluer la probabilité p(H0) que les deux ensembles X(i) et Y(i) correspondent à la même distribution. Au cours d'une étape 607, on effectue un test pour déterminer si p(H0) Si la valeur de la variable Step vaut «1 », c'est-à-dire à la fin de la deuxième phase, au cours d'une étape 613, on détermine si la valeur de la variable « Min » est inférieure à une probabilité prédéterminée de « fausse alarme » P(FA). Si oui, une nouvelle transition a été détectée et se trouve à la position donnée par la valeur de la variable « TL ». Sinon, aucune transition n'a été détectée. Dans les deux cas, l'étape 506 est achevée. On décrit, ci après, un exemple de test statistique qui peut être effectué au cours de l'étape 605, connu sous le nom de test de « Wilcoxon ». Il permet d'estimer la probabilité que deux ensembles d'échantillons correspondent à la même loi statistique. On part de deux ensembles (ensemble de différences entre numéros de séquence de paquets perdus consécutifs, avant et après une position de transition candidate, dans le cas représenté en figure 6). Le premier ensemble comporte N échantillons. Le deuxième ensemble est composé de M échantillons. Deux hypothèses sont posées : - l'hypothèse « HO » selon laquelle les deux ensembles sont issus de la même distribution probabiliste, et - l'hypothèse « H1 » selon laquelle les deux ensembles sont issus de deux 10 distributions probabilistes différentes. Le test statistique évalue la probabilité que l'hypothèse HO soit vérifiée : p(HO). La second hypothèse est sélectionnée si p(HO) est inférieure à une valeur limite prédéterminée (voir étape 613). Dans le cas de la figure 7, la valeur limite peut être de 0,00001. 15 Dans le test « Wilcoxon », on met, d'abord, en ordre croissant les valeurs des deux ensembles d'échantillons. Puis, on attribue un rang à chaque échantillon en fonction de sa position dans let ordre croissant. Puis, on traite la somme des rangs des valeurs des éléments du premier ensemble. Il y a deux possibilités : 20 - soit N et/ou M est élevé, par exemple ici supérieur ou égale à 10, - soit N et M sont faibles, c'est-à-dire tous deux inférieurs à 10. Dans le premier cas, une valeur dont la formule est donnée par S ùMN +M +1)/2 . jNM(N+M+1/12) est calculée et suit une distribution gaussienne.(moyenne de 0 et variance de 1) si les échantillons des ensembles suivent la même loi statistique. 25 Dans le second cas, la somme des rangs N S=Eri i=1 pour le premier ensemble suit la loi simple : i avec km le nombre de n-uples dont la somme égale m et Cn = n. n! (n ù k )! k P(S=m)= m N CN+M « x! » étant la fonction factorielle de « x ». En conséquence, si les deux ensembles d'échantillons sont issus de deux distributions différentes, les valeurs calculées sont très faibles. Si les deux ensembles d'échantillons sont issus de la même distribution, les valeurs calculées sont élevées. La figure 9 donne un exemple d'étape 511 pour calculer la valeur des paramètres de redondance FEC. Ces valeurs de paramètres déterminent le niveau de redondance qui permet de protéger les paquets de données. Dans cet exemple, on suppose que la protection des paquets de données est une fonction XOR FEC de paramètre (1, n). Cela signifie que n paquets de données sont utilisés pour générer un paquet de redondances FEC. Si l'un de ces n paquets de données est perdu sur le réseau, il peut être restauré à partir des n- 1 autres paquets de données et du paquet de redondances FEC. Un tel format est bien connu pour protéger les paquets RTP comme détaillé dans le document RFC-5109. On note que d'autres types de codes de correction d'erreur FEC peuvent être utilisés, tels que les codes Reed-Solomon. Les paramètres des codes Reed-Solomon diffèrent de l'exemple pris. Cependant, l'adaptation de la description qui suit à un autre type de FEC est aisément à la portée de l'homme du métier. En ce qui concerne le paramètre n, plus sa valeur est faible, plus la capacité de correction est élevée. On cherche à optimiser la valeur de n pour, à la fois, avoir une capacité de correction suffisante et ne pas utiliser, à cet effet, une part trop importante du débit disponible. Supposons que l'étape 511 soit déclenchée par le déclencheur 510. Les numéros de séquence des paquets perdus depuis la dernière transition sont sélectionnés. Par exemple, ces numéros sont ceux illustrés en 900, figure 9. Dans cet exemple, les numéros de séquence des paquets perdus sont 8, 11, 12, 15, 18 et 19. Les numéros de séquence des paquets reçus sont donc 9, 10, 13, 14, 16 et 17. Pour calculer la valeur du paramètre n, on teste différentes valeurs candidates. Pour chaque valeur candidate, un taux de perte est calculé. La valeur candidate qui donne un taux de perte qui est le plus près du taux de perte cible calculé à partir des numéros de séquence des paquets perdus est sélectionné comme valeur de n. Supposons que la valeur candidate pour n soit égale à 2. Plusieurs simulations faites sur la séquence réelle sont réalisées pour déterminer le taux de perte si cette valeur candidate était sélectionnée. Dans la première simulation, un triplet 901 de trois numéros de séquence consécutifs sont sélectionnés et mis dans une table 904. Il s'agit des numéros de séquence « 8 », « 9 » et « 10 », en figure 9. Les numéros 9 et 10 correspondent à des paquets reçus. Puisque la valeur candidate est égale à 2, les paquets de numéros de séquence 8 et 9 sont supposés être des paquets de données et le paquet de numéro de séquence 10 est supposé être un paquet de redondances FEC. Basé sur ces trois paquets, une correction est simulée au cours d'une étape 905. Le résultat de cette simulation est illustré en 906. Le paquet de données perdu, de numéro de séquence 8, est restauré. En conséquence, le taux de perte résiduel pour les deux paquets de données de numéros de séquence 8 et 9 est de O. La même simulation est effectuée en déplaçant progressivement le triplet de numéros de séquence, comme illustré en 902 et, après neuf déplacements, en 903. Dans ce dernier cas, les paquets de numéros de séquence 18 et 19 sont perdus. Ces valeurs sont insérées dans la table 908 et la correction d'erreur est simulée. Du fait de la proportion de paquets perdus, de deux tiers, leur correction n'est pas possible avec un seul paquet de redondances FEC. Le taux d'erreur résiduel est de 1/2. Ainsi, pour chaque déplacement, on peut calculer le nombre de paquets 30 résiduels perdus, après correction parmi les deux paquets de données. Ce nombre est appelé L(i,n). Pour chaque déplacement, le nombre de pertes initiales est noté : B(i,n). Le taux de correction du FEC avec le paramètre 'n' est donc: T(n) T(n) ti(n)= LL(i,n)/LB(i,n) avec le nombre total de déplacements pour une valeur donnée de n est T(n). Le taux de perte final simulé est LR(n) =t (n). B avec `A' le nombre de pertes dans l'échantillon 900 et `B' le nombre total de numéros de séquence dans l'échantillon 900. Ici, nous avons A = 6 et B = 12. Plusieurs valeurs candidates de n sont testées. La valeur qui donne le taux de perte visé est choisie comme valeur de paramètre de FEC. Elle est soit directement envoyée au serveur au cours de l'étape 513 ou soit son taux de redondance (1/n) est transmis. REVENDICATIONS1. Procédé de détection de transition entre deux états d'un réseau de communication correspondant à des taux de pertes différents de données émises, caractérisé en ce qu'il comporte : - une étape de détermination d'une probabilité de transition et - une étape de détermination de l'existence d'une transition en fonction de ladite probabilité. 2. Procédé de détection de transition selon la revendication 1, dans lequel, au cours de l'étape de détermination d'une probabilité, on détermine la probabilité de transition en fonction des pertes de données survenant après la dernière transition détectée. 3. Procédé selon l'une quelconque des revendications 1 ou 2, dans lequel, le réseau de communication véhiculant des paquets de données, l'étape de détermination d'une probabilité de transition comporte : - une étape de détection de paquets perdus parmi les paquets de données émis; - une étape de détermination de distances représentatives d'écarts entre les numéros de séquence desdits paquets perdus, et - une étape de calcul d'une probabilité de transition entre un premier ensemble de distances et un second ensemble de distances choisies parmi les distances déterminées. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que, le réseau de communication véhiculant des paquets de données, au cours de l'étape de détermination d'une probabilité de transition, on détermine, pour une pluralité de paquets candidats émis depuis la dernière transition détectée, une probabilité qu'une transition ait lieu au moment de la transmission d'un de ces paquets candidats. 5. Procédé selon la revendication 4, caractérisé en ce que, pour déterminer la probabilité de transition, on sélectionne un paquet candidat pour lequel laprobabilité constitue un extremum des probabilités correspondant aux différents paquets candidats et on compare la probabilité correspondant au paquet candidat sélectionné à une valeur limite prédéterminée. 6. Procédé selon la revendication 5, caractérisé en ce que, au cours de l'étape de détermination d'une probabilité de transition, on détermine une probabilité que deux lois de distributions de pertes différentes existent de part et d'autre du paquet candidat, ledit extremum étant un maximum. 7. Procédé selon la revendication 5, caractérisé en ce que, au cours de l'étape de détermination d'une probabilité de transition, on détermine une probabilité que la même loi de distributions de pertes existe de part et d'autre du paquet candidat, ledit extremum étant un minimum. 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que, au cours de l'étape de détermination d'une probabilité, on effectue un test de Wilcoxon. 9. Procédé de protection de données contre des pertes lors de leur transmission sur un réseau de communication, caractérisé en ce qu'il comporte : - une étape de détection d'une transition du taux de pertes de paquets selon l'une quelconque des revendications 1 à 8, - une étape de détermination d'un taux de redondance basé uniquement sur la période de temps écoulée depuis la dernière transition, et - une étape de génération de données redondantes dont le taux est fonction du taux de redondance déterminé au cours de l'étape de détermination. 10. Procédé selon la revendication 9, caractérisé en ce que, au cours de l'étape de détermination du taux de redondance, ledit taux de redondance est déterminé par un client et transmis à un serveur de données. 11. Procédé selon l'une quelconque des revendications 9 ou 10, caractérisé en ce que, au cours de l'étape détermination du taux de redondance, le taux de redondance est déterminé en fonction du taux de perte maximum déterminé pour une période de temps séparant deux transitions détectées. 12. Procédé selon l'une quelconque des revendications 9 à 11, caractérisé en ce que, au cours de l'étape de détermination du taux de redondance, pour chacune d'une pluralité de valeurs candidates de taux de redondance, on détermine un taux de perte résiduel après restauration des données réellement perdues par simulation de la mise en oeuvre de la valeur de taux de redondance candidate et on compare ce taux de perte résiduel à une valeur cible. 13. Dispositif de détection de transition entre deux états d'un réseau de communication correspondant à des taux de pertes différents de données émises, caractérisé en ce qu'il comporte : - un moyen de détermination d'une probabilité de transition et - un moyen de détermination de l'existence d'une transition en fonction de ladite probabilité. 14. Dispositif de protection de données contre des pertes lors de leur transmission sur un réseau de communication, caractérisé en ce qu'il comporte : - un dispositif de détection d'une transition entre taux de pertes de paquets selon la revendication 13, - un moyen de détermination d'un taux de redondance basé uniquement sur la période de temps écoulée depuis la dernière transition, et - un moyen de génération de données redondantes dont le taux est fonction du taux de redondance déterminé au cours de l'étape de détermination. 15. Programme d'ordinateur chargeable dans un système informatique, ledit 25 programme contenant des instructions permettant la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 12. 16. Support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé selon l'une 30 quelconque des revendications 1 à 12.