FR2958473A1 - Procede et dispositif pour adapter des codes de correction d'erreur dans un reseau de communication - Google Patents

Procede et dispositif pour adapter des codes de correction d'erreur dans un reseau de communication Download PDF

Info

Publication number
FR2958473A1
FR2958473A1 FR1052597A FR1052597A FR2958473A1 FR 2958473 A1 FR2958473 A1 FR 2958473A1 FR 1052597 A FR1052597 A FR 1052597A FR 1052597 A FR1052597 A FR 1052597A FR 2958473 A1 FR2958473 A1 FR 2958473A1
Authority
FR
France
Prior art keywords
probability
protection
alternation
periods
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1052597A
Other languages
English (en)
Other versions
FR2958473B1 (fr
Inventor
Floch Herve Le
Eric Nassor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR1052597A priority Critical patent/FR2958473B1/fr
Priority to US13/079,702 priority patent/US8621313B2/en
Publication of FR2958473A1 publication Critical patent/FR2958473A1/fr
Application granted granted Critical
Publication of FR2958473B1 publication Critical patent/FR2958473B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • H04L1/0019Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy in which mode-switching is based on a statistical approach
    • H04L1/002Algorithms with memory of the previous states, e.g. Markovian models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Le procédé pour adapter des codes de correction d'erreur dans un réseau de communication comporte : - une étape de détermination de périodes de temps homogènes en ce qui concerne la loi de distribution de pertes sur le réseau, - une étape de classification des périodes de temps homogènes dans au moins deux classes, en fonction d'une information représentative des pertes sur le réseau et/ou d'un niveau de protection correspondant, au cours de ces périodes de temps, - une étape de détermination d'une probabilité d'alternance entre deux desdites classes et - une étape de sélection d'une stratégie de protection en fonction de ladite probabilité d'alternance.

Description

La présente invention concerne un procédé et un dispositif pour adapter des codes de correction d'erreur dans un réseau de communication. Elle s'applique, en particulier, à la transmission de données depuis un serveur de données vers au moins un client par l'intermédiaire d'un réseau de transmission par paquets sujet à des pertes de paquet. Par exemple, le réseau est un réseau mettant en oeuvre le protocole Internet IP pour transporter des paquets IP. Le réseau peut être filaire ou non filaire. Deux types de perte sont considérés : - les pertes dues à la congestion du réseau : dans ce cas, la quantité de données émise est trop élevée et au moins un routeur du réseau perd une partie des paquets qu'il reçoit, et - les pertes dues aux interférences, par exemple qui peuvent survenir sur un lien non-filaire du réseau à cause de micro-ondes parasites. Pour prendre en compte ces pertes, deux types de protection sont prévues au niveau du serveur. La première met en oeuvre un algorithme de contrôle de congestion. Si des notifications de perte sont reçues par le serveur, il peut ainsi faire décroître le débit d'émission. Des algorithmes tels que TCP (acronyme de « Transmission Control Protocol » pour protocole de contrôle de transmission) et TFRC (acronyme de « TCP Friendly Rate Control » pour contrôle de débit compatible TOP) implémentent cette stratégie. Le deuxième type de protection met en oeuvre des codes de correction d'erreur, ou «FEC » (pour « Forward Error Correction »). Des paquets de redondances FEC sont couplés aux données de charge utile pour les protéger en autorisant leur restauration en cas de perte. Généralement, la proportion de paquets de redondances est accrue quand des pertes de paquets sont détectées.
Cependant, il est important de déterminer la proportion adéquate de redondances, en particulier pendant une période de congestion. En effet, puisque le débit disponible décroit en cas de congestion, par exemple du fait de la mise en oeuvre de l'un des protocoles TFRC ou TOP, la quantité de données émises est réduite. Si l'information à transmettre est de la vidéo, cette vidéo doit alors être fortement compressée pour être émise en temps-réel. De plus, si la proportion de paquets de redondance est aussi accrue, le taux de compression de la vidéo peut devenir très élevé, ce qui implique des effets de compression visibles, tels que des effets de blocs qui peuvent être déplaisants. En conséquence, trouver la proportion de paquets de redondance adéquate pendant une période de congestion est important, en termes psycho-visuel, lorsque l'on transmet des données de vidéo.
La détection d'une période de congestion n'est pas instantanée. Usuellement, le client détecte la survenance de perte de paquets et envoie une notification de perte, en retour, au serveur. Cela implique un délai dans l'adaptation du débit de transmission et dans l'augmentation de la proportion de redondances. Ce retard est dû : - au délai de détection des paquets perdus identifiés comme des pertes de congestion, au niveau du client, - au délai de génération et de transmission de la notification en retour depuis le client vers le serveur, et - au tampon de paquets RTP déjà prêts à être émis, qui peuvent ne 20 pas être suffisamment protégés. Du fait de ce retard, la proportion de paquets perdus peut être très élevée au début d'une phase de congestion. Si ces paquets concernent un flux vidéo temps-réel, l'effet visuel peut être désastreux. En conséquence, une stratégie connue consiste à prévoir, en 25 permanence, une forte proportion de redondances pour anticiper la survenance d'une phase de congestion. Cependant, pendant les phases de congestion, cette stratégie impose une occupation de la bande passante par les redondances qui, en imposant un taux de compression élevé, résulte en une moindre qualité d'image. 30 En conséquence, une stratégie qui consiste à adapter la proportion de paquets de redondance pendant une phase de congestion est préférable.
Le document US 2006/0251011 décrit un algorithme TCP tolérant aux pertes, ce qui signifie que des paquets de redondance sont ajoutés aux paquets de données utiles dans des fenêtres de dimension W du protocole TOP. Pour calculer le ratio entre les paquets de redondance et les paquets de données utiles dans la fenêtre courante, on calcule un taux de perte sur la précédente fenêtre de dimension W. Cependant, si la taille des fenêtres est faible, le ratio calculé est instable, comme le taux de perte et, si la taille des fenêtres est élevée, la prise en compte d'une congestion est retardée. Le document PCT/US01/45222 propose d'adapter la protection par redondances en fonction de la durée de périodes de rafales de pertes, ou « burst ». Cependant, les périodes de burst sont déterminées dans le domaine analogique. Cette méthode ne peut donc pas être applicable dans le cas de paquets IP/RTP. Le document US 7,328,394 décrit un module qui adapte le taux de redondances FEC en fonction d'un historique qui est composé de fenêtres successives de tailles fixes. Un taux de redondances FEC est testé et permet de calculer un taux de perte pour chacune des fenêtres consécutives en simulant une correction par utilisation de redondances FEC. Le taux de perte final est déterminé en pondérant les taux de perte pour chaque fenêtre, en utilisant une pondération qui est inversement proportionnelle à l'âge (durée écoulée) de la fenêtre. Le taux de redondances qui mène au taux de perte final cible est sélectionné. Cependant, ce module présente les mêmes inconvénients que la méthode décrite dans le document US 2006/0251011. La présente invention vise à remédier à ces inconvénients.
A cet effet, selon un premier aspect, la présente invention vise un procédé pour adapter des codes de correction d'erreur dans un réseau de communication, caractérisé en ce qu'il comporte : - une étape de détermination de périodes de temps homogènes en ce qui concerne la loi de distribution de pertes sur le réseau, - une étape de classification des périodes de temps homogènes dans au moins deux classes, en fonction d'une information représentative des pertes sur le réseau et/ou d'un niveau de protection correspondant, au cours de ces périodes de temps, - une étape de détermination d'une probabilité d'alternance entre deux desdites classes, et - une étape de sélection d'une stratégie de protection en fonction de ladite probabilité d'alternance. La mise en oeuvre de la présente invention permet, notamment, de détecter quand les conditions de réseau sont adéquates pour appliquer telle ou telle stratégie. En particulier, elle permet de détecter, à partir d'une analyse du passé, si une adaptation locale, en termes temporels, de la protection peut être utilisée pendant des périodes de congestion à venir. L'avantage de détecter automatiquement si une adaptation locale est possible est que cela permet de calculer la meilleure proportion de paquets de redondances FEC tout en assurant une bonne protection des paquets de données utiles. Comme la proportion de redondances FEC est optimale, puisque la quantité de paquets de redondances FEC est minimisée et que, donc, la quantité de paquets de données vidéo utiles peut être accrue, le taux de compression de la vidéo est plus faible et la qualité visuelle restituée est améliorée.
Selon des caractéristiques particulières, au cours de l'étape de sélection d'une stratégie de protection, une première stratégie susceptible d'être sélectionnée comporte la mise en oeuvre d'un niveau de protection fixe pour les futures périodes de temps homogènes de chaque classe, et une deuxième stratégie susceptible d'être sélectionnée comporte la mise en oeuvre d'un niveau de protection fixe pour les futures périodes de temps homogènes de l'une des classes et un niveau de protection variable pour les futures périodes de temps homogènes d'une autre classe. Selon des caractéristiques particulières, dans le cas de la deuxième stratégie, la classe de périodes de temps homogènes pour lesquelles il a été mis en oeuvre un niveau de protection fixe correspond aux périodes de temps ayant subi le moins de pertes, et l'autre classe de périodes de temps homogènes pour lesquelles il a été mis en oeuvre un niveau de protection variable correspond aux périodes de temps ayant subi le plus de pertes. Selon des caractéristiques particulières, la première stratégie est sélectionnée lorsque la probabilité d'alternance est inférieure à une valeur prédéterminée et la deuxième stratégie est sélectionnée lorsque la probabilité d'alternance est supérieure à une valeur prédéterminée. Selon des caractéristiques particulières, au cours de l'étape de sélection de stratégie, dans la première ou la deuxième stratégie, le niveau de protection fixe correspond à la protection nécessaire pour la période de temps subissant le plus fort taux de perte. Selon des caractéristiques particulières, au cours de l'étape de classification, une première classe correspond aux périodes de temps avec un faible niveau de protection FEC et/ou un faible taux de perte et une deuxième classe correspond aux périodes de temps avec un niveau de protection par FEC élevé et/ou un fort taux de perte. Selon des caractéristiques particulières, au cours de l'étape de classification, on met en oeuvre un algorithme de « Lloyd-max ». Selon des caractéristiques particulières, au cours de l'étape de détermination d'une probabilité d'alternance, cette probabilité est égale au nombre d'alternances entre les deux classes lors du parcours des périodes de temps successives, divisée par le nombre de périodes considérées moins un. Selon un deuxième aspect, la présente invention vise un dispositif pour adapter des codes de correction d'erreur dans un réseau de communication, caractérisé en ce qu'il comporte : - un moyen de détermination de périodes de temps homogènes en ce qui concerne la loi de distribution de pertes sur le réseau, - un moyen de classification des périodes de temps homogènes dans au moins deux classes, en fonction d'une information représentative des pertes sur le réseau et/ou d'un niveau de protection correspondant, au cours de ces périodes de temps,
- un moyen de détermination d'une probabilité d'alternance entre deux desdites classes, et - un moyen de sélection d'une stratégie de protection en fonction de ladite probabilité d'alternance.
Selon un troisième aspect, la présente invention vise un programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en oeuvre du procédé objet de la présente invention, tel que succinctement exposé ci-dessus. Selon un quatrième aspect, la présente invention vise un support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé objet de la présente invention, tel que succinctement exposé ci-dessus. Les avantages, buts et caractéristiques particulières de ce dispositif, de ce programme et de ce support d'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, - les figures 3 et 4 représentent, dans des schémas blocs, un mode de réalisation particulier de moyens mis en oeuvre par le procédé objet de la présente invention, - les figures 5 et 6 représentent, sous forme de logigrammes, des étapes mises en oeuvre dans un mode de réalisation particulier du procédé objet de la présente invention, - la figure 7 représente, schématiquement, deux classifications de paquets susceptibles d'être mises en oeuvre dans un mode de réalisation particulier du procédé objet de la présente invention, - la figure 8 représente, sous forme d'un logigramme, des étapes mises en oeuvre dans des étapes illustrées en figure 6, - 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, - la figure 10 représente, sous forme de logigramme, des étapes de détermination de probabilités mise en oeuvre dans l'une des étapes illustrées en figure 6, - la figure 11 représente, schématiquement, un mode de réalisation particulier d'un dispositif objet de la présente invention, - la figure 12 représente, schématiquement, des contenus de mémoires pour la mise en oeuvre des étapes illustrées en figure 5, - la figure 13 représente, sous forme d'un logigramme, des étapes mises en oeuvre dans une étape illustrée en figure 5, et - la figure 14 représente, schématiquement, un contenu de mémoire pour la mise en oeuvre des étapes illustrées en figure 13. 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, ou serveur, 100 et au moins un dispositif destinataire, ou client, 101. Dans un but de clarté, un seul client 101 est représenté dans les figures. Le flux de données concerne des données vidéo à transmettre en temps-réel. 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ées à chaque client 101 destinataire. 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 peut être filaire ou non filaire. On suppose ici qu'il est filaire. Les liens du réseau, de manière usuelle, connectés à des routeurs 106 composés d'une queue qui conserve les paquets reçus par le routeur 106 avant de les retransmettre sur un autre lien. En figure
1, un 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 errors »). 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 sans fil 105 est sujet à des interférences 109. Par exemple, des micro-ondes peuvent polluer le lien 105. 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 possible que les pertes soient proches, voire consécutives. En figure 1, le lien 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, plusieurs paquets vidéo ne sont pas reçus par le client. 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 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 paquétiseur (« packetizer ») 131 à partir du 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 sous forme de paquets RTP par le paquétiseur 131. Pour le détail de la génération de paquets, le lecteur peut se reporter aux exemples connus sous les noms de « RFC-2733 » et « RFC-5109 ».
Ces paquets de réseau sont mémorisés dans une mémoire tampon 132. Dans le contexte illustré en figures 1 et 2, le réseau de communication 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). 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 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 séquentiel du paquet de réseau, qui représente un index du paquet dans l'ordre d'émission (aussi appelé « sequence number » pour un paquet RTP). Un module d'ordonnancement (« 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 133. Le module d'analyse 133 analyse les paquets de réseau retournés par un client, 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 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. Lorsque le flux de données concerne une transmission vidéo temps réel, le module d'analyse 133 peut être un module TFRC. 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 sortant de paquets 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 forme de 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. Selon le débit de transmission des paquets et le niveau de remplissage de la mémoire tampon 132, le taux de compression est contrôlé par des moyens 137 de contrôle de taux de compression. 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é. Si les moyens de contrôle de taux de compression 137 commandent la décroissance de la taille du flux de donnée, l'encodeur vidéo 130 (par exemple de type MEPG, acronyme de « Moving Pictures Expert Group » pour groupe d'experts en images animées) augmente le taux de compression de la vidéo originale, ce qui peut résulter en des effets visuels tels que les effets de blocs. 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. Le client 101 analyse les numéros séquentiels de chacun des paquets RTP pour identifier les paquets perdus. Les paquets sont dépaquétisés par un dépaquétiseur 141. « Dépaquétiser » 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 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.
De plus, un 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. Les numéros séquentiels des paquets perdus peuvent être utilisés par deux modules : - le module de calcul de la bande passante entre le serveur et le client, par exemple, un module d'estimation de type TFRC, 133 peut être utilisé, et - le module de contrôle 148 de redondances FEC qui aide à la détermination du niveau de redondance FEC.
Comme TFRC est bien connu de l'homme du métier, le module de calcul de bande passante TFRC 133 n'est pas décrit ici. On note cependant que ce module envoie une information en retour, par l'intermédiaire du module 150, au serveur 100 pour que ce serveur 100 puisse calculer la bande passante disponible. En effet, lorsque des pertes dues à une congestion sont détectées, les informations en retour permettent au serveur 100 de faire décroître le débit émis.
Le module 148 est mis en oeuvre pour implémenter un mode de réalisation particulier du procédé objet de la présente invention. Ce module 148 construit une base de données qui caractérise les différents états du réseau pendant une période de temps passée. En fonction du contenu de cette base de données, le module 148 fournit des indications au module 149, qui sont utilisées pour calculer le taux de redondances FEC et le transmettre au serveur vidéo 100 par l'intermédiaire de paquets RTCP/AVPF transmis par le module 150. Les paquets FEC reçus sont aussi utilisés pour corriger les paquets de données qui ont été perdus. Cependant, dans un but de clarté de la figure 2, ce module de correction des paquets de données par les paquets FEC n'est pas représenté. La figure 3 représente un client 101 dans lequel le module 148 est détaillé. Ce module 148 comporte trois éléments 248, 249 et 250. L'élément 248 est un module qui détecte les transitions dans la loi de distribution de paquets perdus détectés par le module 147. Ce module 248 est décrit, ci-dessous, en regard des figures 12 à 14. La détection d'une transition est préférentiellement effectuée sur la base des seules différences entre numéros séquentiels postérieurs à la dernière détection de transition. La figure 12 illustre cette manière de procéder. La mémoire tampon 1225 conserve les numéros séquentiels de paquets perdus. Les numéros séquentiels peuvent par exemple être les numéros de séquence de l'en-tête des paquets RTP. La mémoire tampon 1224 conserve les différences de numéros séquentiels entre paquets perdus.
Supposons que la dernière transition détectée 1220 entre des lois de distribution correspond au paquet perdu 1222 et à la différence de numéros séquentiels d 1221. L'ensemble de différences de numéros séquentiels utilisé pour déterminer une possible nouvelle transition, correspond aux différences postérieures à la différence 1221. En d'autres termes, seules les différences 1223 sont utilisées pour détecter une possible nouvelle transition. La figure 13 décrit comment les transitions sont détectées. En entrée est fourni un ensemble de différences de numéros séquentiels ou, préférentiellement, le sous-ensemble des différences de numéros séquentiels des paquets perdus qui sont postérieures à la dernière transition détectée. Cette entrée prend la forme d'une table 1300. L'objet des étapes illustrées en figure 13 est de détecter si une transition a eu lieu et, si oui, à quel numéro séquentiel elle se trouve. Le résultat de cette détection de transition est représenté en figure 14. La table initiale de différences de numéros séquentiels 1351 y est scindée en deux parties, 1352, des numéros antérieurs à la transition détectée et 1353 des numéros postérieurs. Le point séparant ces deux parties est la position 1351 de la transition. Ce point est celui où la probabilité que deux lois de distribution différentes existent de part et d'autre de ce point est maximum. 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 mise en oeuvre dans l'algorithme illustré en figure 13. Dans cette figure 13, deux phases successives sont mises en oeuvre. La première phase consiste à trouver une approximation de l'éventuelle position de transition. La seconde phase consiste à accroître la précision de la position de l'éventuelle transition. Au cours d'une étape 1301, 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 1302, les variables de l'algorithme de la première phase sont initialisées à partir des valeurs initialisées au cours de l'étape 1301.
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 de « i », la valeur candidate qui donne la plus faible probabilité est sélectionnée comme la position d'une transition possible. Au cours d'une étape 1303, la valeur de la variable « i » est initialisée à la valeur de la variable « Start ». Au cours d'une étape 1304, deux ensembles de différences sont générés, « X(i) » et « Y(i) ». Par exemple, en regard de la figure 14, ces deux ensembles correspondent respectivement aux intervalles de différences 1352 (différences antérieures à la position testée) et 1353 (différences postérieures à la position testée). Au cours d'une étape 1305, 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 1307, on effectue un test pour déterminer si p(H0) < Min, c'est-à-dire si p(H0) est la probabilité la plus faible de l'ensemble des probabilités déjà calculées. Si oui, au cours d'une étape 1308, la nouvelle position de transition est la valeur de « i » et « Min » prend la valeur p(H0). Si le résultat de l'étape 1307 est négatif ou à la suite de l'étape 1308, au cours d'une étape 609, on incrémente la valeur de « i » de la valeur de « Step » (5 au cours de la première phase). Au cours d'une étape 1310, on détermine si « i » est inférieur à la valeur de « End ». Si non, on retourne à l'étape 1304. Au contraire, si oui, au cours d'une étape 1311, on détermine si la valeur de « Step » est égale à « 1 ». Si non, c'est-à-dire si la deuxième phase n'est pas achevée, au cours d'une étape 1312, on attribue de nouvelles valeurs à « S », s = TL û Step, « E », E = TL + Step et « SO », SO = 1. Puis, on retourne à l'étape 1302 pour effectuer la deuxième phase. Si la valeur de la variable Step vaut «1 », au cours d'une étape 1313, 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.
On va maintenant décrire un exemple de test statistique qui peut être effectué au cours de l'étape 1305. Ce test est 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 séquentiels de paquets perdus consécutifs, avant et après une position de transition candidate, dans le cas représenté en figure 12). 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 distributions probabilistes différentes.
Le test statistique évalue la probabilité HO : p(HO). La second hypothèse 15 est sélectionnée si p(HO) est inférieure à une valeur limite prédéterminée. Dans le cas de la figure 13, la valeur limite peut être de 0,00001.
Dans le test de « 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 l'ordre croissant. Puis, on traite la
20 somme des rangs des valeurs des éléments du premier ensemble. Il y a deux possibilités :
- soit N et/ou M sont élevés, par exemple supérieurs ou égales à 10,
- soit N et M sont faibles.
Dans le premier cas, une valeur dont la formule est
SùN(N+M+1)/2 . jNM(N+M+1/12) 25 est calculée et suit une distribution gaussienne.(moyenne de 0 et variance de 1) si les échantillons des deux ensembles suivent la même loi statistique.
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. Revenant à la figure 3, l'élément 249 construit une base de données d'apprentissage 402 (figure 4) qui peut être vue comme caractéristique du réseau pendant une période de temps donnée. A chaque fois qu'une transition est détectée par l'élément 248, une nouvelle entrée est faite dans la base de données d'apprentissage 402. Cette entrée correspond à la période de temps qui s'achève avec la dernière transition de loi de distribution de perte détectée et commence avec la précédente transition.
En fonction de la base de données 402 mise à jour, deux valeurs de paramètres sont calculées : - une valeur fixe par défaut de taux de redondances FEC et - une valeur adaptative correspondant à la stratégie pour calculer le niveau de protection par redondances FEC.
L'élément 250 comporte ces deux valeurs de paramètres, qui sont utilisées par un module 251 de calcul de taux de redondances FEC. La manière dont la base de données d'apprentissage 402 est construite est illustrée en figure 4. La manière dont le taux de redondance FEC est calculé et utilisé est exposée en regard de la figure 8.
Ainsi, les modules 249, 250 et 251 permettent de détecter, à partir d'une analyse du passé, si une adaptation locale, en termes temporels, de la protection par redondances FEC peut être utilisée pendant des périodes de congestion.
L'avantage de détecter automatiquement si une adaptation locale est possible est que cela permet de calculer la meilleure proportion de paquets de redondances FEC tout en assurant une bonne protection des paquets de données utiles. Comme la proportion de redondances FEC est optimale, puisque la quantité de paquets de redondances FEC est minimisée et que, donc, la quantité de paquets de données vidéo utiles peut être accrue, le taux de compression de la vidéo est plus faible et la qualité visuelle restituée est améliorée. La figure 4 donne plus de détails sur la constitution du module 249 illustré en figure 3. La référence 400 concerne une mémoire tampon qui contient les numéros séquentiels des paquets RTP perdus. Nous rappelons que les numéros séquentiels peuvent, par exemple, correspondre aux numéros de séquence indiqués dans l'en-tête des paquets RTP. Dans le module 147 (figures 2 et 3) se trouvent les numéros séquentiels des paquets RTP reçus par le client 101. A partir de ces numéros séquentiels, les numéros séquentiels des paquets perdus sont déterminés. Les numéros séquentiels des paquets perdus sont conservés dans la mémoire tampon 400. Cette liste de numéros séquentiels de paquets perdus est mise en oeuvre par un module de mise à jour 401 qui construit une base de données 402 qui caractérise le comportement passé du réseau. Cette base de données 402 est appelée « base de données de périodes ». Cette base de données 402 est utilisée par le module 403 qui effectue un choix de stratégie après avoir déterminé les deux valeurs de paramètres qui sont une valeur fixe par défaut de taux de redondances FEC et une valeur adaptative.
La manière dont la base de données 402 est mise à jour est exposée en regard de la figure 5. La manière dont le choix de stratégie est effectué est exposée en regard de la figure 6. Comme illustré en figure 5, la base de données 402 est mise à jour à chaque fois qu'une nouvelle transition entre lois de distribution de pertes sur le réseau est détectée par le module 248 au cours d'une étape 500. Pour cette nouvelle transition, les numéros séquentiels des paquets perdus correspondant à la dernière période de temps entre deux transitions sont sélectionnés au cours d'une étape 502. La dernière période de temps entre deux transitions est celle qui coure jusqu'à la nouvelle transition détectée et part de la précédente. On note que, dans la mémoire de numéros séquentiels des paquets perdus 501, les numéros peuvent être mémorisés avec leur information temporelle (la date à laquelle la perte du paquet est détectée), ce qui permet de sélectionner aisément les numéros séquentiels adéquats au cours de l'étape 502. En fonction des numéros séquentiels des paquets perdus, le niveau de redondances FEC qui permet de protéger les paquets de données utiles de la période de temps sélectionnée peut être calculé au cours d'une étape 503. La manière dont le taux de redondance FEC est calculé est exposée en regard de la figure 9. En fonction du taux de redondances FEC, la dernière période de temps sélectionnée peut être caractérisée au cours d'une étape 504. Par exemple, cette caractérisation de période de temps est illustrée en 505 par : - la durée de la période de temps, - le niveau de redondances FEC, et - le taux de perte moyen. On note que d'autres valeurs de paramètre pourraient être utilisées. En ce qui concerne les redondances FEC, dont le niveau correspond à la valeur du paramètre de l'algorithme de construction des codes de correction d'erreur pour protéger les paquets de données utiles, l'algorithme utilisé est, par exemple, « XOR FEC ». Si un paquet de redondances FEC est généré pour n paquets de données utiles, le niveau de protection (ou taux de redondance) vaut 1/n.
Une fois la dernière période de temps caractérisée, l'information de caractérisation est mémorisée, au cours d'une étape 506, dans la base de données de périodes de temps 402. Cette base de données 402 contient de l'information de caractérisation de différentes périodes de temps homogènes puisque, entre deux transitions la loi de distribution de pertes est stable.
La figure 6 décrit l'étape 403 illustrée en figure 4. Le but de cette étape est de définir une stratégie, ici entre deux stratégies possibles, pour le module de calcul du taux de codes de correction d'erreur 251 illustré en figure 3. Une valeur de paramètre de FEC par défaut correspondant à un niveau de protection fixe est associée à la stratégie sélectionnée. Au cours d'une étape 600, on accède à la base de données de périodes de temps 402. Au cours d'une étape 601, les périodes de temps lues dans cette base de données 402 sont classées en deux classes. La première classe correspond à la période de temps avec un fort niveau de protection FEC (ou un fort taux de perte moyen). La deuxième classe correspond aux périodes de temps pour lesquels le niveau de protection par FEC est faible (le taux de perte moyen est faible). Les index des périodes de temps sont stockés, au cours d'une étape 602 dans deux mémoires tampons 603 et 604. La mémoire tampon 603 contient les index des périodes de temps de la première classe. La mémoire 604 contient les index des périodes de temps de la deuxième classe. Parallèlement, au cours d'une étape 605, la période de temps qui requiert le plus haut taux de redondances est sélectionné dans la base de données de périodes de temps 600. Le niveau de protection (ou taux de protection) calculé pour cette période de temps, appelé 1/n dans les figures, sera la valeur de paramètre de FEC par défaut (c'est-à-dire qu'un paquet FEC sera généré pour n paquets de données). Cette valeur par défaut sera utilisée soit pour la première stratégie, au cours d'une étape 609, soit pour la deuxième stratégie, au cours d'une étape 608. Bien entendu, la manière d'utiliser cette valeur de paramètre diffère selon la stratégie mise en oeuvre. Dans le mode de réalisation décrit, le taux de protection par défaut correspond à la protection pour la période ayant le plus fort taux de pertes, quelle que soit la classe. Dans la première stratégie, on met en oeuvre un taux de protection fixe égal au taux de protection par défaut. Dans la deuxième stratégie, on met en oeuvre : - pour les futures périodes de temps homogènes correspondant aux périodes de temps ayant subi le moins de pertes, périodes de la deuxième classe, un taux de protection fixe égal au taux de 30 protection par défaut et - pour les futures périodes de temps homogènes correspondant aux périodes de temps ayant subi le plus de pertes, période de la première, un taux de protection variable. Au cours d'une étape 607, une probabilité d'alternance entre les deux classes est calculée. Une forte valeur de cette probabilité d'alternance signifie que deux périodes consécutives ont une forte probabilité d'appartenir à deux classes différentes. Une faible valeur de paramètre signifie, au contraire, qu'il est probable d'avoir la même classe sur deux périodes de temps consécutives. La manière dont cette probabilité d'alternance est calculée est décrite en regard de la figure 10. Si la valeur de cette probabilité d'alternance est haute (par exemple supérieure à 95 %), la deuxième stratégie est adoptée. Si la valeur de cette probabilité d'alternance est faible, la première stratégie est adoptée. L'avantage de ce choix est le suivant. Si l'alternance de périodes de temps est élevée, cela signifie que la plupart du temps, une période avec un fort taux de pertes, correspondant à une période de congestion, est suivie par une période avec un faible taux de pertes. Par conséquent, même si le niveau de redondance FEC est adapté au taux de pertes courant d'une période de congestion (en faisant décroître autant que possible la redondance FEC tout en assurant une bonne protection des paquets de données), la probabilité d'apparition d'un nouvel événement de haute congestion qui ne pourrait pas être corrigé avec la protection courante par FEC est faible. L'utilisation de la probabilité d'alternance élevée permet de détecter les conditions où la stratégie d'adaptation des redondances FEC est possible, ce qui permet un taux de compression moyen plus faible de la vidéo au niveau du serveur. Les différentes stratégies sont exposées en regard de la figure 8. La figure 7 illustre une explication schématique de la manière dont les deux classes sont utilisées. Dans la classification 700, le niveau de redondance FEC est pris en compte. Dans la classification 701, le taux de perte moyen est pris en compte. En figure 7, les périodes de temps R1 à R7 sont représentées. Une ligne horizontale 702 indique le niveau de redondances FEC. A titre d'exemple, si un paquet de redondance FEC est généré pour n paquets de données utiles, le niveau de redondance est de 1/n. Par conséquent plus la valeur n est faible, plus le niveau de redondance est élevé, plus la protection est élevée. Les différentes périodes de temps sont représentées en fonction de leur niveau de redondance. Par exemple, en 703, quatre périodes de temps sont représentées et en 704, trois autres périodes sont représentées. On cherche à déterminer une valeur limite qui permet de classer les périodes selon les deux classes 706 et 707. La valeur limite 705 vaut initialement la valeur moyenne pour toutes les périodes de temps. Puis, un algorithme connu sous le nom de « Lyod-max » (voir le document de S. P. Lloyd, « Least squares quantization in PCM », IEEE Trans. Inform. Theory, volume IT-28, pages 129-137, Mars 1982) peut être utilisé pour optimiser la valeur limite 705. La même classification peut être obtenue sur la base des taux de perte, comme illustré en 701. A partir des paquets perdus, on détecte des transitions. Les paquets perdus constituent une base d'apprentissage. On définit donc des transitions à partir de cette base d'apprentissage. On segmente la base d'apprentissage en périodes homogènes et, pour chaque période homogène, on veut définir sa classe. Soit on utilise le taux de redondance, soit on utilise le taux de perte moyen. Mais le taux de redondance est corrélé au taux de perte. Donc, il est probable que la classification avec le taux de perte donne une classification voisine de celle obtenue avec le taux de redondance. La figure 8 expose les deux stratégies possibles dans ce mode de réalisation. La deuxième stratégie est représentée en 608.
Cette stratégie consiste à adapter régulièrement le niveau de redondances FEC si une période de congestion est considérée en cours. Lorsque la période de congestion est achevée, la valeur par défaut des paramètres de FEC est utilisée. Au cours de l'étape 802, si un nouveau signal de transition est reçu (voir le module 248 en figure 3), la dernière période de temps de la base de données de périodes de temps est sélectionnée au cours d'une étape 803. Cette période est la période qui finit avec le nouveau signal de transition et commence avec le signal de transition précédent. Au cours d'une étape 805, on effectue un test pour déterminer si cette période de temps est de la deuxième classe (par exemple pendant une période de congestion), c'est-à-dire un fort niveau de protection (fort taux de redondances FEC) ou non. Si la période sélectionnée est de la deuxième classe, au cours d'une étape 807, la valeur du paramètre de FEC par défaut est sélectionnée comme la valeur courante du paramètre de FEC. En effet, au cours de l'étape 607, la probabilité d'alternance a été déterminée comme élevée. Cela signifie que la probabilité que la période de temps courante ne corresponde pas à une congestion est élevée. Par conséquent, pour anticiper la survenance de la prochaine congestion, le paramètre de FEC prend une valeur élevée. Si la dernière période de temps n'est pas de la deuxième classe, la valeur du paramètre de FEC est calculée au cours d'une étape 806, en prenant en compte les paquets perdus obtenus après le dernier signal de transition 802.
De cette manière, le niveau de FEC est ajusté aux conditions de la période de congestion courante. En effet, seules les pertes détectées à partir de la dernière transition sont prises en compte dans le calcul de la valeur du paramètre FEC. Cela permet de minimiser la proportion de FEC tout en assurant une bonne capacité de correction.
L'algorithme d'ajustement de FEC est mis en oeuvre à intervalles de temps réguliers, en fonction d'un décompteur de temps (ou « time out ») 809. Par exemple, un nouveau calcul de valeur de paramètre de FEC peut être effectué dès que dix nouveaux paquets perdus ont été détectés ou toutes les 200 ms.
La première stratégie est représentée en 609. Cette stratégie est adoptée si la probabilité d'alternance est faible. Dans ce cas, la valeur de paramètre FEC par défaut est lue au cours d'une étape 811 et le niveau de protection FEC prend cette valeur au cours d'une étape 812. La figure 9 représente un exemple de calcul de la valeur de paramètre du FEC. Ces 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 réalisée par un XOR FEC de paramètre (1, n). Ces valeurs signifient que n paquets de données sont utilisés pour générer un paquet FEC. Si l'un de ces paquets de données est perdu sur le réseau, il peut être restauré à partir des autres paquets de données et du paquet de redondance FEC.
Un tel format de FEC est bien connu et est utilisé pour protéger des paquets RTP comme décrit dans le document RFC-5109. D'autres FEC peuvent être utilisés, tels que les codes de Reed-Solomon. Les paramètres de FEC Reed-Solomon diffèrent par rapport à l'exemple donné ci-dessus. Cependant, l'homme du métier sait adapter la description à d'autres types de FEC. Le niveau de redondance dépend de la valeur du paramètre n. Si n est faible (par exemple 3), la capacité de correction sera supérieure à celle liée à une valeur plus élevée. On cherche à calculer la valeur optimale de n. Par exemple, si le taux de perte cible après protection par FEC est LR = 0,00001, la valeur de n doit être déterminée pour atteindre ce taux de perte après protection par FEC. Les numéros séquentiels des paquets perdus au cours de la dernière période temporelle sont sélectionnés. On suppose que les numéros séquentiels sont ceux illustrés en 900.
Dans cet exemple, les numéros séquentiels des paquets perdus sont 8, 11, 12, 15 et 19. Les numéros séquentiels des paquets reçus peuvent se déduire de ceux des paquets perdus. A partir de ces deux ensembles de numéros, on tente de déterminer la meilleure valeur du paramètre n. Pour la calculer, on teste différentes valeurs candidates. Pour chaque valeur candidate, et à partir des deux ensembles de numéros séquentiels, un calcule un taux de perte LR. La valeur du paramètre n qui donne la valeur la plus proche du taux de perte cible est choisie comme valeur à utiliser. Par exemple, lorsque l'on teste la valeur candidate n = 2. Différentes simulations faites avec les ensembles de numéros de paquets perdus et reçus sont effectuées pour déterminer le taux de perte correspondant. On décrit, en regard de la figure 9, une telle simulation.
Dans la première de ces simulations, au cours d'une étape 901, trois numéros séquentiels consécutifs sont sélectionnés et mis dans une table 904. Il s'agit des numéros séquentiels 8, 9 et 10, en figure 10. Les numéros 9 et 10 correspondent à des paquets transmis et le numéro 8 à un paquet perdu.
Puisque la valeur candidate est égale à 2, les paquets de numéro séquentiel 8 et 9 sont supposés être des paquets de données et le paquet de numéro séquentiel 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 séquentiel 8 est corrigé. En conséquence, le taux de perte résiduel pour les deux paquets de données de numéros séquentiels 8 et 9 est de O. La même simulation est effectuée en déplaçant progressivement le triplet de numéros séquentiels, comme illustré en 902 et, après neuf déplacements, en 903. Dans ce dernier cas, les paquets de numéros séquentiels 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 perdus résiduel 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 T(n) T(n) donc : 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) =ti (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 utilisée au cours de l'étape de caractérisation de période de temps 504.
Le même algorithme est mis en oeuvre par le module 806 illustré en figure 8. Cependant, dans ce cas, on ne traite pas une période de temps entière. Seuls les numéros séquentiels des paquets perdus depuis la dernière transition détectée sont utilisés. En effet, l'algorithme de calcul du paramètre de FEC est suivi alors que la période de congestion en cours n'est pas achevée.
La figure 10 illustre comment, au cours de l'étape 607, la probabilité d'alternance est calculée. En particulier, le cadre 1004 correspond au traitement effectué au cours de l'étape 607.
La référence 1000 représente un ensemble de périodes de temps de la base de données de périodes de temps 402. Ici, douze périodes R1 à R12 sont illustrées. Les références 1002 et 1003 représentent ces périodes de temps classées comme exposé en regard de la figure 7. Ici, les périodes de la première classe sont les périodes R1, R3, R5, R7, R9 et R11.
Au cours de l'étape 607, la probabilité d'alternance est calculée selon l'équation suivante :
P = 1 ~l~Ré_i Classé ) Nû1 é-z Classé est la classe de la période de temps Ré et N le nombre de périodes de temps considérées. En d'autres termes, P est le nombre d'alternances entre les deux classes lors du parcours des périodes de temps successives, divisée par N-1. Si la probabilité P est supérieure à une valeur limite donnée, la probabilité d'alternance est considérée comme élevée. Par exemple, la valeur limite est de 0,95.
La figure 11 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 média 1110. Le dispositif 1110 comporte une interface de communication 1112 connectée à un réseau 1113 et adapté à recevoir des données numériques à traiter. Le dispositif 1110 comporte aussi des moyens de stockage 1108, tels qu'un disque dur, un lecteur 1109 de disque 1105. Le disque 1105 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 disque 1105 et les moyens de stockage 1108 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 1110. En variante, chaque programme permettant au dispositif 1110 d'implémenter le procédé objet de la présente invention peut être conservé et lu dans une mémoire non re-inscriptible 1102 (appelée ROM pour "Read Only Memory"). En variante, chaque programme peut être reçu du réseau de communication 1113, pour est stocké comme exposé ci-dessus. Le dispositif 1110 possède un écran d'affichage 1104 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 1114 ou tout autre moyen, notamment de pointage. L'unité centrale de traitement 1100 (appelée « CPU » en figure 11), exécute les instructions de chaque programme implémentant le procédé objet de la présente invention. Par exemple, l'unité centrale 1100 réalise les étapes illustrées en figure 4. Lors de la mise sous tension, chaque dit programme est transféré depuis une mémoire non volatile, par exemple la mémoire 1102, dans une mémoire à accès aléatoire (« RAM ») 1103, 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'informations, 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 1101 permet la communication entre les différents éléments du dispositif 1110 qui lui sont relies. La représentation de ce bus 1101 n'est pas limitative et, en particulier, l'unité centrale 1100 peut communiquer des instructions à tout élément du dispositif 1110, directement ou par l'intermédiaire d'autres éléments du dispositif 1110.
Le dispositif 1110 comprend, en outre, un codec (ou codeur-décodeur) 1106, par exemple sous la forme d'une puce (« chip ») standard, utilisée par l'unité centrale 1100 d'une manière conventionnelle par l'intermédiaire du bus 1101, pour encoder ou décoder des données reçues du réseau 313 ou d'un capteur d'image électronique 1107, par exemple une caméra numérique.

