Brevet FR2877179A1 — publié le 20060428

PROCEDE DE TRANSMISSION D'UN FLUX VIDEO DANS UN RESEAU DE TELECOMMUNICATIONS MOBILES A DEBIT RESTREINT La présente invention se rapporte au domaine des 5 télécommunications mobiles. La présente invention concerne plus particulièrement un procédé de transmission d'un flux de données numériques à débit élevé sur un réseau de télécommunications mobiles dans lequel les connexions ont des débits restreints. L'invention s'inscrit dans le cadre de la télésurveillance de lieux mobiles (camions blindés, voitures de police) avec liaison terrestre fixe et lors d'événements ponctuels ne supportant pas d'installation lourde (concerts, salons, manifestations). La figure 1 illustre un exemple d'architecture de l'art antérieur dans lequel la présente invention s'applique. Un dispositif de capture vidéo du type caméra USB est associé à un ordinateur portable. La connexion entre la caméra et l'ordinateur se fait par un câble USB. La caméra est alimentée via le câble USB; seul l'ordinateur nécessite une alimentation (durée de fonctionnement sur batterie). Le PC embarque un logiciel de compression vidéo en temps réel qui fournit un flux vidéo numérique. La vidéo encodée est relayée vers un serveur de Streaming (diffusion) qui se charge de distribuer le flux vidéo aux clients. Plusieurs utilisateurs - possesseurs d'un iPDA (nom commercial) ou d'un terminal mobile - peuvent ainsi accéder en direct au contenu vidéo émis depuis le lieu mobile. Cependant les téléphones mobiles peuvent être équipés de modem du type GPRS (General Packet Radio Service) ou EDGE (Enhanced Data (Rates) for Global Evolution) présentant certaines limitations techniques. La principale tient dans la bande passante disponible dans le sens montant (uplink), de l'ordre de 20 kbps, très limitative pour le trafic depuis l'encodeur vers le serveur et par conséquent dans la qualité de la vidéo transportée. En effet, le canal GPRS ou EDGE et les modems GPRS ou EDGE équipant les équipements mobiles permettent de diffuser vers un terminal (downlink) des flux de données (de la vidéo par exemple) à une bande passante de 40 kbps. L'art antérieur connaît déjà, par la demande de brevet européen EP 1 126 717 (Lucent), un système de transmission vidéo en temps réel sur un réseau de télécommunications. Un système GPRS, EDGE ou UMTS (Universal Mobile Telecommunications System) fournit un service de vidéo en temps réel en sélectionnant un parmi un petit nombre, par exemple quatre, de taux prédéterminés d'encodage de canal applicable pour la vidéo. Le taux est appliqué aux données vidéo au niveau de la couche application et les données sont transmises par l'interface radio à un système mobile auquel il est connecté. Pour chaque paquet, un en-tête indique le taux d'encodage sélectionné. Le court en-tête permet d'accroître la capacité de charge vidéo. On connaît également, par le brevet américain US 6 578 082 (NORTEL NETWORKS), un système et un procédé de commande de flux distribué pour des réseaux GPRS. Le procédé permet de commander et de réguler le flux de données entre des sources multiples et une seule destination à l'intérieur d'un réseau GPRS. Le système et la méthode assurent la conformité du trafic émis depuis toutes les sources aux conditions prérequises de débit moyen et de pic de débit qui ont été établies par la BSS/PCU (Packet Control Unit). Un mécanisme de commande de flux par panier percé (leacky bucket) est respectivement utilisé à chacune des multiples sources pour commander le flux de données entre respectivement chacune des sources et l'unique destination. Une taille maximale de mémoire tampon du panier percé et un débit de vidage du mémoire tampon sont définis pour chacun des mécanismes de commande de flux par panier percé. Un multiplicateur est estimé et déterminé pour respectivement chacune des sources basé sur les comportements de réception des données récentes des sources multiples. Les solutions proposées dans l'art antérieur ne permettent pas de transmettre un flux vidéo dont le débit est supérieur à celui du canal de transport des connexions réalisées dans le réseau de télécommunications mobiles. Elles proposent d'adapter le débit de ce flux vidéo aux limites du réseau. La présente invention entend remédier aux inconvénients de l'art antérieur en proposant un procédé de transmission d'un flux de données vidéo de débit élevé, comparé aux débits disponibles sur le réseau de télécommunications mobiles. Ce procédé met en uvre des mécanismes réalisant, entre autres, un multiplexage inverse du flux vidéo haut-débit pour diviser celui-ci en une pluralité de flux de moindre débit. Pour pallier l'asymétrie de l'architecture illustrée par la figure 1 et évoquée précédemment, la présente invention propose d'éclater le flux vidéo de 40 kbps en deux flux différents de 20 kbps chacun et de diffuser ces deux flux sur deux connexions GPRS ou EDGE différentes vers le serveur. Les deux flux sont ensuite recombinés dans le réseau et l'on récupère ensuite un flux descendant de 40 kbps, de qualité équivalente à ce que l'on peut recevoir en GPRS. Le procédé selon la présente invention répond particulièrement bien au développement des services de téléphonie mobile avec, notamment, l'apparition de la vidéo. À cet effet, l'invention concerne dans son acception la plus générale un procédé de transmission d'un flux de données numériques entre un programme applicatif d'un équipement émetteur et un programme applicatif d'un équipement récepteur d'un réseau de télécommunications mobiles, le débit dudit flux de données étant supérieur à la capacité de transmission du canal de transport d'une connexion dans ledit réseau, comprenant: Une étape d'indexation des paquets dudit flux de données numériques; Une étape de répartition et de transmission desdits paquets indexés sur au moins deux connexions entre 20 lesdits deux équipements. Dans un mode de réalisation, ladite transmission est réalisée en mode non connecté UDP (User Datagram Protocol). Particulièrement, ledit procédé comprend, en outre et préalablement à l'étape de transmission sur lesdites au moins deux connexions, une étape d'initialisation d'une connexion logique entre lesdits deux programmes applicatifs, ladite étape d'initialisation étant réalisée en mode connecté TCP (Transmission Control Protocol). Selon un mode de mise en oeuvre, lesdits paquets sont répartis alternativement sur chacune desdites connexions, lors de l'étape de répartition. Selon une variante, ladite étape de répartition met en uvre des mémoires tampons associées au canal de transport de chacune desdites connexions et ladite répartition des paquets est réalisée sur la mémoire tampon la plus disponible. Selon une variante particulière, lesdites mémoires tampon sont circulaires. Selon un mode de réalisation, ledit procédé comprend, 10 au niveau de l'équipement de réception, : Une étape de réception des paquets transmis; Une étape de constitution d'une liste chaînée à partir desdits paquets reçus. Éventuellement, ledit procédé comprend, en outre, une étape de cryptage desdites données. La présente invention se rapporte également à un système de transmission d'un flux de données numériques pour la mise en oeuvre du procédé, comprenant un équipement d'émission et un équipement de transmission, connectés à un réseau de télécommunications mobiles, la capacité de transmission du canal de transport de chacune des connexions dudit réseau étant inférieure au 25 débit dudit flux de données numériques ledit équipement d'émission comprenant des moyens d'indexation des paquets dudit flux de données numériques, des moyens de transmission desdits paquets sur au moins deux connexions entre les deux équipements; ledit équipement de réception comprenant des moyens de réception desdits paquets transmis, des moyens de reconstruction dudit flux de données numériques à partir des paquets reçus. Selon un mode de réalisation, lesdits moyens de transmission comprennent au moins deux mémoires tampons associées aux canaux de transport desdites connexions. Selon un mode de mise en uvre particulier, lesdits moyens de reconstruction comprennent une liste chaînée construite à partir des paquets reçus. Dans un mode de réalisation, ledit réseau de télécommunications est d'une technologie choisie parmi le 10 GPRS, l'EDGE et l'UMTS. La présente invention se rapporte également, à un système de vidéosurveillance comprenant des moyens de capture vidéo associés à des moyens d'encodage d'un encodeur, un système de transmission d'un flux de données numériques pour la mise en oeuvre du procédé entre ledit encodeur et un serveur de diffusion (streaming) et des terminaux mobiles connectés audit serveur de diffusion par ledit réseau de télécommunications mobiles. On comprendra mieux l'invention à l'aide de la description, faite ciaprès à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées. la figure 1 représente une architecture de réseau de l'art antérieur dans laquelle s'inscrit l'invention; la figure 2 illustre l'architecture d'un mode de réalisation de la présente invention; - la figure 3 représente une architecture système 30 mise en place entre un client émetteur et un serveur récepteur ; - la figure 4 représente les échanges lors de l'étape d'initialisation d'une communication; la figure 5 représente les échanges lors de la transmission des données; la figure 6 illustre l'indexation des paquets de données; la figure 7 représente la structure d'une liste chaînée utilisée à la réception des paquets dans la présente invention; la figure 8 représente l'insertion d'un élément (paquet reçu) dans la liste chaînée; et la figure 9 représente les différentes connexions mises en uvre dans la présente invention selon le modèle de couches OSI. La présente invention met en uvre un procédé de transmission d'un flux de données numériques de débit élevé, comparé aux débits disponibles pour une connexion sur un réseau de télécommunications. L'invention s'applique particulièrement bien à la transmission de la vidéo haut-débit sur des réseaux de télécommunications du type GPRS, EDGE ou encore UMTS. Nous précisons ici quelques notions du domaine des réseaux mobiles pour offrir une bonne compréhension de la description faite ci-après. Le GPRS et a fortiori l'EDGE, version améliorée du GPRS, reposent sur l'infrastructure GSM et notamment utilisent le même canal radio (canal physique) que le GSM. Dans un réseau GPRS ou EDGE, une connexion logique est établie entre un terminal et le réseau par l'intermédiaire des contextes PDP (Packet Data Protocol), fournissant une adresse IP au terminal. Une connexion logique de type IP est ensuite établie entre deux terminaux voulant être mis en relation. Cette connexion logique de type IP est généralement une connexion TCP. Dans le cadre de 10 l'invention, cette connexion est établie en mode TCP mais utilisée (c'est- à-dire lors de l'envoi des paquets de données) en mode UDP. Dans le cas du GPRS, même si le canal radio permet des débits supérieurs à 100 kbit/s, les limitations des modems et des terminaux ne permettent pas de dépasser les 20 kbit/s en voie montante et 40 kbit/s en voie descendante. L'UMTS met en oeuvre une architecture différente de celle du GSM, reposant sur un canal de transport physique spécifique offrant des services et une qualité de service, notamment l'allocation de canaux en mode circuit à 64 kbit/s garantis et de canaux en mode paquets à 384 kbit/s. Dans la suite de la description, on entend par canal de transport le canal physique sur lequel sont transmises les données. Pour une connexion logique TCP établie entre deux terminaux, le débit du canal de transport peut être fixe (garanti) ou variable (par exemple en mode paquet). Comme illustré par la figure 2, deux connexions entre l'équipement de capture et le réseau permettent de remonter le flux vidéo de haut débit. Bien entendu, un nombre supérieur de connexions peut être mis en oeuvre sans pour autant sortir du cadre de la présente invention. Le serveur de streaming est un serveur qui recombine et stocke les données de contenus vidéo envoyées sur les deux canaux de transport associés aux deux connexions GPRS avant de les diffuser sur le réseau de transmission. Il est ici distant de l'encodeur, et accessible depuis Internet. Ainsi la limitation de la bande passante n'a pas lieu entre serveur et clients mais entre encodeur et serveur. Les réseaux d'émission et de transmission sont ici différents. Dans un mode de réalisation particulier, le réseau d'émission appartient à un opérateur différent du réseau de transmission. C'est notamment le cas lorsqu'un seul opérateur est disponible à l'emplacement de l'encodeur de contenu vidéo. Pour pallier ce problème de limitation de la bande passante, l'invention propose une application de multiplexage inverse qui permet d'accroître (de doubler) la bande passante dans le sens montant. Dans ce dessein, le PC portable auquel est reliée la caméra doit posséder deux cartes GPRS classe 10 pour pouvoir envoyer le flux vidéo encodé sur deux canaux de transport. Cette solution apparaît très adaptée à la surveillance vidéo depuis un lieu mobile. L'application de multiplexage inverse de paquets est dépendante du couple encodeur/serveur de streaming choisi et se décompose aussi en deux parties: un client émetteur du flux, MuxClient, et un serveur récepteur, MuxServer, chacune solidaire des machines où tournent respectivement l'encodeur et le serveur de streaming. La figure 3 détaille une mise en uvre au niveau de l'encodeur et du serveur. L'application de multiplexage est transparente pour le couple encodeur/serveur: le flux de données échangé n'est pas altéré. Cependant il est nécessaire d'indiquer comme destinataire à l'encodeur de contenu vidéo l'adresse IP locale ( localhost ) et non l'adresse IP distante de la machine serveur. En effet, c'est l'application MuxClient qui se charge de capturer le flux vidéo encodé et de le transférer au serveur de contenu vidéo, par l'intermédiaire de MuxServer. En référence à la figure 3, la machine cliente ( Encodeur ), sur laquelle tournent l'encodeur de contenu vidéo et MuxClient, possède deux cartes GPRS, soit 2 adresses IP publiques IP n 1 et IP n 2. La machine serveur, quant à elle, ne possède qu'une seule adresse IP (IP n 3) et collecte les deux flux de données provenant de IP n 1 et n 2 sur le même port. Suite à l'établissement des connexions logiques GPRS des deux cartes au réseau de télécommunication, deux autres connexions logiques sont réalisées entre les adresses IP n 1 et IP n 3, et IP n 2 et IP n 3 par la création d'une socket sur chacune des cartes. Nous appellerons connexion , dans la suite de la description, ces deux (ou plus) autres connexions logiques entre les différentes adresses IP devant communiquer entre elles. Cette connexion diffère de la connexion logique GPRS et de la connexion TCP en ce qu'elle met en liaison deux adresses IP par l'intermédiaire de sockets. La figure 9 illustre un empilement simplifié des couches selon le modèle OSI: le canal de transport correspond à la couche physique, la connexion logique GPRS est plus basse que la connexion logique entre les adresses par l'intermédiaire des sockets, et la connexion logique TCP est la plus haute en ce qu'elle réalise la mise en relation des deux programmes applicatifs d'extrémité. Concernant la transmission des données entre l'équipement émetteur (MuxClient) et l'équipement de réception (MuxServer), le protocole de la couche transport (couche 4 dans le modèle OSI) choisi est l'UDP (User Datagram Protocol), mais un dialogue TCP (Transfer Control Protocol) s'établit au préalable entre l'encodeur et le serveur pour l'initialisation de la connexion logique TCP entre les deux entités. L'utilisation du protocole UDP permet de s'affranchir d'une partie de la qualité de service fournie par un protocole tel TCP. En effet, UDP ne nécessite pas l'acquittement des paquets lors de la réception: aucun contrôle de flux n'est réalisé. La vidéo n'est pas particulièrement sensible à la perte de paquet (a contrario, des données telles un fichier informatique ne peuvent être utilisées si un seul paquet a été perdu), d'où l'utilisation de ce protocole. Pendant cette première phase d'initialisation, illustrée par la figure 4, MuxClient ne fait que relayer les paquets TCP émis par l'encodeur vers le MuxServer, qui relaie à son tour les paquets vers le serveur de streaming. Une seule des deux connexions logiques GPRS est utile pour cette première phase. Lors de ce dialogue, le serveur de contenu vidéo transmet à l'encodeur un numéro de port sur lequel il accepte de recevoir les paquets UDP (aussi appelés datagrammes) du flux vidéo encodé. Ce numéro de port est alors identifié dans ces paquets UDP par MuxServer, qui le signale à MuxClient. Ce dernier va lui ouvrir ce même numéro de port sur la machine où tourne l'encodeur de contenu vidéo et ainsi détourner le flux émis par l'encodage. Une fois l'ouverture de session TCP acceptée par le serveur de contenu vidéo, l'encodeur de contenu vidéo commence le transfert UDP du flux vidéo encodé vers le port PO de la même machine. En référence à la figure 5, MuxClient, ayant ouvert ce port en mode écoute, réceptionne les paquets UDP et leur attribue un numéro avant de les distribuer de manière égalitaire - suivant leur parité alternativement sur chacune des deux connexions pour les envoyer vers la machine serveur distante. Dans un mode de réalisation avec N connexions, une distribution des paquets peut, de façon similaire, distribuer alternativement un paquet sur la première connexion, puis sur la suivante jusque sur la Nième avant de repasser par la première. L'alternance peut tout aussi bien être désorganisée (troisième connexion puis Nième puis première, ...), voire adaptée au débit des canaux de transport des connexions si l'un d'entre eux présente des caractéristiques différentes permettant, par exemple, de transmettre plus de paquets. Deux flux de paquets UDP sont ainsi réceptionnés par MuxServer, sur deux ports différents, autres que le port PO préalablement imposé par le serveur de contenu vidéo. MuxServer effectue un classement par index croissant des paquets pairs et impairs en prenant en compte les pertes éventuelles. La séquence des paquets triés est envoyée sur le port d'écoute du serveur de contenu vidéo selon un processus de panier percé permettant la gestion du débit sortant, en fonction du débit désiré au niveau de l'encodeur. Dans une variante, le MuxClient dispose de deux mémoires tampon, par exemple de type circulaire, dans lesquelles il dirige les paquets avant que ceux-ci ne soient diffusés sur l'une ou l'autre des connexions. Les mémoires tampon sont ensuite remplies en fonction de la vitesse de transmission de chacune des connexions (vitesse liée au débit disponible sur les canaux de transport associés aux connexions) : les paquets sont envoyés vers la mémoire tampon la plus disponible (celle qui s'est vidée le plus rapidement). Ceci permet, notamment, de favoriser la connexion la plus efficace (rapide) et d'optimiser le débit total indépendamment des variations de débit sur l'une ou l'autre connexion. Dans une variante améliorée, des paquets de redondance du type FEC (Forward Error Correction) et Reed-Salomon, sont aussi diffusés pour pallier une éventuelle perte de paquets. Dans un mode de réalisation de la présente invention illustré par la figure 6, les datagrammes émis par l'encodeur ont une taille variable ne dépassant pas 1460 octets. Le marquage des paquets par MuxClient utilise 5 octets pour un horodatage ou une numérotation cyclique allant de 00000 à 99999 . Ce numéro est ajouté au début du paquet, augmentant ainsi sa taille de 5 octets. MuxServer extrait alors ce numéro pour la procédure d'ordonnancement, et redimensionne le paquet à sa taille d'origine avant de le transmettre au serveur de streaming. L'algorithme de tri se base sur le principe de listes chaînées simples , dont une représentation est fournie par la figure 7. À chaque arrivée d'un paquet, on crée un élément PaqElement, qui contient le contenu du paquet en caractères hexadécimaux, sa taille, son numéro de séquence et un pointeur sur le PaqElement suivant. L'algorithme classe les paquets entrants par leur numéro de séquence: il parcourt la liste depuis le premier paquet jusqu'au paquet dont le numéro est juste inférieur. Cette tactique permet de ne pas attendre les paquets éventuellement perdus. En référence à la figure 8, lorsque l'élément inférieur a été trouvé, le paquet nouvellement reçu est inséré dans la liste chaînée. Afin de réguler le flux de paquets arrivant de manière aléatoire au niveau de MuxServer, on utilise un algorithme de panier percé ( leaky bucket en anglais), utilisant une mémoire tampon (bucket) et un régulateur. La mémoire tampon doit être suffisamment grande pour ne pas se vider mais suffisamment petite pour, d'une part, ne pas consommer trop de mémoire dynamique et, d'autre part, ne pas parcourir une liste trop longue lors du classement des paquets par ordre croissant. Cette méthode permet de transférer les paquets suivant un débit spécifié, calculé en fonction du débit précisé à l'encodage. Le serveur de contenu vidéo reçoit alors les paquets à intervalles réguliers, ce qui évite les gels d'image ou les effets de vidéo saccadée. Tout autre type d'algorithme de correction d'absence de paquet vidéo peut, bien entendu, être mis en oeuvre dans le cadre du brevet. La présente invention s'inscrit parfaitement dans le cadre de nouveaux services en téléphonie mobile tels que la transmission de vidéo. Parmi les applications qui utilisent la vidéo comme médium de communication, les applications d'observation de site sont intéressantes que ce soit pour des usages professionnels ou privés. On peut citer comme exemple des applications de surveillance de site sensible (l'intérieur d'un fourgon de transport de fond, l'environnement d'un véhicule de surveillance, d'un véhicule de police), et des applications type observation d'une pièce du domicile (surveillance d'un bébé). REVENDICATIONS 1) Procédé de transmission d'un flux de données numériques entre un programme applicatif d'un équipement émetteur et un programme applicatif d'un équipement récepteur d'un réseau de télécommunications mobiles, le débit dudit flux de données étant supérieur à la capacité de transmission du canal de transport d'une connexion dans ledit réseau, comprenant: une étape d'indexation des paquets dudit flux de données numériques; une étape de répartition et de transmission desdits paquets indexés sur au moins deux connexions entre lesdits deux équipements. 2) Procédé de transmission selon la revendication précédente, caractérisé en ce que ladite transmission est réalisée en mode non connecté UDP (User Datagram Protocol). 3) Procédé de transmission selon l'une des revendications précédentes, caractérisé en ce qu'il comprend, en outre et préalablement à l'étape de transmission sur lesdites au moins deux connexions, une étape d'initialisation d'une connexion logique entre lesdits deux programmes applicatifs, ladite étape d'initialisation étant réalisée en mode connecté TCP (Transmission Control Protocol). 4) Procédé de transmission selon l'une des revendications 1 à 4, caractérisé en ce que lesdits paquets sont répartis alternativement sur chacune desdites connexions, lors de l'étape de répartition. 5) Procédé de transmission selon l'une des revendications 1 à 3, caractérisé en ce que ladite étape de répartition met en uvre des mémoires tampons associées au canal de transport de chacune desdites connexions et en ce que ladite répartition des paquets est réalisée sur la mémoire tampon la plus disponible. 6) Procédé de transmission selon la revendication précédente, caractérisé en ce que lesdites mémoires tampon 10 sont circulaires. 7) Procédé de transmission selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend, au niveau de l'équipement de réception: - une étape de réception des paquets transmis; - une étape de constitution d'une liste chaînée à partir desdits paquets reçus. 9) Procédé de transmission selon l'une quelconque des 20 revendications précédentes, caractérisé en ce qu'il comprend, en outre, une étape de cryptage desdites données. 10) Système de transmission d'un flux de données numériques pour la mise en oeuvre du procédé selon l'une quelconque des revendications précédentes, comprenant un équipement d'émission et un équipement de transmission, connectés à un réseau de télécommunications mobiles, caractérisé en ce que. - la capacité de transmission du canal de transport 30 de chacune des connexions dudit réseau est inférieure au débit dudit flux de données numériques - ledit équipement d'émission comprend des moyens d'indexation des paquets dudit flux de données numériques, des moyens de transmission desdits paquets sur au moins deux connexions entre les deux équipements; ledit équipement de réception comprend des moyens de réception desdits paquets transmis, des moyens de reconstruction dudit flux de données numériques à partir des paquets reçus. 10) Système de transmission selon la revendication précédente, caractérisé en ce que lesdits moyens de transmission comprennent au moins deux mémoires tampons associées aux canaux de transport desdites connexions. 11) Système de transmission selon la revendication 9, caractérisé en ce que lesdits moyens de reconstruction comprennent une liste chaînée construite à partir des paquets reçus. 12) Système de transmission selon l'une quelconque des revendications 9 à 11, caractérisé en ce que ledit réseau de télécommunications est d'une technologie choisie parmi le GPRS, l'EDGE et l'UMTS. 13) Système de vidéosurveillance comprenant des moyens de capture vidéo associés à des moyens d'encodage d'un encodeur, un système de transmission selon l'une des revendications 9 à 12 entre ledit encodeur et un serveur de diffusion (streaming) et des terminaux mobiles connectés audit serveur de diffusion par ledit réseau de télécommunications mobiles.