FR 2906950 A1 20080411 FR 0654119 A 20061005 1 La présente invention concerne la transmission de données à travers un réseau sans-fil et plus particulièrement un procédé et des dispositifs pour adapter le débit de transmission d'un flux de données en présence d'interférences, lorsque plusieurs flux de données sont reçus simultanément par un récepteur. La popularité des réseaux sans-fil s'est imposée ces dernières années au fur et à mesure que la technologie est devenue mature et accessible à un grand nombre de consommateurs. De plus en plus de périphériques électroniques sont désormais équipés avec une interface réseau sans-fil, implémentant des protocoles sans-fil tels que les standards IEEE 802.11(a/b/g). Comparés aux réseaux filaires tels que par exemple Ethernet, les réseaux sans-fil facilitent la mobilité, la flexibilité d'accès aux réseaux de communication et l'interopérabilité entre les périphériques. Bien que les débits offerts par les réseaux sans-fil soient généralement moindres que ceux offerts par les réseaux filaires, ils se montrent cependant suffisants pour un grand nombre d'usages courants. De plus, les vitesses de transfert disponibles sur les réseaux sans-fil ne cessent de progresser avec les avancées technologiques. Dans ce contexte, plusieurs périphériques sont en mesure d'émettre simultanément au moins un flux vidéo compressé en direction d'un même périphérique, par exemple un ensemble de caméras vidéo émettant vers un récepteur de télévision, à l'aide de protocoles adaptés à la transmission de flux vidéo tel que RTP (Real-Ume Transport Protocol). Le flux vidéo est découpé en une succession de paquets de données par le périphérique serveur. Ces paquets sont transmis au fur et à mesure qu'ils sont générés et sont joués par le périphérique client au fur et à mesure qu'ils sont reçus (video streaming). Classiquement, il existe des mécanismes de contrôle de congestion qui permettent d'assurer au mieux un partage équitable de la bande passante disponible entre les différents flux vidéo. Un exemple d'un tel mécanisme est 2906950 2 TCP-Friendly Rate Control, ou TFRC, (TCP signifie Transmission Control Protocol). Ce mécanisme permet aux périphériques serveurs d'estimer et de partager la bande passante disponible sans interaction ni synchronisation explicites entre eux à partir de l'observation des variations du temps d'aller- 5 retour d'un paquet (round-trip time ou RTT) et du taux de perte des paquets à l'aide d'une équation simulant le comportement d'un trafic TCP/IP (Transmission Control Protocol / Internet Protocol) dans les mêmes conditions. En fonction de la bande passante disponible ainsi estimée, les périphériques peuvent mettre en oeuvre des techniques d'adaptation du débit vidéo afin 10 d'obtenir un flux vidéo compatible avec la bande passante estimée. Une des particularités importantes d'un environnement réseau sans-fil est que les ondes radios sont sujettes à des interférences soit à cause d'une modification de l'environnement pendant que le périphérique client ou le périphérique serveur se déplace (par exemple atténuation ou réverbération), 15 soit à cause de perturbations provenant d'autres périphériques émettant dans la même bande de fréquence. Par exemple, les réseaux 802.11 utilisant des fréquences comprises entre 2,4 et 2,4835 GHz peuvent être perturbés par un four à micro-ondes, des périphériques bluetooth et des transmetteurs domestiques. Ces interférences intermittentes se traduisent par une perte plus 20 ou moins importante des paquets pouvant être interprétée par les mécanismes de contrôle de congestion comme un signe de congestion du réseau. Classiquement, ces mécanismes réagissent en présence de congestion en baissant leur estimation de la bande passante disponible. Cette baisse estimée de la bande passante peut provoquer une rupture de l'affichage du flux vidéo ou 25 une perte significative de la qualité d'affichage pour l'utilisateur sur le périphérique destinataire. Or, en présence d'interférences, il est généralement admis qu'il est préférable de réagir différemment, par exemple en réduisant la taille des paquets émis pour réduire l'impact des paquets perdus ou encore en mettant en oeuvre des mécanismes de correction d'erreurs. 30 Il est donc important de pouvoir distinguer les types d'erreurs et d'adapter l'estimation de la bande passante de manière à limiter, pour 2906950 3 l'utilisateur, les perturbations d'affichage résultant de la présence momentanée d'interférences. La demande de brevet WO 03/058894 décrit une méthode pour augmenter le débit des données sur un réseau sans-fil de type IEEE 802.11 en 5 présence d'interférences intermittentes causées, par exemple, par des périphériques tels que des périphériques Bluetooth ou des fours à micro-ondes afin de bénéficier autant que possible des périodes de transmission sans conflit. La qualité du canal de communication est évaluée au niveau de la carte réseau en se basant sur le taux d'erreurs de paquets (packet error rate, 10 ou PER) et sur la force du signal. A partir de ces valeurs, si une interférence intermittente est détectée (en comparant le taux d'erreurs de paquets et la force du signal à des valeurs seuils), la cadence d'émission des paquets est augmentée et dans le même temps la taille des paquets est raccourcie de manière à réduire la probabilité de collisions de paquets. Si par contre 15 l'interférence est jugée constante la cadence d'émission est réduite. Un dispositif client ne disposant pas d'informations sur la force du signal reçu ne peut pas mettre en oeuvre cette méthode. La demande de brevet US 20020053053 décrit un appareil de transmission de flux multimédia qui permet d'estimer les conditions de 20 transmission en utilisant au moins les informations de gigue (jitter), c'est-à-dire une variation dans le délai séparant l'arrivée de deux paquets successifs, ou le taux de perte de paquets, fournis par un appareil receveur. Suivant les conditions de transmission ainsi déterminées (présence de congestion ou d'interférences, l'appareil émetteur peut adapter au moins un des paramètres 25 de transmission suivants : la vitesse de transfert des données (data bit rate) et le niveau de résistance du flux multimédia aux erreurs de transmission. Cette méthode est mise en oeuvre sur un serveur et par conséquent, elle n'est pas adaptée au cas d'un client recevant plusieurs flux vidéo d'une pluralité de serveurs car il n'est pas possible d'adapter le traitement aux exigences du 30 client. L'article `End-to-End Differentiation of Congestion and Wireless Losses', Cen, Cosman and Voelker, IEEE/ACM Transactions on Networking, 2906950 4 Vol. 11, NO. 5, October 2003 présente plusieurs méthodes basées sur des heuristiques permettant de différencier les pertes de paquets provenant d'une congestion du réseau des pertes de paquets erronés provenant de problèmes de transmission ou d'interférences sur le réseau sans-fil. Ces heuristiques sont 5 basées sur l'observation des variations du temps de transmission d'un paquet ou sur le temps séparant la réception de deux paquets successifs. Cependant, bien que ces algorithmes soient une bonne aide pour distinguer les types de pertes de paquets, la nature complexe du comportement d'un réseau sans-fil aboutit à ce que le taux d'erreurs de classification en 10 utilisant ces heuristiques reste très élevé et peut ainsi aboutir à une sous-utilisation de la bande passante disponible. Il existe ainsi un besoin pour les périphériques clients recevant des flux de données et en particulier des flux vidéo, à travers un réseau sans-fil, en provenance de plusieurs périphériques serveurs, d'optimiser la transmission 15 des paquets de données. Ces transmissions pouvant être sujettes à des interférences, un problème technique à résoudre est la détection de la présence d'interférences et la décision de la répartition de la bande passante entre plusieurs serveurs émettant des flux de données vers un même terminal client. Une telle optimisation permet de maintenir une bonne qualité d'affichage d'un 20 flux vidéo tout en évitant un risque de congestion des autres serveurs. L'invention permet de résoudre au moins un des problèmes exposés précédemment. L'invention a ainsi pour objet un procédé pour déterminer le type d'erreur de transmission de paquets de données reçus d'une première source 25 lors de la réception de paquets de données transmis par la première source et par au moins une seconde source, différente de la première source, ce procédé comprenant les étapes suivantes : - détermination d'un taux d'erreur de transmission de paquets de données pour chacune des première et seconde sources ; 30 - comparaison des taux d'erreur de transmission de paquets de données des première et seconde sources ; et, 2906950 5 - détermination du type d'erreur de transmission de paquets de données transmis de la première source selon le résultat de la comparaison des taux d'erreur de transmission de paquets de données des première et seconde sources. 5 La détermination du type d'erreur de transmission d'un paquet de données dans un réseau permet de caractériser l'état du réseau et ainsi, de prendre les mesures nécessaires pour l'optimiser. Selon un mode de réalisation particulier, l'étape de détermination du type d'erreur de transmission de paquets de données transmis de la première 10 source selon le résultat de la comparaison des taux d'erreur de transmission de paquets de données des première et seconde sources comprend les étapes suivantes : - modification de paramètres d'un algorithme de différenciation de pertes de paquets de données selon le résultat de la comparaison des taux 15 d'erreur de transmission de paquets de données des première et seconde sources ; et, -détermination du type d'erreur de transmission de paquets de données transmis de la première source selon l'algorithme de différenciation de pertes de paquets de données. 20 La détermination du type d'erreur selon ce mode de réalisation est basée sur un algorithme de différenciation de pertes de paquets de données dont les paramètres dépendent des taux d'erreur de transmission des différentes sources. Ainsi, la détermination du type d'erreur est liée à une analyse de la transmission de paquets de données d'une source particulière 25 ainsi qu'à l'analyse générale des transmissions de paquets de données dans le réseau. Cette double analyse permet d'accroître la précision de détermination du type d'erreur. Avantageusement, les taux d'erreur de transmission de paquets de données sont des taux de perte global de paquets de données. Selon un mode de réalisation particulier, une erreur de transmission 30 est du type congestion ou du type interférence. L'invention a également pour objet un procédé pour optimiser la réception d'une pluralité de paquets de données, les paquets de données de la 2906950 6 pluralité de paquets de données étant transmis par au moins deux sources différentes, ce procédé comprenant les étapes suivantes : - détermination du type d'erreur de transmission de paquets de données reçus d'au moins l'une des au moins deux sources différentes, 5 appelée première source, selon le procédé décrit précédemment ; et, - adaptation d'au moins un paramètre de transmission ou de codage des données de la première source. Selon ce procédé, le type d'erreur est utilisé pour optimiser la transmission de données entre la source dont le type d'erreur de transmission a 10 été déterminée et le récepteur. L'invention permet ainsi d'éviter que plusieurs serveurs rencontrent des problèmes de congestion pendant qu'un autre serveur est amené à augmenter son débit en présence d'interférences intermittentes. Le paramètre de transmission ou de codage modifié est, de préférence, transmis à la première source. 15 Selon un mode de réalisation particulier, le procédé de l'invention comprend en outre les étapes suivantes, - détermination du type de flux de données auquel appartiennent les paquets de données reçus de la première source ; et, - si le flux de données est un flux de données principal, modification 20 de la bande passante allouée à la première source et à au moins une autre source, distincte de ladite première source. Toujours selon un mode de réalisation particulier, l'étape de modification de la bande passante comprend les étapes suivantes, - comparaison du taux de perte de paquets de la première source, 25 lié à des erreurs de transmission de type interférence, avec un seuil prédéterminé ; et, - si le taux de perte de paquets de la première source, lié à des erreurs de transmission de type interférence, est supérieur au seuil prédéterminé, augmentation de la bande passante allouée à ladite première 30 source. De préférence, l'étape d'augmentation de la bande passante allouée à la première source comprend une étape de diminution de la bande passante 2906950 7 allouée à la au moins une autre source, distincte de la première source. Avantageusement, le procédé comprend également une étape d'annulation de la modification de la bande passante allouée à la première source et à au moins une autre source si le taux de perte de paquets de la première source, lié à des 5 erreurs de transmission de type interférence, est inférieur au seuil prédéterminé. Selon ces caractéristiques, l'invention permet, en particulier, de fournir la meilleure qualité d'affichage des flux vidéo provenant de plusieurs serveurs en présence d'interférences localisées, en fonction de l'intérêt de 10 l'utilisateur. Toujours selon un mode de réalisation particulier, le procédé comprend en outre une étape de calcul du taux de perte de paquets de données transmis de la première source, lié à des erreurs de congestion du réseau à travers lequel les paquets de données sont transmis, et du taux de 15 perte de paquets de données transmis de la première source, lié à des erreurs d'interférence dans le réseau à travers lequel les paquets de données sont transmis. Cette caractéristique permet de maintenir une représentation de l'état du réseau et ainsi, d'optimiser les paramètres de transmission et de codage des paquets de données. 20 Toujours selon un mode de réalisation particulier, les paquets de données sont transmis à travers un réseau sans-fil. L'invention a également pour objet un programme d'ordinateur comprenant des instructions adaptées à la mise en oeuvre de chacune des étapes du procédé décrit précédemment. 25 L'invention a également pour objet un dispositif pour déterminer le type d'erreur de transmission de paquets de données reçus d'une première source lors de la réception de paquets de données transmis par la première source et par au moins une seconde source, différente de la première source, ce dispositif comprenant les moyens suivants : 30 - des moyens pour déterminer un taux d'erreur de transmission de paquets de données pour chacune des première et seconde sources ; 2906950 8 - des moyens pour comparer les taux d'erreur de transmission de paquets de données des première et seconde sources ; et, - des moyens pour déterminer le type d'erreur de transmission de paquets de données transmis de la première source selon le résultat de la 5 comparaison des taux d'erreur de transmission de paquets de données des première et seconde sources. Comme indiqué précédemment, la détermination du type d'erreur de transmission d'un paquet de données dans un réseau permet de caractériser l'état du réseau et ainsi, de prendre les mesures nécessaires pour l'optimiser. 10 Selon un mode de réalisation particulier, les moyens pour déterminer le type d'erreur de transmission de paquets de données transmis de la première source selon le résultat de la comparaison des taux d'erreur de transmission de paquets de données des première et seconde sources comprennent les moyens suivants : 15 - des moyens pour modifier des paramètres d'un algorithme de différenciation de pertes de paquets de données selon le résultat de la comparaison des taux d'erreur de transmission de paquets de données des première et seconde sources ; et, -des moyens pour déterminer le type d'erreur de transmission de 20 paquets de données transmis de la première source selon l'algorithme de différenciation de pertes de paquets de données. La détermination du type d'erreur selon ce mode de réalisation est basée sur des moyens mettant en oeuvre un algorithme de différenciation de pertes de paquets de données dont les paramètres dépendent des taux d'erreur 25 de transmission des différentes sources. Ainsi, la détermination du type d'erreur est liée à une analyse de la transmission de paquets de données d'une source particulière ainsi qu'à l'analyse générale des transmissions de paquets de données dans le réseau. Ces moyens de double analyse permettent d'accroître la précision de détermination du type d'erreur. 30 L'invention a également pour objet un dispositif pour optimiser la réception d'une pluralité de paquets de données, les paquets de données de la 2906950 9 pluralité de paquets de données étant transmis par au moins deux sources différentes, ce dispositif comprenant les moyens suivants : - des moyens pour déterminer le type d'erreur de transmission de paquets de données reçus d'au moins l'une des au moins deux sources 5 différentes, appelée première source, selon le dispositif décrit précédemment ; et, - des moyens pour adapter au moins un paramètre de transmission ou de codage des données de ladite première source. Avantageusement, le dispositif comprend en outre des moyens pour 10 transmettre à la première source le au moins un paramètre adapté. Selon ce dispositif, le type d'erreur est utilisé pour optimiser la transmission de données entre la source dont le type d'erreur de transmission a été déterminée et le récepteur. L'invention permet ainsi d'éviter que plusieurs serveurs rencontrent des problèmes de congestion pendant qu'un autre serveur 15 est amené à augmenter son débit en présence d'interférences intermittentes. Selon un mode de réalisation particulier, le dispositif comprend en outre les moyens suivants, - des moyens pour déterminer le type de flux de données auquel appartiennent les paquets de données reçus de la première source ; et, 20 - des moyens pour modifier la bande passante allouée à la première source et à au moins une autre source, distincte de la première source, si le flux de données est un flux de données principal. Toujours selon un mode de réalisation particulier, les moyens pour modifier la bande passante comprennent les moyens suivants, 25 - des moyens pour comparer le taux de perte de paquets de la première source, lié à des erreurs de transmission de type interférence, avec un seuil prédéterminé ; et, - des moyens pour augmenter la bande passante allouée à la première source si le taux de perte de paquets de la première source, lié à des 30 erreurs de transmission de type interférence, est supérieur au seuil prédéterminé. 2906950 10 Avantageusement, les moyens pour augmenter la bande passante allouée à la source comprennent des moyens pour diminuer la bande passante allouée à la au moins une autre source, distincte de la première source. De préférence, le dispositif comprend également des moyens pour annuler la 5 modification de la bande passante allouée à la première source et à au moins une autre source si le taux de perte de paquets de la première source, lié à des erreurs de transmission de type interférence, est inférieur au seuil prédéterminé. Selon ces caractéristiques, le dispositif selon l'invention permet, en 10 particulier, de fournir la meilleure qualité d'affichage des flux vidéo provenant de plusieurs serveurs en présence d'interférences localisées, en fonction de l'intérêt de l'utilisateur. Selon un mode de réalisation particulier, le dispositif comprend en outre des moyens pour calculer le taux de perte de paquets de données 15 transmis de la première source, lié à des erreurs de congestion du réseau à travers lequel les paquets de données sont transmis, et le taux de perte de paquets de données transmis de la première source, lié à des erreurs d'interférence dans le réseau à travers lequel les paquets de données sont transmis. Ces moyens permettent de maintenir une représentation de l'état du 20 réseau et ainsi, d'optimiser les paramètres de transmission et de codage des paquets de données. D'autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d'exemple non limitatif, au regard des dessins annexés dans lesquels : 25 - la figure 1 représente schématiquement un exemple de l'environnement dans lequel la présente invention peut être mise en oeuvre ; - la figure 2 illustre un exemple de dispositif adapté à mettre en oeuvre la présente invention ; - la figure 3, comprenant les figures 3a et 3b, est un exemple 30 d'écrans d'affichage et de sélection d'un flux vidéo principal ; - la figure 4 illustre la méthode de différenciation de pertes de paquets ; et, 2906950 11 - la figure 5, comprenant les figures 5a et 5b, représente certaines étapes d'un exemple d'algorithme pour optimiser la réception de paquets de plusieurs flux de données, par un périphérique client, selon la présente invention. 5 Selon l'invention, la solution aux problèmes exposés précédemment consiste tout d'abord, pour le périphérique client, à déterminer qu'un flux de données en provenance d'un périphérique serveur est perturbé par des interférences intermittentes. Pour cela, il maintient un état de la transmission pour chacun des flux de données en provenance des différents périphériques 10 serveurs. L'état de la transmission peut être lié, en particulier, à la variation du délai entre deux paquets successifs (jitter), au temps de transmission d'un paquet sur le réseau, à la taille des rafales d'erreurs (error bursts), à leur période et au taux de perte des paquets. Si le périphérique client observe une augmentation des pertes de paquets sur l'un des flux de données reçus, les 15 autres flux de données se comportant normalement, le périphérique client peut conclure qu'il ne s'agit pas d'un problème de congestion du réseau mais probablement d'un problème d'interférences. Le périphérique client peut ainsi en informer le périphérique serveur pour lui confirmer qu'il ne s'agit pas d'un problème de congestion. Ainsi, le périphérique serveur ne risque pas de faire 20 une erreur d'interprétation et, en conséquence, il pourra prendre les contre-mesures adéquates à la présence d'interférences. De telles mesures sont, par exemple, l'augmentation de la proportion de paquets de correction d'erreurs (FEC) et la diminution de la taille des paquets émis pour réduire la probabilité de corruption des données. Les mesures de correction peuvent également 25 porter sur une adaptation des paramètres de codage du flux de données. Par exemple, dans un flux vidéo, de nombreuses images sont codées par différences avec d'autres images telles que les images de type prédictive (P). Il est fait mention de références temporelles entre images. Du fait de ces références temporelles, la présence d'une erreur dans une image se propage 30 dans les images suivantes jusqu'à la prochaine image clé de type I (les images de type I ne présentent aucune référence temporelle). Il est possible de stopper la propagation d'une erreur au travers de plusieurs images de type P en 2906950 12 modifiant les paramètres de codage et en particulier en insérant des macroblocs Intra. Cette technique est connu sous le terme anglais Adaptive Intra Refresh (AIR). En outre, s'il s'agit d'interférences intermittentes, le périphérique 5 client peut décider de modifier la répartition de la bande passante entre les différents flux de données selon l'importance du flux de données concerné par les interférences. Si le flux de données concerné par les interférences est de première importance pour l'utilisateur, le périphérique client peut attribuer un bonus de bande passante au périphérique serveur concerné par les 10 interférences intermittentes de manière à maintenir la cadence du flux de données malgré les pertes de paquets. Le périphérique client peut également demander l'utilisation de paquets de correction d'erreurs (FEC) supplémentaires. Le périphérique client en informe également les autres périphériques serveurs de manière à ce qu'ils réduisent en conséquence leur 15 cadence d'émission afin de maintenir la bande passante globale pour éviter l'apparition de congestion sur le réseau. La figure 1 illustre schématiquement un exemple d'un environnement 100 dans lequel la présente invention peut être mise en oeuvre. Selon cet exemple, un périphérique client 105 connecté à un point d'accès sans-fil 110 20 reçoit plusieurs flux audio et/ou vidéo en provenance de périphériques serveurs ayant les références 115-1, 115-2 et 115-3. Les flux audio et/ou vidéo sont transmis des périphériques serveurs vers le point d'accès à travers un réseau sans-fil, par exemple du type 802.11 WiFi. Le périphérique client 105 peut être connecté au réseau sans-fil directement à l'aide d'une interface sans-fil ou, 25 comme représenté sur la figure 1, au travers d'une connexion filaire au point d'accès sans-fil 110. Un exemple d'une telle mise en oeuvre concerne un ensemble de caméras réseaux sans-fil (wireless network camera) disséminées dans une maison, un bâtiment ou un lieu quelconque et diffusant chacune un flux vidéo ou audio/vidéo vers un même écran de visualisation raccordé à un 30 point d'accès sans-fil. Les périphériques serveurs 115-1, 115-2 et 115-3 obtiennent un flux audio, vidéo ou audio/vidéo soit à partir d'une interface d'acquisition, soit à 2906950 13 partir d'un espace de stockage. Le flux audio/vidéo compressé, par exemple au format MPEG2 ou MPEG4, est découpé en paquets. Chaque paquet est ensuite transmis au périphérique client 105 suivant un protocole adapté au transport de données avec des contraintes temps réel, tel que le transfert de 5 données audio/vidéo, comme par exemple le protocole RTP (Real-time Transport Protocol). Chaque paquet comporte un numéro de séquence incrémentai. Le protocole de transport est complété par au moins un protocole de contrôle comme par exemple RTCP (RTP Control Protocol) afin de contrôler la transmission des données, de surveiller la qualité du service et de permettre 10 l'échange d'information de contrôle entre les différents participants. En outre, les périphériques serveurs 115-1, 115-2 et 115-3 mettent en oeuvre des techniques de contrôle de flux de paquets, compatibles avec les mécanismes de contrôle de congestion du protocole TCP/IP. Ces techniques sont utilisées par les périphériques serveurs pour adapter leur vitesse de 15 transmission des paquets de manière à assurer naturellement un partage équitable de la bande passante entre les différents flux de données. Le protocole TFRC est un exemple de technique de contrôle de flux de paquets connu de l'homme du métier. La figure 1 représente également la présence d'interférences 20 intermittentes 120 influençant un sous-ensemble des périphériques serveurs, ici le serveur 115-3. Ces interférences peuvent se traduire par la perte des paquets corrompus au niveau du périphérique client. Ces interférences peuvent aussi se traduire par l'augmentation du délai de transmission et de la gigue (jitter) entre le périphérique serveur 115-3 et le périphérique client 105 du fait 25 des retransmissions des paquets perdus. Il peut s'agir de perturbations liées au déplacement du périphérique serveur ou à la présence d'autres sources d'ondes radio émettant dans la même bande de fréquence 2,4 à 2,4835 GHz telles que des fours à micro-ondes, des périphériques bluetooth et des transmetteursdomestiques. Les autres périphériques serveurs 115-1 et 115-2 30 ne sont pas, ou peu, influencés par ces interférences 120 car suffisamment éloignés ou protégés de la source de ces interférences. 2906950 14 La figure 2 illustre un exemple d'appareil 200 adapté à mettre en oeuvre l'invention. L'appareil 200 peut être utilisé comme périphérique client ou comme périphérique serveur dans l'environnement présenté sur la figure 1. L'appareil 200 est par exemple un micro-ordinateur, une station de travail, un 5 assistant personnel, un téléphone mobile ou plus généralement tout périphérique, mobile ou non, capable de se connecter, directement ou non, à un réseau de communication sans-fil. Cet appareil peut être connecté à différents périphériques tels que, par exemple une caméra numérique 205, un scanner ou tout autre moyen d'acquisition ou de stockage d'images, reliée à 10 une carte d'entrée/sortie (non représentée) et fournissant à l'appareil 200 des données multimédia. L'appareil 200 peut aussi être un appareil photo, une télévision ou un caméscope, muni d'une interface de communication permettant de se connecter à un réseau sans-fil. L'appareil 200 comporte un bus de communication 210 auquel sont 15 de préférence reliés : - une unité centrale de traitement 215 telle qu'un microprocesseur, notée CPU (Central Processing Unit) ; - une mémoire morte 220 pouvant comporter les programmes permettant de mettre en oeuvre l'invention, notée ROM (Read Only Memory) ; 20 - une mémoire vive 225, qui après la mise sous tension contient le code exécutable du procédé suivant l'invention ainsi que des registres adaptés à enregistrer des variables et des paramètres nécessaires à la mise en oeuvre de l'invention, notée RAM (Random Access Memory) ; et, - une interface de communication 230 connectée à un réseau de 25 communication, l'interface étant apte à transmettre et à recevoir des données. Optionnellement, l'appareil 200 peut disposer également des composantes suivantes : - une carte d'entrée/sortie (non représentée) reliée à un microphone 235, utilisée en particulier pour transmettre un flux audio ; 30 - un écran 240 permettant de visualiser des données et/ou de servir d'interface graphique avec l'utilisateur qui pourra interagir avec les programmes selon l'invention, à l'aide d'un clavier 245 complété ou non par tout autre moyen 2906950 15 tel qu'un dispositif de pointage, comme par exemple une souris, un crayon optique ou encore un écran tactile ; - un disque dur 250 ou une mémoire de stockage telle qu'une carte compact flash, pouvant comporter les programmes selon l'invention ainsi que 5 des données utilisées ou produites lors de la mise en oeuvre de l'invention ; et, - un lecteur de disquette 255 (ou tout autre support de données amovible) adapté à recevoir une disquette 260 et à y lire ou y écrire des données traitées ou à traiter selon l'invention. Le bus de communication permet la communication et 10 l'interopérabilité entre les différents éléments inclus dans l'appareil 200 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément de l'appareil 200 directement ou par l'intermédiaire d'un autre élément de l'appareil 200. 15 Les disquettes 260 peuvent être remplacées par tout support d'information tel que, par exemple, un disque compact (CD-ROM) réinscriptible ou non, un disque ZIP ou une carte mémoire et d'une manière générale, par un moyen de stockage d'information, lisible par un micro-ordinateur ou par un microprocesseur, intégré ou non à l'appareil, éventuellement amovible et 20 adapté à mémoriser un ou plusieurs programmes dont l'exécution permet la mise en oeuvre du procédé selon l'invention. Le code exécutable permettant à l'appareil la mise en oeuvre de l'invention peut se trouver indifféremment stocké en mémoire morte 220, sur le disque dur 250 ou sur un support numérique amovible tel que par exemple une 25 disquette 260 telle que décrite précédemment. Selon une variante, le code exécutable des programmes pourra être reçu par l'intermédiaire du réseau de communication, via l'interface 230, pour être stocké dans un des moyens de stockage de l'appareil 200 avant d'être exécuté, tel que le disque dur 250. L'unité centrale 215 est adaptée à commander et à diriger l'exécution 30 des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans l'un des moyens de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés 2906950 16 dans une mémoire non volatile, par exemple sur le disque dur 250 ou la mémoire morte 220, sont transférés dans la mémoire vive 225 qui contient alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en 5 oeuvre de l'invention. Il convient de noter que l'appareil comportant le dispositif selon l'invention peut également être un appareil programmé. Cet appareil contient alors le code du ou des programmes informatiques par exemple figé dans un circuit intégré à application spécifique (Application Specific Integrated Circuit ou 10 ASIC). Le périphérique client reçoit plusieurs flux de données, par exemple plusieurs flux vidéo à afficher. La figure 3, comprenant les figures 3a et 3b, présente des exemples d'affichage de flux vidéo sur un écran et de distinction entre un flux principal et des flux secondaires. Comme illustré sur la figure 3a, 15 les flux vidéo peuvent être affichés sous la forme d'une mosaïque d'images comprenant quatre zones de visualisation de flux vidéo référencées 300-1 à 300-4. Le flux vidéo principal peut être sélectionné par l'utilisateur à l'aide, par exemple, d'une télécommande en déplaçant un curseur à l'écran, représenté par le carré noir sur la figure 3a. Dans cet exemple, le flux vidéo correspondant 20 à la zone de visualisation 300-2 est sélectionné. L'utilisateur peut ainsi sélectionner un flux vidéo principal pour, par exemple, le visualiser en plein écran. D'une façon générale un flux de données principal fait référence à un flux de données dont le débit est plus élevé que les autres (en raison, par exemple, d'images à afficher plus grandes ou d'une fréquence 25 d'échantillonnage supérieure) ou à un flux de données ayant des contraintes de qualité plus importantes que pour les flux secondaires c'est-à-dire, par exemple, un flux de données dont le taux d'erreur doit être faible. Dans l'exemple de la figure 3b, le flux principal est affiché en plein écran dans la zone de visualisation 300'-2, les flux secondaires étant affichés 30 sous la forme de vignettes, en surimpression, dans les zones de visualisation 300'-1, 300'-3 et 300'-4. 2906950 17 La figure 4 montre un exemple d'évolution du temps de transfert d'un paquet et illustre le principe général d'un algorithme de différenciation de pertes de paquets connu sous le nom de 'spike'. La figure 4 et l'algorithme `spike' sont donnés à titre d'illustration (l'invention peut utiliser tout autre 5 algorithme de différenciation de pertes de paquets). Selon cet algorithme, le temps de transfert d'un paquet réseau (Relative One-way Trip Times ou ROTT) est utilisé pour déterminer les différents types d'erreurs. Le ROTT est la mesure du temps mis par un paquet pour aller de l'émetteur au récepteur. Ainsi, la mesure du ROTT du paquet reçu permet de déterminer les différents types 10 d'erreurs. Si la valeur du ROTT est proche du temps minimum de transfert d'un paquet mesuré sur la connexion (ROTTmin), il peut être déduit que le réseau n'est pas congestionné et que la perte d'un paquet est donc due à une erreur réseau pouvant être liée à des interférences. Si au contraire la valeur du ROTT est nettement plus importante que la valeur de ROTTmin, la perte d'un paquet 15 est probablement liée à une congestion sur le réseau. Un état est associé à chaque flux de données. Un flux de données entre dans un état dit `spike' si, - le flux de données n'était pas dans l'état `spike' précédemment ; et, 20 - le ROTT du flux de données excède un seuil Bspikestart. De manière similaire, un flux quitte un état `spike' si, - le flux de données était précédemment dans l'état `spike' ; et, - le ROTT du flux de données chute en dessous d'un seuil Bspikeend. 25 Les seuils Bspikestart et Bspikeend sont définis selon les relations suivantes : B = ROTT + a(ROTT ù ROTT ) spikestart min max min Bsp keend ROTlmin + f (ROTT x ù ROTTmin ) où ROTTmax est le temps maximum observé pour le transfert d'un 30 paquet, ROTTmin est le temps minimum observé pour le transfert d'un paquet et a et 13 sont des paramètres ajustables avec a >_ R. Les valeurs a = 1/2 et 2906950 18 R = 1/3 sont connues pour donner, en moyenne, de bons résultats. De façon classique, les deux valeurs a et R sont fixes. La flèche en trait continu (400) de la figure 4 caractérise un état 'spike' du flux de données alors que la flèche en trait pointillé (405) caractérise 5 un état non `spike'. Si une perte de paquet survient au moment où le flux de données est dans l'état `spike', il est considéré que la perte a été induite par une congestion, sinon il est considéré qu'il s'agit d'une erreur réseau. Un état `spike' correspond donc à un environnement dans lequel les erreurs de transmission sont liées à une congestion de réseau alors que l'état non `spike' 10 correspond à un environnement dans lequel les erreurs de transmission sont liées à la transmission en elle-même. Dans une variante, le temps d'un aller-retour d'un paquet (Round-Trip Time ou RTT) entre l'émetteur et le récepteur peut être utilisé en lieu et place du ROTT. 15 La figure 5, comprenant les figure 5a et 5b, représente certaines étapes d'un exemple d'algorithme pour optimiser la réception de paquets RTP de plusieurs flux de données, par un périphérique client, selon la présente invention. Selon la première étape illustrée, le périphérique client reçoit un nouveau paquet RTP en provenance d'un périphérique serveur (étape 500). 20 Dans une seconde étape, le périphérique client détermine si des paquets ont été perdus (étape 505). Chaque paquet RTP contient un numéro de séquence qui est incrémenté par le périphérique serveur pour chaque paquet émis. A la réception d'un paquet, le périphérique client compare le numéro de séquence du paquet reçu avec celui du paquet attendu, c'est-à-dire avec le dernier 25 numéro de paquet reçu, incrémenté de un, du flux de données correspondant. Si le périphérique client reçoit un paquet dont le numéro de séquence est supérieur au numéro de séquence attendu, au moins un paquet est considéré perdu. Afin d'être plus robuste en présence de réordonnancement de paquets (packets reordering), le périphérique client peut attendre la réception de 30 quelques paquets avec un numéro de séquence supérieur au numéro de séquence attendu avant de considérer un paquet comme perdu. Le périphérique client maintient à jour un taux de perte de paquets globale pour 2906950 19 chacun des flux de données entrants, en utilisant une méthode classique telle que celle présentée dans le document RTP : A Transport Protocol for Real-Time Applications , IETF, RFC 3550, January 1996. La fraction de paquets perdus peut être obtenue, par exemple, en divisant le nombre de paquets reçus 5 par le nombre de paquets attendus depuis l'envoi du dernier paquet d'information de contrôle RTCP RR (Receiver Report). Dans une étape suivante, le périphérique client compare le taux de perte globale du flux courant avec les taux de perte globale observés pour les flux de données en provenance des autres périphériques serveurs (étape 510). 10 Si le taux de perte globale est clairement supérieur à celui des autres flux de données, il est fortement probable qu'une partie plus importante des pertes observées soient liées à des interférences réseaux plutôt qu'à une congestion du réseau. Le périphérique client peut utiliser, par exemple, la relation suivante pour déterminer si le taux de perte globale courant (Taux perte) est supérieur à 15 celui des autres flux de données : Taux _ perte ù Taux _ perte Taux _ perte où Taux_ perte est la moyenne des taux de perte globale pour tous les flux de données et p est un seuil prédéterminé. Le taux de perte globale courant est considéré supérieur à celui des 20 autres flux de données si le seuil p est franchi, par exemple au-delà de 20%. Dans une variante, le client peut comparer d'une manière similaire la valeur de la gigue (jitter) associée à chacun des flux de données. Si le taux de perte globale est considéré comme étant supérieur à celui des autres flux de données, le client modifie les paramètres de 25 l'algorithme de différenciation des erreurs pour privilégier la détection d'erreurs liées à des erreurs réseaux (étape 515), c'est-à-dire en particulier aux erreurs liées aux interférences. Dans le cas de l'algorithme spike présenté précédemment, le périphérique client modifie les paramètres a et 3 de manière à relever les seuils Bspikestart et Bspikeend. Il peut fixer par exemple a = 2/3 et 30 13 = 1/2. >p 2906950 20 Si le taux de perte globale n'est pas considéré comme étant supérieur à celui des autres flux de données, le périphérique client restaure les paramètres par défaut de l'algorithme de différenciation des erreurs (étape 520). 5 Dans une étape suivante, le périphérique client détermine si des paquets ont été détectés comme étant perdus lors de l'étape 505 (étape 525). Si des paquets ont été détectés comme étant perdus, le périphérique client utilise l'algorithme de différenciation des erreurs décrit précédemment pour caractériser les pertes constatées en pertes liées à une congestion du réseau 10 ou, alternativement, en pertes liées à des erreurs du réseau (étape 530). Dans une étape suivante, le périphérique client met à jour un taux de pertes distinct pour les erreurs de congestion, noté EC et pour les erreurs réseaux, noté EW (étape 535). S'il est déterminé à l'étape 530 que le flux de données subit une congestion du réseau, l'ensemble des pertes identifiées à 15 l'étape 505 est intégré dans le calcul du taux de pertes de congestion du réseau. Réciproquement, s'il est déterminé à l'étape 530 que le flux de données subit des problèmes de transmission tels que des interférences, l'ensemble des pertes identifiées à l'étape 505 est intégré dans le calcul du taux de pertes de transmission du réseau. Les taux de pertes sont de préférence mis à jour à la 20 réception de chaque nouveau paquet afin de tenir compte des paquets reçus et des paquets perdus. Après avoir déterminé les taux de pertes de paquets EC et EW, le périphérique client détermine la nature du flux de données courant pour déterminer s'il correspond au flux de données principal (étape 540). Le flux 25 principal est celui sur lequel se porte l'intérêt de l'utilisateur, il s'agit du flux pour lequel il est souhaitable de maintenir la meilleure qualité d'affichage. Si le flux de données courant est le flux de données principal, le taux de pertes liées à des erreurs réseaux (EW) est comparé à un seuil S1 (étape 545). Le seuil S1 est de préférence relativement faible. Le seuil S1 permet au périphérique client 30 de déterminer le mode d'allocation de bande passante au flux de données courant. 2906950 21 Selon un premier mode d'allocation de bande passante au flux de données courant, appliqué en présence d'interférences sur le réseau (EW > S1), le périphérique client décide d'octroyer un bonus de bande passante au flux principal qui est soumis à des interférences (étape 550). Ce bonus peut 5 consister en un pourcentage (par exemple 10%) de la bande passante calculée par l'équation déterminée selon le TFRC. Ce bonus de bande passante permet au périphérique serveur de rendre son flux de données plus robuste aux interférences en envoyant des paquets supplémentaires de correction d'erreurs (FEC) et/ou en réduisant la taille des paquets sans avoir à réduire pour autant 10 la qualité et la cadence d'émission du flux de données. Afin d'éviter de provoquer une congestion sur le réseau en autorisant ce bonus supplémentaire, le périphérique client assigne également aux autres périphériques serveurs un malus sous la forme d'une bande passante à déduire de celle qui est déjà allouée, calculée, par exemple, selon l'équation TFRC. Le bonus en bande 15 passante attribué au flux de données principal est ainsi équitablement réparti sur l'ensemble des autres flux de données sous la forme d'un malus. Selon un second mode d'allocation de bande passante au flux de données courant, correspondant à un mode normal de fonctionnement (EW REVENDICATIONS 1. Procédé pour déterminer le type d'erreur de transmission de paquets de données reçus d'une première source lors de la réception de paquets de données transmis par ladite première source et par au moins une seconde source (115-1, 115-2, 115-3), différente de ladite première source, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes : -détermination d'un taux d'erreur de transmission de paquets de données pour chacune desdites première et seconde sources (505) ; - comparaison desdits taux d'erreur de transmission de paquets de données desdites première et seconde sources (510) ; et, - détermination du type d'erreur de transmission de paquets de données transmis de ladite première source selon le résultat de ladite comparaison desdits taux d'erreur de transmission de paquets de données desdites première et seconde sources (530). 2. Procédé selon la revendication 1 caractérisé en ce que ladite étape de détermination du type d'erreur de transmission de paquets de données transmis de ladite première source selon le résultat de ladite comparaison desdits taux d'erreur de transmission de paquets de données desdites première et seconde sources comprend les étapes suivantes : - modification de paramètres d'un algorithme de différenciation de pertes de paquets de données selon le résultat de ladite comparaison desdits taux d'erreur de transmission de paquets de données desdites première et seconde sources (515, 520) ; et, - détermination du type d'erreur de transmission de paquets de données transmis de ladite première source selon ledit algorithme de différenciation de pertes de paquets de données (530). 3. Procédé selon la revendication 1 ou la revendication 2 caractérisé en ce que lesdits taux d'erreur de transmission de paquets de données sont des taux de perte global de paquets de données. 2906950 25 4. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'une erreur de transmission est du type congestion ou du type interférence. 5. Procédé pour optimiser la réception d'une pluralité de paquets de 5 données, les paquets de données de ladite pluralité de paquets de données étant transmis par au moins deux sources différentes, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes : - détermination du type d'erreur de transmission de paquets de données reçus d'au moins l'une desdites au moins deux sources différentes, 10 appelée première source, selon le procédé de l'une quelconque des revendications 1 à 4 ; et, -adaptation d'au moins un paramètre de transmission ou de codage des données de ladite première source (560). 8. Procédé selon la revendication 5 caractérisé en ce qu'il 15 comprend en outre une étape de transmission à ladite première source dudit au moins un paramètre adapté (565). 9. Procédé selon l'une quelconque des revendications 5 et 6, caractérisé en ce qu'il comprend en outre les étapes suivantes, - détermination du type de flux de données auquel appartiennent 20 les paquets de données reçus de ladite première source (540) ; et, - si ledit flux de données est un flux de données principal, modification de la bande passante allouée à ladite première source et à au moins une autre source, distincte de ladite première source (550, 555). 8. Procédé selon la revendication 7 caractérisé en ce que ladite 25 étape de modification de la bande passante comprend les étapes suivantes, - comparaison du taux de perte de paquets de ladite première source, lié à des erreurs de transmission de type interférence, avec un seuil prédéterminé (545) ; et, - si ledit taux de perte de paquets de ladite première source, lié à 30 des erreurs de transmission de type interférence, est supérieur audit seuil prédéterminé, augmentation de la bande passante allouée à ladite première source (550). 2906950 26 9. Procédé selon la revendication 8, caractérisé en ce que ladite étape d'augmentation de la bande passante allouée à ladite première source comprend une étape de diminution de la bande passante allouée à ladite au moins une autre source, distincte de ladite première source (550). 5 10. Procédé selon l'une quelconque des revendications 7 à 9, caractérisé en ce qu'il comprend en outre l'étape d'annulation de la modification de la bande passante allouée à ladite première source et à au moins une autre source (555) si ledit taux de perte de paquets de ladite première source, lié à des erreurs de transmission de type interférence, est inférieur audit seuil 10 prédéterminé. 11. Procédé selon l'une quelconque des revendications 5 à 10 comprenant en outre une étape de calcul du taux de perte de paquets de données transmis de ladite première source, lié à des erreurs de congestion du réseau à travers lequel les paquets de données sont transmis, et du taux de 15 perte de paquets de données transmis de ladite première source, lié à des erreurs d'interférence dans le réseau à travers lequel les paquets de données sont transmis (535). 12. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les paquets de données sont transmis à travers un 20 réseau sans-fil. 13. Programme d'ordinateur comprenant des instructions adaptées à la mise en oeuvre de chacune des étapes du procédé selon l'une quelconque des revendications précédentes. 14. Dispositif pour déterminer le type d'erreur de transmission de 25 paquets de données reçus d'une première source lors de la réception de paquets de données transmis par ladite première source et par au moins une seconde source, différente de ladite première source, ce dispositif étant caractérisé en ce qu'il comprend les moyens suivants : - des moyens pour déterminer un taux d'erreur de transmission de 30 paquets de données pour chacune desdites première et seconde sources ; - des moyens pour comparer lesdits taux d'erreur de transmission de paquets de données desdites première et seconde sources ; et, 2906950 27 - des moyens pour déterminer le type d'erreur de transmission de paquets de données transmis de ladite première source selon le résultat de la comparaison desdits taux d'erreur de transmission de paquets de données desdites première et seconde sources. 5 15. Dispositif selon la revendication 14 caractérisé en ce que lesdits moyens pour déterminer le type d'erreur de transmission de paquets de données transmis de ladite première source selon le résultat de la comparaison desdits taux d'erreur de transmission de paquets de données desdites première et seconde sources comprennent les moyens suivants : 10 - des moyens pour modifier des paramètres d'un algorithme de différenciation de pertes de paquets de données selon le résultat de la comparaison desdits taux d'erreur de transmission de paquets de données desdites première et seconde sources ; et, - des moyens pour déterminer le type d'erreur de transmission de 15 paquets de données transmis de ladite première source selon ledit algorithme de différenciation de pertes de paquets de données. 16. Dispositif pour optimiser la réception d'une pluralité de paquets de données, les paquets de données de ladite pluralité de paquets de données étant transmis par au moins deux sources différentes, ce dispositif étant 20 caractérisé en ce qu'il comprend les moyens suivants : - des moyens pour déterminer le type d'erreur de transmission de paquets de données reçus d'au moins l'une desdites au moins deux sources différentes, appelée première source, selon le dispositif de l'une quelconque des revendications 14 et 15 ; et, 25 - des moyens pour adapter au moins un paramètre de transmission ou de codage des données de ladite première source. 17. Dispositif selon la revendication 16 caractérisé en ce qu'il comprend en outre des moyens pour transmettre à ladite première source ledit au moins un paramètre adapté. 30 18. Dispositif selon l'une quelconques des revendications 16 et 17, caractérisé en ce qu'il comprend en outre les moyens suivants, 2906950 28 - des moyens pour déterminer le type de flux de données auquel appartiennent les paquets de données reçus de ladite première source ; et, - des moyens pour modifier la bande passante allouée à ladite première source et à au moins une autre source, distincte de ladite première 5 source, si ledit flux de données est un flux de données principal. 19. Dispositif selon la revendication 18 caractérisé en ce que lesdits moyens pour modifier la bande passante comprennent les moyens suivants, - des moyens pour comparer le taux de perte de paquets de ladite première source, lié à des erreurs de transmission de type interférence, avec un 10 seuil prédéterminé ; et, - des moyens pour augmenter la bande passante allouée à ladite première source si ledit taux de perte de paquets de ladite première source, lié à des erreurs de transmission de type interférence, est supérieur audit seuil prédéterminé. 15 20. Dispositif selon la revendication 19, caractérisé en ce que lesdits moyens pour augmenter la bande passante allouée à ladite première source comprennent des moyens pour diminuer la bande passante allouée à ladite au moins une autre source, distincte de ladite première source. 21. Dispositif selon l'une quelconque des revendications 18 à 20, 20 caractérisé en ce qu'il comprend en outre des moyens pour annuler la modification de la bande passante allouée à ladite première source et à au moins une autre source si ledit taux de perte de paquets de ladite première source, lié à des erreurs de transmission de type interférence, est inférieur audit seuil prédéterminé. 25 22. Dispositif selon l'une quelconque des revendications 16 à 21 comprenant en outre des moyens pour calculer le taux de perte de paquets de données transmis de ladite première source, lié à des erreurs de congestion du réseau à travers lequel les paquets de données sont transmis, et le taux de perte de paquets de données transmis de ladite première source, lié à des 30 erreurs d'interférence dans le réseau à travers lequel les paquets de données sont transmis.