Claims (11)

  1. REVENDICATIONS1. Procédé pour adapter des codes de correction d'erreur dans un réseau de communication, caractérisé en ce qu'il comporte : - une étape de détermination de périodes de temps homogènes en ce qui concerne la loi de distribution de pertes sur le réseau, - une étape de classification des périodes de temps homogènes dans au moins deux classes, en fonction d'une information représentative des pertes sur le réseau et/ou d'un niveau de protection correspondant, au cours de ces périodes de temps, - une étape de détermination d'une probabilité d'alternance entre deux desdites classes, et - une étape de sélection d'une stratégie de protection en fonction de ladite probabilité d'alternance.
  2. 2. Procédé selon la revendication 1, dans lequel, au cours de l'étape de sélection d'une stratégie de protection, une première stratégie susceptible d'être sélectionnée comporte la mise en oeuvre d'un niveau de protection fixe pour les futures périodes de temps homogènes de chaque classe, et une deuxième stratégie susceptible d'être sélectionnée comporte la mise en oeuvre d'un niveau de protection fixe pour les futures périodes de temps homogènes de l'une des classes et un niveau de protection variable pour les futures périodes de temps homogènes d'une autre classe.
  3. 3. Procédé selon la revendication 2, dans lequel, dans le cas de la deuxième stratégie : la classe de périodes de temps homogènes pour lesquelles il a été mis en oeuvre un niveau de protection fixe correspond aux périodes de temps ayant subi le moins de pertes, et l'autre classe de périodes de temps homogènes pour lesquelles il a été mis en oeuvre un niveau de protection variable correspond aux périodes de temps ayant subi le plus de pertes.
  4. 4. Procédé selon l'une quelconque des revendications 2 ou 3, dans lequel la première stratégie est sélectionnée lorsque la probabilité d'alternance est inférieure à une valeur prédéterminée et la deuxième stratégie est sélectionnée lorsque la probabilité d'alternance est supérieure à une valeur prédéterminée.
  5. 5. Procédé selon l'une quelconque des revendications 2 à 4, dans lequel, au cours de l'étape de sélection de stratégie, dans la première ou la deuxième stratégie, le niveau de protection fixe correspond à la protection nécessaire pour la période de temps subissant le plus fort taux de perte.
  6. 6. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel, au cours de l'étape de classification, une première classe correspond aux périodes de temps avec un faible niveau de protection FEC et/ou un faible taux de perte et une deuxième classe correspond aux périodes de temps avec un niveau de protection par FEC élevé et/ou un taux de perte fort.
  7. 7. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel, au cours de l'étape de classification, on met en oeuvre un algorithme de « Lloyd- max ».
  8. 8. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel, au cours de l'étape de détermination d'une probabilité d'alternance, cette probabilité est égale au nombre d'alternances entre les deux classes lors du parcours des périodes de temps successives, divisée par le nombre de périodes considérées moins un.
  9. 9. Dispositif pour adapter des codes de correction d'erreur dans un réseau de communication, caractérisé en ce qu'il comporte : - un moyen de détermination de périodes de temps homogènes en ce qui concerne la loi de distribution de pertes sur le réseau, - un moyen de classification des périodes de temps homogènes dans au moins deux classes, en fonction d'une information représentative des pertes sur le réseau et/ou d'un niveau de protection correspondant, au cours de ces périodes de temps, - un moyen de détermination d'une probabilité d'alternance entre deux desdites classes, et- un moyen de sélection d'une stratégie de protection en fonction de ladite probabilité d'alternance.
  10. 10. Programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en oeuvre du procédé 5 selon l'une quelconque des revendications 1 à 8.
  11. 11. 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 quelconque des revendications 1 à 8.
