Brevet FR2838584A1 — publié le 20031017

DESCRIPTION Domaine de l'invention L'invention concerne un système de transmission comportant un émetteur comportant des moyens de transmission de paquets, un réseau de transmission susceptible d'introduire des erreurs entraînant des pertes de paquets, et au travers duquel les paquets ont un temps de transit variable, et un récepteur comportant des moyens de réception de paquets, des moyens de détection de paquets perdus, des moyens de demande de retransmission de paquets perdus. L'invention concerne aussi un émetteur et un récepteur destinés à être utilisés dans un tel système de transmission. Elle concerne aussi un procédé de réception de paquets destiné à être utilisé dans un tel récepteur, et un programme comportant des instructions pour la mise en #uvre d'un tel procédé de réception lorsqu'il est exécuté par un processeur. L'invention s'applique notamment à la transmission de données audio ou vidéo via le réseau Internet vers un récepteur mobile. Arrière plan technologique de l'invention Le document intitulé RTP retransmission framework écrit par David Leon et Viktor Varsa et publié en mars 2002 sur le site Internet de I1ETF à l'adresse search.ietf.org/internet- drafts/draft-leon-rtp-retransmission-02.txt traite de la retransmission de paquets. En particulier au paragraphe 6, il est expliqué que la retransmission des paquets accroît le risque de congestion du réseau. Lorsque la perte de paquets est due à la congestion, réagir en demandant des retransmissions augmente encore la congestion. Dans ce contexte, il est proposé de ne plus utiliser de retransmission lorsque le nombre de paquets perdus devient trop important. L'augmentation du nombre de paquets perdus est utilisée, dans ce document, comme indicateur de congestion. Résumé de l'invention L'invention a notamment pour but de proposer une autre façon de surveiller la congestion du réseau et de réagir en cas de congestion. Pour cela, un système de transmission selon l'invention comporte un émetteur comportant des moyens de transmission de paquets, un réseau de transmission susceptible d'introduire des erreurs entraînant des pertes de paquets, et au travers duquel les paquets ont un temps de transit variable, et un récepteur comportant des moyens de réception de paquets, des moyens de détection de paquets perdus, des moyens de demande de retransmission de paquets perdus, des moyens d'estimation dudit temps de transit, et des moyens de contrôle pour désactiver lesdits moyens de demande de retransmission, pour au moins certains paquets perdus, lorsque ledit temps de transit augmente de telle sorte qu'il ne satisfait plus à au moins un critère prédéfini. Un récepteur selon l'invention comporte des moyens de réception de paquets pour recevoir des paquets transmis via un réseau de transmission susceptible d'introduire des erreurs entraînant des pertes de paquets et au travers duquel les paquets ont un temps de transit variable, des moyens de détection de paquets perdus, des moyens de demande de retransmission de paquets perdus, des moyens d'estimation dudit temps de transit, et des moyens de contrôle pour désactiver lesdits moyens de demande de retransmission, pour au moins certains paquets perdus, lorsque ledit temps de transit augmente de telle sorte qu'il ne satisfait plus à au moins un critère prédéfini. Un procédé selon l'invention de réception de paquets transmis via un réseau de transmission susceptible d'introduire des erreurs entraînant des pertes de paquets et au travers duquel les paquets ont un temps de transit variable, comporte au moins une étape de détection de paquets perdus, une étape d'estimation dudit temps de transit, et une étape pour décider de faire ou non une demande de retransmission pour un paquet perdu, en fonction dudit temps de transit, aucune demande de retransmission n'étant faite, pour au moins certains paquets perdus, lorsque ledit temps de transit augmente de telle sorte qu'il ne satisfait plus à au moins un critère prédéfini. L'invention utilise donc le temps de transit au travers du réseau comme indicateur de congestion. La détection de la congestion se fait au niveau du récepteur de sorte qu'en cas de congestion le récepteur puisse décider de ne pas faire de demande de retransmission, au moins pour certains paquets perdus. Avantageusement, les paquets ayant un niveau d'importance parmi plusieurs niveaux d'importance possibles, lesdits moyens de contrôle sont prévus pour désactiver lesdits moyens de demande de retransmission en fonction des niveaux d'importance des paquets perdus. La réaction du récepteur est par exemple progressive. Lorsqu'un début de congestion est détecté, le récepteur décide de ne plus faire de demande de retransmission pour les paquets les moins importants. Cette décision est progressivement étendue aux autres paquets, par ordre d'importance croissante, lorsque la congestion augmente. Avantageusement, un paquet étant transmis à un instant de transmission et reçu à un instant de réception, l'estimation dudit temps de transit se fait en calculant un intervalle de réception séparant les instants de réception d'un paquet subséquent et d'un paquet précédent, puis en calculant la différence entre ledit intervalle de réception et un intervalle de transmission séparant les instants de transmission dudit paquet subséquent et dudit paquet précédent, ledit intervalle de transmission étant contenu dans ledit paquet subséquent. A cet effet, un émetteur selon l'invention comporte des moyens de calcul d'un intervalle de transmission séparant les instants de transmission d'un paquet subséquent et d'un paquet précédent, et des moyens de transmission dudit intervalle de transmission dans ledit paquet subséquent, en vue de son utilisation par ledit récepteur pour calculer ledit temps de transit. Ce mode de calcul présente l'avantage de fournir une estimation précise. Brève description des dessins - la figure 1 est une représentation schématique d'un exemple de système de transmission selon l'invention - la figure 2 est un organigramme d'un premier exemple de procédé de réception selon l'invention, - la figure 3 est un organigramme d'un deuxième exemple de procédé de réception selon l'invention. Description de modes de réalisation préférentiels L'invention concerne un système de transmission par paquets entre un émetteur et un récepteur. L'émetteur transmet des paquets de données au récepteur. Le récepteur détecte des paquets de données perdus et transmet à l'émetteur des requêtes en retransmission relatives à au moins certains paquets de données perdus. Sur la figure 1 on a représenté un exemple de système de transmission selon l'invention comportant un serveur 10 qui joue le rôle d'émetteur au sens de l'invention, un réseau de transmission 20, et un terminal 30 qui joue le rôle de récepteur au sens de l'invention. Le réseau de transmission 20 est par exemple constitué par un réseau cellulaire, par exemple un réseau GPRS ou un réseau UMTS. Le serveur 10 est relié au réseau de transmission 20 par une liaison 40 faisant appel à un réseau de type paquet comme le réseau Internet. Le terminal 30 est relié au réseau cellulaire par une liaison radio 50. Dans ce type de réseau de transmission, les pertes de paquets résultent soit d'une congestion du réseau de transmission par paquets, soit d'erreurs de transmission introduites par la liaison radio. En effet : - en cas de congestion du réseau de transmission par paquets, les mémoires tampon des équipements du réseau de transmission sont pleines, et les nouveaux paquets qui arrivent sont détruits ; - les liaisons radio sont par nature non fiables. Lorsqu'elles introduisent trop d'erreurs dans les paquets transmis, ces erreurs ne sont pas corrigeables et les paquets sont considérés comme perdus. Le serveur 10 comporte une source de données VSS représentée par un bloc 100, un dispositif de transmission/ réception TX1/RX1 représenté par un bloc 103, une mémoire de retransmission MEM représentée par un bloc 104, et un ensemble à microprocesseur El représenté par un bloc 105 et comportant une mémoire de travail WM1, une mémoire de programmes PM1 et un processeur Cl. Les données fournies par la source de données VSS sont mises en paquets au niveau de l'ensemble à microprocesseur El. Les paquets ainsi formés sont transmis au dispositif de transmission/ réception TX1/RX1 d'où ils sont transmis sur le réseau de transmission 20 via la liaison 40. Dans certains cas, les paquets perdus doivent être retransmis lorsqu'ils sont perdus. Pour permettre une telle retransmission, une partie au moins du contenu des paquets transmis est stockée dans la mémoire de retransmission MEM. Le terminal 30 comporte un dispositif de transmission/ réception TX3/RX3 représenté par un bloc 301, une unité destination de données VSD représentée par un bloc 302, et un ensemble à microprocesseur E3, représenté par un bloc 303, qui comporte une mémoire de travail WM3, une mémoire de programmes PM3 et un processeur C3. Par exemple, la source de données VSS comporte une source de séquences vidéo et un codeur au format MPEG-4. Les données contenues dans les paquets transmis sont des données codées au format MPEG-4. Et l'unité destination de données VSD comporte un décodeur de type MPEG-4 et un lecteur de séquences vidéo. Les mémoires de programme PM1 et PM3 contiennent respectivement un programme ou un ensemble de programmes Gl et G3 contenant des instructions de code de programme pour la mise en #uvre d'un procédé de transmission selon l'invention tel qu'il va être décrit en regard de la figure 2. La transmission entre le serveur 10 et le terminal 30 se fait avantageusement en utilisant un protocole de transport du type RTP. Le protocole de transport RTP est décrit dans le document RFC1889 publié par ITETF. En particulier : - Les données utiles sont transmises du serveur 10 vers le terminal 30 dans des paquets de données du type décrit au paragraphe 5 de la RFC 1889. - Ces paquets de données contiennent notamment un entête qui comporte un champ appelé Sequence Number . Le numéro de séquence SN contenu dans ce champ est incrémenté d'une unité à chaque fois qu'un paquet de données est transmis pour une session RTP donnée. Il est destiné à être utilisé par le récepteur pour détecter la perte d'un ou plusieurs paquets de données dans une séquence de paquets de données. Par exemple, lorsque le récepteur reçoit un paquet dont le numéro de séquence est 36, suivi d'un autre paquet dont le numéro de séquence est 40, il en déduit que les paquets qui contenaient les numéros de séquence 37, 38 et 39 ont été perdus. Le champ SN d'un paquet doit être stocké dans la mémoire MEM pour permettre la retransmission de ce paquet. - Ces paquets de données contiennent aussi un champ Payload qui contient les données utiles c'est-à-dire, dans l'exemple décrit ici, des données fournies par la source VSS. Le champ Payload d'un paquet doit être stocké dans la mémoire MEM pour permettre la retransmission de ce paquet. - Les requêtes en retransmission sont transmises du terminal 30 vers le serveur 10 dans des paquets de contrôle du type décrit au paragraphe 6 de la RFC1889. Les paquets originaux et les paquets retransmis peuvent soit partager une même session RTP, soit être transmis en utilisant deux sessions RTP différentes. Dans la suite de la description, on considère que deux sessions différentes sont utilisées pour transmettre les paquets originaux et les paquets retransmis. On note P(i) un paquet RTP dont le numéro de séquence SN est égal à i. Avantageusement, pour permettre d'estimer le temps de transit au niveau du récepteur, un intervalle de transmission A(i) est transmis dans les paquets P (i). Cetintervalle de transmission indique la différence entre l'instant de transmission t (i) paquet P (i), l'instant de transmission t (i-j) paquet P (i-j) précédemment. Par exemple j=l et A(i)=t(i)- t(i-l). L'intervalle de temps A(i) est par exemple transmis dans un champ de 32 bits dans l'extension de l'entête des paquets RTP, appelée "RTP header extension" et définie au paragraphe 5. 3.1 de la RFC 1889. Conformément à l'invention, le temps de transit est estimé régulièrement à partir des paquets reçus. Et lorsqu'une perte de paquet est détectée, on utilise la valeur courante du temps de transit pour décider de faire ou non une demande de retransmission pour le paquet perdu. Sur la figure 2 on a représenté un premier exemple de procédé de réception de paquets selon l'invention. D'après la figure 2, un tel procédé comporte : - une étape SI de réception de paquets P (i) contenantun intervalle de transmission A(i) tel que défini plus haut. - une étape S2 de calcul d'une estimation TT(i) du temps de transit pour le paquet P (i) cet exemple on considère que j=l). TT (i) = R(i)-R(i-1)-#(i) où R(i) et R(i-l) sont les instants de réception des paquets P(i) et P(i-l). - une étape S3 de détection de paquets perdus P (k) observation des numéros de séquence contenus dans les paquets reçus. - une étape S4 de comparaison de la valeur courante de l'estimation TT(i) du temps de transit au travers du réseau avec un seuil prédéfini X. Si TT(i) Si TT(i)# X, le récepteur considère qu'une congestion est en train d'apparaître sur le réseau de transmission ; aucune demande de retransmission n'est donc faite pour le paquet P(k). Dans un autre mode de réalisation de l'invention, la décision de faire ou non une demande de retransmission dépend non seulement du temps de transit au travers du réseau de transmission, mais aussi du paquet perdu P (k), parexemple d'un niveau d'importance attribué au paquet P (k) plusieurs niveaux d'importance possibles. Un niveau d'importance est par exemple attribué à chaque paquet transmis au niveau de l'émetteur. Et les paquets transmis sont construits de telle sorte qu'ils comportent un ou plusieurs champs (par exemple dans l'extension de l'entête RTP déjà mentionnée plus haut) contenant le niveau d'importance associé à un ou plusieurs autres paquets. Par exemple chaque paquet transmis P (i) N niveaux d'importance IL(i-l),..., IL (i-N) relatifs aux N paquets précédents dans l'ordre de transmission P(i-l), ..., P (i-N). Lorsque les données à transmettre sont des données codées au format MPEG-4, le niveau d'importance d'un paquet est par exemple fonction du mode de codage utilisé pour coder les données transmises dans ce paquet. La norme MPEG-4 prévoit trois modes de codage : - le mode de codage I (de l'anglais Intra Coding ) dans lequel une image n'est codée qu'à partir des informations qu'elle contient elle-même ; - le mode de codage P (de l'anglais Prédictive Coding ) dans lequel une image est codée en utilisant une image de référence qui la précède dans le temps ; - le mode de codage B (de l'anglais Bidirectional Predictive Coding ) dans lequel une image est codée à partir d'une image de référence qui la précède dans le temps et d'une image de référence qui la suit dans le temps. Les images codées en utilisant le mode de codage I sont particulièrement importantes parce que leur perte empêche de reconstituer les images pour le codage desquelles elle a servi d'image de référence. De façon avantageuse, le serveur 10 attribue donc une importance plus grande aux images codées selon le mode de codage I qu'aux images codées selon le mode de codage P. De même, il attribue une importance plus grande aux images codées selon le mode de codage P qu'aux images codées selon le mode de codage B. Sur la figure 3, on a représenté un organigramme d'un deuxième exemple de procédé de réception selon l'invention, dans lequel la décision de faire ou non une demande de retransmission tient compte de l'importance des paquets. D'après la figure 3, un tel procédé de réception comporte : - une étape S10 de réception de paquets P (i) contenantun intervalle de transmission A(i) tel que défini plus haut, et les N niveaux d'importance IL(i-1), ..., IL (i-N) relatifs aux N paquets précédents dans l'ordre de transmission P(i-1), ..., P (i-N). - une étape S20 de calcul d'une estimation TT(i) du temps de transit pour le paquet P(i). TT(i) = R(i) - R(i-l) - A(i) où R(i) et R(i-l) sont les instants de réception des paquets P(i) et P(i-l). - une étape S30 de détection de paquets perdus P (k) observation des numéros de séquence contenus dans les paquets reçus. - une étape S35 de récupération du niveau d'importance IL (k) paquet perdu P (k), dansle premier paquet P (k+m) reçu après le paquet perdu P(k). - une étape S40 de décision de transmission d'une requête en retransmission RR relative au paquet perdu P(k) en fonction du niveau d'importance IL (k) récupéré, et de la valeur courante du temps de transit TT(i). Par exemple : si TT(I)# X2, aucune demande de retransmission n'est faite pour le paquet P(k). si X1# TT(i) Y2, une demande de retransmission est envoyée pour le paquet P (k) à l'étape S50. si XO Yl (où Yl représente un niveau d'importance moindre que Y2), une demande de retransmission est envoyée pour le paquet P (k) l'étape S50. Dans cet exemple, la réaction du récepteur est progressive. Lorsqu'un début de congestion est détecté (temps de transit supérieur à un premier seuil XO, mais inférieur à un deuxième seuil XI), le récepteur décide de ne plus faire de demande de retransmission pour les paquets dont le niveau d'importance est inférieur à Yi. Cette décision est étendue aux paquets ayant un niveau d'importance inférieur à Y2 lorsque le temps de transit devient supérieur ou égal au deuxième seuil XI. Elle est finalement généralisée à tous les paquets lorsque le temps de transit devient supérieur ou égal à un troisième seuil X2. Ce schéma de progressivité est décrit ici à titre d'exemple. D'autres schémas de progressivité peuvent être utilisés. L'invention n'est pas limitée aux modes de réalisation qui viennent d'être décrits à titre d'exemple. Des modifications ou améliorations peuvent y être apportées tout en restant dans le cadre de l'invention. En particulier d'autres critères peuvent être appliqués, en plus de ceux qui ont été décrits ici, pour limiter le nombre de requêtes en retransmission transmises sur le réseau. D'autres modes d'estimation du temps de transit au travers du réseau peuvent aussi être utilisés. Par exemple, il est possible que l'intervalle de transmission A(i) ne soit transmis que pour les paquets importants ou très importants. Il est aussi possible d'utiliser une unique session RTP pour transporter les paquets originaux et les paquets retransmis. Dans ce cas, si l'on utilise le mode de calcul du temps de transit qui a été décrit plus haut, les paquets retransmis ne doivent pas être utilisés pour calculer le temps de transit (parce que dans ce cas, le numéro de séquence du paquet retransmis est égal au numéro de séquence du paquet original). Il est alors possible de ne pas transmettre l'intervalle de transmission dans les paquets retransmis. L'invention n'est pas limitée à la transmission de données encodées au format MPEG-4. Elle est indépendante de la nature des données transmises. Dans les revendications le verbe comprendre est utilisé pour signifier que l'utilisation d'autres éléments, moyens ou étapes n'est pas exclue. REVENDICATIONS 1. Système de transmission comportant : - un émetteur comportant des moyens de transmission de paquets, - un réseau de transmission susceptible d'introduire des erreurs entraînant des pertes de paquets, et au travers duquel les paquets ont un temps de transit variable, - et un récepteur comportant des moyens de réception de paquets, des moyens de détection de paquets perdus, des moyens de demande de retransmission de paquets perdus, des moyens d'estimation dudit temps de transit, et des moyens de contrôle pour désactiver lesdits moyens de demande de retransmission, pour au moins certains paquets perdus, lorsque ledit temps de transit augmente de telle sorte qu'il ne satisfait plus à au moins un critère prédéfini. 2. Système selon la revendication 1, caractérisé en ce que lesdits paquets ayant un niveau d'importance parmi plusieurs niveaux d'importance possibles, lesdits moyens de contrôle sont prévus pour désactiver lesdits moyens de demande de retransmission en fonction des niveaux d'importance des paquets perdus. 3. Système de transmission selon la revendication 1 caractérisé en ce que, un paquet étant transmis à un instant de transmission et reçu à un instant de réception, ledit émetteur comporte des moyens de calcul d'un intervalle de transmission séparant les instants de transmission d'un paquet subséquent et d'un paquet précédent, ledit intervalle de transmission étant transmis dans ledit paquet subséquent, et lesdits moyens d'estimation dudit temps de transit comportent des moyens de calcul d'un intervalle de réception séparant les instants de réception dudit paquet subséquent et dudit paquet précédent, et des moyens de calcul de la différence entre lesdits intervalles de réception et de transmission. 4. Récepteur comportant des moyens de réception de paquets pour recevoir des paquets transmis via un réseau de transmission susceptible d'introduire des erreurs entraînant des pertes de paquets et au travers duquel les paquets ont un temps de transit variable, des moyens de détection de paquets perdus, des moyens de demande de retransmission de paquets perdus, des moyens d'estimation dudit temps de transit, et des moyens de contrôle pour désactiver lesdits moyens de demande de retransmission, pour au moins certains paquets perdus, lorsque ledit temps de transit augmente de telle sorte qu'il ne satisfait plus à au moins un critère prédéfini. 5. Récepteur selon la revendication 4 caractérisé en ce que, un paquet étant transmis à un instant de transmission et reçu à un instant de réception, les moyens d'estimation dudit temps de transit comportent des moyens de calcul d'un intervalle de réception séparant les instants de réception d'un paquet subséquent et d'un paquet précédent, et des moyens de calcul de la différence entre ledit intervalle de réception et un intervalle de transmission séparant les instants de transmission dudit paquet subséquent et dudit paquet précédent, ledit intervalle de transmission étant contenu dans ledit paquet subséquent. 6. Récepteur selon la revendication 4, caractérisé en ce que lesdits paquets ayant un niveau d'importance parmi plusieurs niveaux d'importance possibles, lesdits moyens de contrôle sont prévus pour désactiver lesdits moyens de demande de retransmission en fonction du niveau d'importance des paquets perdus. 7. Procédé de réception de paquets transmis via un réseau de transmission susceptible d'introduire des erreurs entraînant des pertes de paquets et au travers duquel les paquets ont un temps de transit variable, ledit procédé comportant au moins : - une étape de détection de paquets perdus, - une étape d'estimation dudit temps de transit, - une étape pour décider de faire ou non une demande de retransmission pour un paquet perdu, en fonction dudit temps de transit, aucune demande de retransmission n'étant faite, pour au moins certains paquets perdus, lorsque ledit temps de transit augmente de telle sorte qu'il ne satisfait plus à au moins un critère prédéfini. 8. Procédé de réception de paquets selon la revendication 7 caractérisé en ce que, un paquet étant transmis à un instant de transmission et reçu à un instant de réception, l'étape d'estimation dudit temps de transit comporte une étape de calcul d'un intervalle de réception séparant les instants de réception d'un paquet subséquent et d'un paquet précédent, et une étape de calcul de la différence entre ledit intervalle de réception et un intervalle de transmission séparant les instants de transmission dudit paquet subséquent et dudit paquet précédent, ledit intervalle de transmission étant contenu dans ledit paquet subséquent. 9. Programme comportant des instructions pour la mise en #uvre d'un procédé de réception de paquets selon l'une des revendications 7 ou 8, lorsque ledit programme est exécuté par un processeur. 10. Emetteur comportant des moyens de transmission vers un récepteur de paquets via un réseau de transmission au travers duquel les paquets ont un temps de transit variable, lesdits paquets étant transmis à un instant de transmission et reçu à un instant de réception, ledit émetteur comportant des moyens de calcul d'un intervalle de transmission séparant les instants de transmission d'un paquet subséquent et d'un paquet précédent, et des moyens de transmission dudit intervalle de transmission dans ledit paquet subséquent, en vue de son utilisation par ledit récepteur pour calculer ledit temps de transit.