FR1052597A 2010-04-06 2010-04-06 Procede et dispositif pour adapter des codes de correction d'erreur dans un reseau de communication Expired - Fee Related FR2958473B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1052597A FR2958473B1 (fr) 2010-04-06 2010-04-06 Procede et dispositif pour adapter des codes de correction d'erreur dans un reseau de communication
US13/079,702 US8621313B2 (en) 2010-04-06 2011-04-04 Method and a device for adapting error protection in a communication network, and a method and device for detecting between two states of a communication network corresponding to different losses of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1052597A FR2958473B1 (fr) 2010-04-06 2010-04-06 Procede et dispositif pour adapter des codes de correction d'erreur dans un reseau de communication

Publications (2)

Publication Number Publication Date
FR2958473A1 true FR2958473A1 (fr) 2011-10-07
FR2958473B1 FR2958473B1 (fr) 2012-05-25

Family

ID=43067027

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1052597A Expired - Fee Related FR2958473B1 (fr) 2010-04-06 2010-04-06 Procede et dispositif pour adapter des codes de correction d'erreur dans un reseau de communication

Country Status (1)

Country Link
FR (1) FR2958473B1 (fr)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020069038A1 (en) * 2000-12-06 2002-06-06 Motorola, Inc. Apparatus and method for providing adaptive forward error correction utilizing the error vector magnitude metric
US20060031738A1 (en) * 2002-10-30 2006-02-09 Koninklijke Philips Electronics, N.V. Adaptative forward error control scheme
US7072291B1 (en) * 2001-08-23 2006-07-04 Cisco Technology, Inc. Devices, softwares and methods for redundantly encoding a data stream for network transmission with adjustable redundant-coding delay
US20060251011A1 (en) * 2005-03-30 2006-11-09 At&T Corp. Loss tolerant transmission control protocol
US20060253763A1 (en) * 2005-04-04 2006-11-09 Stmicroelectronics S.R.I. Method and system for correcting burst errors in communications networks, related network and computer-program product
US20090252050A1 (en) * 2006-08-17 2009-10-08 Dolby Laboratories Licensing Corporation Transient analysis of packet queuing loss in a broadcast network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020069038A1 (en) * 2000-12-06 2002-06-06 Motorola, Inc. Apparatus and method for providing adaptive forward error correction utilizing the error vector magnitude metric
US7072291B1 (en) * 2001-08-23 2006-07-04 Cisco Technology, Inc. Devices, softwares and methods for redundantly encoding a data stream for network transmission with adjustable redundant-coding delay
US20060031738A1 (en) * 2002-10-30 2006-02-09 Koninklijke Philips Electronics, N.V. Adaptative forward error control scheme
US20060251011A1 (en) * 2005-03-30 2006-11-09 At&T Corp. Loss tolerant transmission control protocol
US20060253763A1 (en) * 2005-04-04 2006-11-09 Stmicroelectronics S.R.I. Method and system for correcting burst errors in communications networks, related network and computer-program product
US20090252050A1 (en) * 2006-08-17 2009-10-08 Dolby Laboratories Licensing Corporation Transient analysis of packet queuing loss in a broadcast network

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHEN R ET AL: "ADAPTIVE ERROR CODING USING CHANNEL PREDICTION", WIRELESS NETWORKS, ACM, 2 PENN PLAZA, SUITE 701 - NEW YORK USA LNKD- DOI:10.1023/A:1019166020294, vol. 5, no. 1, 1 January 1999 (1999-01-01), pages 23 - 31, XP000804142, ISSN: 1022-0038 *
KIM K H ET AL: "ENERGY-AWARE ERROR CORRECTION FOR QOS-PROVISIONING REAL-TIME COMMUNICATIONS IN WIRELESS NETWORKS", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS,COMMUNICATIONS AND COMPUTER SCIENCES, ENGINEERING SCIENCES SOCIETY, TOKYO, JP LNKD- DOI:10.1093/IETFEC/E91-A.7.1682, vol. E91A, no. 7, 1 July 2008 (2008-07-01), pages 1682 - 1685, XP001515487, ISSN: 0916-8508 *
QINGWEN LIU ET AL: "TCP performance in wireless access with adaptive modulation and coding", COMMUNICATIONS, 2004 IEEE INTERNATIONAL CONFERENCE ON PARIS, FRANCE 20-24 JUNE 2004, IEEE, PISCATAWAY, NJ, USA LNKD- DOI:10.1109/ICC.2004.1313300, vol. 7, 20 June 2004 (2004-06-20), pages 3989 - 3993, XP010709863, ISBN: 978-0-7803-8533-7 *
VINCENT LAU ET AL: "On the encoding rate and discrete modulation adaptation design for MIMO links", IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 5, no. 1, 1 January 2007 (2007-01-01), pages 50 - 54, XP011171882, ISSN: 1536-1276 *

Also Published As

Publication number Publication date
FR2958473B1 (fr) 2012-05-25

Similar Documents

Publication Publication Date Title
EP2510701B1 (fr) Procede et systeme pour la determination de parametres de codage sur des flux a resolution variable
EP3503618B1 (fr) Procédé de régulation de débit
FR2948249A1 (fr) Procedes et dispositifs d&#39;estimation d&#39;un niveau d&#39;utilisation d&#39;un reseau de communication et d&#39;adaptation d&#39;un niveau d&#39;abonnements a des groupes multipoints
US8621313B2 (en) Method and a device for adapting error protection in a communication network, and a method and device for detecting between two states of a communication network corresponding to different losses of data
FR2916600A1 (fr) Procede et dispositif de transmission de donnees
FR2935862A1 (fr) Procede de prediction du taux d&#39;erreurs de transmission dans un reseau de communication et serveur mettant en oeuvre un tel procede
EP1834488A1 (fr) Procede et dispositif de codage video
FR2897741A1 (fr) Procede et dispositif de generation de donnees representatives d&#39;un degre d&#39;importance de blocs de donnees et procede et dispositif de transmission d&#39;une sequence video encodee
FR2927749A1 (fr) Procede et dispositif de transmission de donnees, notamment video.
FR2908585A1 (fr) Procede et dispositif de transmission de donnees video.
FR2906950A1 (fr) Procede et dispositifs pour adapter le debit de transmission d&#39;un flux de donnees en presence d&#39;interferences.
FR2944938A1 (fr) Procede et dispositif de correction d&#39;erreurs.
FR2932938A1 (fr) Procede et dispositif de transmission de donnees
FR2930387A1 (fr) Procede de traitement d&#39;un flux de donnees codes
FR2928807A1 (fr) Procede de transmission sur un reseau de communication d&#39;un signal video pre-encode
EP3420698B1 (fr) Prédiction de mos de session multimédia
EP1834489A1 (fr) Procede et dispositif de codage video
EP3840335B1 (fr) Réception d&#39;un contenu numérique en mode truque
EP2704344A1 (fr) Méthode d&#39;optimisation des ressources d&#39;une transmission de données et dispositif mettant en oeuvre la méthode
FR2866183A1 (fr) Procedes d&#39;emission et de reception d&#39;une animation, et dispositifs associes
EP1172958A1 (fr) Système de communication, émetteur, mèthode de protection contre des erreurs de transmission
FR2958473A1 (fr) Procede et dispositif pour adapter des codes de correction d&#39;erreur dans un reseau de communication
FR2942095A1 (fr) Procede et dispositif d&#39;identification de pertes de donnees video
JP4634339B2 (ja) ユーザ体感品質推定装置、方法、およびプログラム
EP1241894A1 (fr) Procédé de codage d&#39;images numériques basé sur la dissimulation d&#39;erreurs

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20131231