FR2853483A1 - Procede et dispositif de gestion des transmissions de paquets de donnees entre au moins deux appareils de communication - Google Patents

Procede et dispositif de gestion des transmissions de paquets de donnees entre au moins deux appareils de communication Download PDF

Info

Publication number
FR2853483A1
FR2853483A1 FR0304283A FR0304283A FR2853483A1 FR 2853483 A1 FR2853483 A1 FR 2853483A1 FR 0304283 A FR0304283 A FR 0304283A FR 0304283 A FR0304283 A FR 0304283A FR 2853483 A1 FR2853483 A1 FR 2853483A1
Authority
FR
France
Prior art keywords
transmission
data packets
source
data
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0304283A
Other languages
English (en)
Other versions
FR2853483B1 (fr
Inventor
Lilian Labelle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0304283A priority Critical patent/FR2853483B1/fr
Publication of FR2853483A1 publication Critical patent/FR2853483A1/fr
Application granted granted Critical
Publication of FR2853483B1 publication Critical patent/FR2853483B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44231Monitoring of peripheral device or external card, e.g. to detect processing problems in a handheld device or the failure of an external recording device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

L'invention concerne un procédé de gestion des transmissions de paquets de données multimédia entre au moins deux appareils de communication connectés entre eux, l'un, dit premier appareil, recevant des paquets de données d'au moins un autre appareil, dit deuxième appareil, caractérisé en ce que le procédé comporte les étapes suivantes effectuées par le premier appareil :- comparaison de la taille du dernier paquet de données reçu du deuxième appareil avec la taille de l'espace mémoire disponible dans le premier appareil pour son stockage,- en fonction du résultat de la comparaison, décision quant à la transmission, en direction du deuxième appareil, d'un message dit d'interruption (PAUSE) visant à interrompre de façon temporaire la transmission de paquets de données vers le premier appareil.

Description

i
La présente invention concerne un procédé et un dispositif de gestion des transmissions de paquets de données multimédia entre au moins deux appareils de communication connectés entre eux.
L'avancement technologique des appareils de communication numériques tels que les téléviseurs, les micro-ordinateurs de poche, les micro10 ordinateurs classiques ou tout autre appareil miniaturisé est tel que, dans les années à venir, il sera très probablement possible d'échanger des données de type multimédia et, par exemple, audio et/ou vidéo entre ces différents appareils.
Des études de marché montrent, par ailleurs, que les utilisateurs sont prêts à acheter de tels appareils de communication à condition que le prix ne soit 15 pas trop excessif et, surtout, que les services rendus soient de bonne qualité.
Suite à l'identification de ce nouveau marché, de nombreuses études ont été menées concernant la miniaturisation des composants électroniques, de manière à obtenir des appareils ayant des capacités de mémoire et de calcul élevées.
En outre, de nombreux organismes de normalisation ont mis en place des standards permettant d'unifier les échanges de données entre ces appareils aux caractéristiques différentes. Ces standards, tels que ceux de la famille IEEE 802, permettent à la fois la mise en oeuvre et la gestion du transfert des données via un réseau particulier.
Le standard IEEE 802.11 et son homologue européen HYPERLAN sont dédiés aux réseaux locaux sans fil. Ils sont particulièrement étudiés actuellement car ce sont des réseaux larges bandes permettant de transmettre des données audio et/ou vidéo entre deux machines qui sont géographiquement proches.
Ces standards sont donc particulièrement adaptés pour développer des 30 réseaux locaux sans fil à l'intérieur des habitations.
Les solutions techniques étudiées actuellement dans le cadre des standards susvisés appliqués aux réseaux locaux domestiques permettent de transmettre des données numériques soit entre une machine dite serveur et une machine dite client (transmission point à point), soit entre le serveur et un groupe de clients, soit encore entre le serveur et plusieurs clients (communication multi-points) et ce, sans aucun fil.
Dans cet environnement, les données sont stockées sur le serveur qui centralise toutes les communications avec le ou les clients. Ce serveur peut également servir de passerelle avec le monde extérieur (Internet, télévision, camescope... ).
Il convient de noter que les réseaux locaux domestiques peuvent être de 10 nature hétérogène, c'est-à-dire qu'ils peuvent, par exemple, être pour partie constitués de liaisons sans fil et pour partie de liaisons filaires.
Si de nombreux projets étudient la mise en oeuvre de services autour de la télévision interactive et l'échange d'informations sur l'lnternet, peu d'entre eux traitent des problèmes liés à la mise en oeuvre de réseaux locaux domestiques, à 15 savoir la mise en place de solutions permettant d'obtenir une qualité de services acceptable pour les utilisateurs.
La transmission de données, par exemple, de type vidéo entre un serveur et une machine client à travers un réseau de communication local, de manière à permettre à la machine client de décoder et visualiser ces données vidéo 20 n'est pas un service aisé à mettre en place.
En effet, plusieurs problèmes se posent: - la vidéo qui a été réclamée par la machine client par l'intermédiaire d'une requête préalable doit être adaptée au contexte dans lequel la transmission s'effectue, à savoir, par exemple, la bande passante limitée du réseau de 25 communication, la possibilité de perte de paquets de données et que des bits soient erronés lors de cette transmission, les capacités de traitement et/ou de stockage réduites de la machine client... ; - il convient également de tenir compte du fait que plusieurs machines client peuvent demander simultanément la même vidéo, voire des vidéos 30 différentes; pour cette raison, en utilisant une stratégie dite de "meilleur effort" (connue en terminologie anglosaxonne sous le terme de "best effort") selon laquelle un paquet de données est envoyé à chaque machine client tour à tour, certaines de ces machines recevront un grand nombre de données à traiter (décodage et visualisation), tandis que d'autres machines n'en recevront pas assez pour assurer une visualisation correcte de la vidéo décodée: on parlera alors respectivement de machines client en avance et de machines client en retard; - il convient par ailleurs de noter que la machine client est en général un ordinateur ou, du moins, une machine possédant une capacité de calcul et une capacité de mémoire, la mémoire en question étant nécessaire pour stocker les programmes de réception, de décodage et de visualisation de la vidéo; en outre, il est nécessaire d'allouer une partie de cette mémoire au stockage temporaire des 10 paquets de données reçues du serveur dans l'attente de leur traitement; toutefois, lorsque l'on a affaire à des machines client de type portable, telles que des ordinateurs de poche, assistants numériques personnels et autres, la capacité mémoire de la machine est limitée et l'espace mémoire dédié à la réception des paquets de données est en général inférieur à la taille de la vidéo à recevoir, ce qui 15 pose le problème de dépassement de la capacité mémoire de la machine.
Compte tenu de ce qui précède, il serait par conséquent intéressant de pouvoir transmettre simultanément d'un appareil de communication plusieurs entités de données numériques multimédia, par exemple des vidéos, à différents autres appareils de communication et de pouvoir gérer le dépassement de mémoire 20 qui risque de se produire sur ces derniers lors de la réception des données.
On connaît, d'après le document US 5 822 524, une méthode pour résoudre le problème de gestion de dépassement de la capacité mémoire dans une machine client.
Dans ce document, il est prévu de transmettre des données vidéo en 25 utilisant un algorithme d'ordonnancement associé à chacune des machines client en considérant, au niveau du serveur, trois états: - l'état NORMAL selon lequel les paquets de données sont envoyés par le serveur selon une cadence déterminée, - l'état RUSH selon lequel les paquets de données sont envoyés par le 30 serveur selon une cadence accélérée, et - l'état qualifié de PAUSE selon lequel aucun paquet de données n'est envoyé par le serveur.
Le changement de mode de fonctionnement de cet algorithme d'ordonnancement est piloté par le client en fonction de l'état de remplissage de la mémoire de la machine client allouée à la réception de paquets de données par rapport à deux seuils, l'un noté H, au-delà duquel la mémoire est considérée 5 comme pleine et l'autre noté L, en dessous duquel la mémoire est considérée comme vide.
Le serveur est dans l'état NORMAL lorsque le taux de remplissage de la mémoire de la machine client se situe entre les deux seuils précités, cet état NORMAL signifiant pour la machine client que les paquets de données reçus 10 peuvent être stockés dans la mémoire et que les paquets stockés peuvent être traités, c'est-à-dire décodés et visualisés.
Lorsque le taux de remplissage de la mémoire est inférieur au seuil précité H, alors un message PAUSE est envoyé au serveur afin d'interrompre la transmission des paquets à la machine client considérée.
Lorsque le taux de remplissage de la mémoire devient inférieur au seuil précité H, alors la machine client envoie un message RESTART au serveur afin qu'il reprenne la transmission de paquets de données à cette dernière.
Lorsque le taux de remplissage devient inférieur au seuil précité L, alors un message RUSH est envoyé au serveur, indiquant à ce dernier la nécessité de 20 transmettre rapidement des paquets de données.
L'inconvénient majeur de cette technique réside dans la définition des deux seuils H et L. En effet, lorsque l'on souhaite éviter que la mémoire soit vide, ce qui risquerait d'entraîner un blocage du décodeur et donc de l'algorithme de 25 visualisation (l'image risquerait alors d'être figée sur l'écran de visualisation), il est nécessaire que le seuil L soit suffisamment élevé pour que le temps de traitement des paquets de données restant dans la mémoire soit supérieur à celui nécessaire à l'envoi du message RUSH au serveur, temps auquel il faut ajouter le temps nécessaire pour recevoir un paquet de données.
Il convient également de noter que ce seuil L ne doit pas être trop bas car, en effet, la bande passante du réseau de communication serait alors gaspillée par l'envoi fréquent de messages RUSH, NORMAL et PAUSE par la machine client.
On s'aperçoit ainsi que le choix du seuil L n'est pas particulièrement aisé.
La définition du seuil H pose, elle aussi, un problème dans la mesure o, dès que le taux de remplissage de la mémoire est supérieur au seuil H, alors la machine client envoie le message PAUSE au serveur mais continue encore à prendre en compte des paquets de données arrivant.
Etant donné que la machine client n'a pas une connaissance préalable 10 de la taille des paquets qu'elle va recevoir, il est a priori impossible de définir le seuil H en évitant de perdre des paquets de données qui arriveraient après l'envoi du message PAUSE.
On s'aperçoit ainsi que ce genre de méthode utilisant deux seuils pour gérer le problème de dépassement de la capacité mémoire de la machine client 15 nécessite de transmettre des paquets de données de taille constante ou, en tout cas, des paquets de données dont la taille n'excède pas une certaine limite.
La présente invention vise à remédier à au moins un des inconvénients précités en proposant un procédé de gestion des transmissions de paquets de données multimédia entre au moins deux appareils de communication connectés 20 entre eux, l'un, dit premier appareil, recevant des paquets de données d'au moins un autre appareil, dit deuxième appareil, caractérisé en ce que le procédé comporte les étapes suivantes effectuées par le premier appareil: - comparaison de la taille du dernier paquet de données reçu du deuxième appareil avec la taille de l'espace mémoire disponible dans le premier 25 appareil pour son stockage, - en fonction du résultat de la comparaison, décision quant à la transmission, en direction du deuxième appareil, d'un message dit d'interruption (PAUSE) visant à interrompre de façon temporaire la transmission de paquets de données vers le premier appareil.
Corrélativement, l'invention vise un dispositif de gestion des transmissions de paquets de données multimédia entre au moins deux appareils de communication connectés entre eux, l'un, dit premier appareil, recevant des paquets de données d'au moins un autre appareil, dit deuxième appareil, caractérisé en ce que premier appareil comporte: des moyens de comparaison de la taille du dernier paquet de données reçu du deuxième appareil avec la taille de l'espace mémoire disponible dans le premier appareil pour son stockage, - des moyens de décision quant à la transmission, en direction du deuxième appareil, d'un message dit d'interruption (PAUSE) visant à interrompre de façon temporaire la transmission de paquets de données vers le premier appareil, en fonction du résultat de la comparaison.
Avantageusement, l'invention ne nécessite pas d'avoir à définir plusieurs seuils en rapport avec l'espace mémoire du premier appareil de communication pour gérer le problème de dépassement de la capacité mémoire de ce premier appareil.
Grâce à l'invention, on gère ainsi l'espace mémoire du premier appareil 15 de façon transparente pour l'utilisateur de cet appareil dans la mesure o la qualité de service (par exemple, le taux d'image par seconde et la qualité de la vidéo dans le cas de données vidéo) reste inchangée.
Par ailleurs, une telle gestion occasionne un temps de calcul relativement réduit et une faible consommation de bande passante.
Selon une caractéristique, lorsque la taille du dernier paquet de données reçu est supérieure à la taille de l'espace mémoire disponible dans le premier appareil, alors le procédé comporte une étape de transmission, en direction du deuxième appareil, d'un message d'interruption temporaire de la transmission de paquets de données vers le premier appareil.
Selon une autre caractéristique, le message d'interruption inclut des informations indiquant au deuxième appareil le prochain paquet de données à transmettre au premier appareil.
Ceci permet, lorsque la taille du dernier paquet reçu est supérieure à la taille de l'espace mémoire disponible dans le premier appareil, de ne pas perdre de 30 paquet, puisqu'alors le message d'interruption indiquera que le dernier paquet de données reçu par l'appareil et qui n'a pas pu être stocké sera à transmettre prochainement à cet appareil.
On notera que le message d'interruption peut alternativement indiquer le dernier paquet reçu.
Selon une caractéristique, le procédé comporte les étapes suivantes: comparaison de la taille de l'espace mémoire non lu par le premier 5 appareil pour le stockage de paquets de données vidéo avec un seuil TH défini de la façon suivante: TH = min (RF x FR x N, Kx BS), o RF désigne le rapport de la taille maximale de l'espace mémoire sur le nombre total d'images constituées par l'ensemble des paquets de données vidéo à 10 transmettre du deuxième appareil au premier appareil, FR est le nombre d'images par seconde, N et K sont des constantes et BS désigne la taille maximale de l'espace mémoire, - en fonction du résultat de la comparaison, décision quant à la transmission, en direction du deuxième appareil, d'un message de reprise de la 15 transmission de paquets de données vers le premier appareil.
On remarquera qu'ici l'invention ne prévoit de définir qu'un seuil, contrairement à l'art antérieur qui en prévoit deux, afin de savoir à quel moment il est nécessaire d'envoyer un message de reprise de la transmission de paquets de données.
20, Selon une caractéristique, lorsque la taille de l'espace mémoire non lu dans le premier appareil est inférieure au seuil TH, alors le procédé comporte une étape de transmission, en direction du deuxième appareil, d'un message de reprise de la transmission de paquets de données (RESTART) vers le premier appareil.
Selon un autre aspect, l'invention vise aussi un procédé de gestion des 25 transmissions de paquets de données multimédia entre une source de données et plusieurs appareils de communication connectés à cette source par l'intermédiaire d'un réseau de communication, caractérisé en ce que le procédé comporte une étape, effectuée par la source, de réception en provenance d'un appareil d'un message dit d'interruption (PAUSE) visant à interrompre de façon temporaire la 30 transmission de paquets de données de la source vers cet appareil, ce message signifiant que la taille du dernier paquet de données reçu par cet appareil était supérieure à la taille de l'espace mémoire disponible dans cet appareil pour le stockage de paquets.
Corrélativement, l'invention vise un dispositif de gestion des transmissions de paquets de données multimédia entre une source de données et 5 plusieurs appareils de communication connectés à cette source par l'intermédiaire d'un réseau de communication, caractérisé en ce que la source comporte des moyens de réception en provenance d'un appareil d'un message dit d'interruption (PAUSE) visant à interrompre de façon temporaire la transmission de paquets de données de la source vers cet appareil, ce message signifiant que la taille du 10 dernier paquet de données reçu par cet appareil était supérieure à la taille de l'espace mémoire disponible dans cet appareil pour le stockage de paquets.
Ainsi, suite à l'analyse effectuée dans un ou plusieurs des appareils de communication connectés à la source de données, cette dernière prévoit d'interrompre la transmission de paquets de données vers un ou plusieurs de ces 15 appareils lorsqu'elle reçoit de ces derniers un message d'interruption.
Selon une caractéristique, le procédé comporte une étape de décision de la transmission d'un paquet de données à l'appareil dont provient le message d'interruption et qui tient notamment compte du délai cumulé (OFFSET) pendant lequel l'appareil n'a pas reçu de paquets de données de la source suite à la 20 transmission par cet appareil d'un ou de plusieurs messages d'interruption.
La connaissance par la source de données de ce délai cumulé pour un appareil de communication est très utile dans la mesure o ce délai reflète le taux d'occupation de l'espace mémoire de l'appareil réservé au stockage des paquets de données.
Ainsi, si le délai cumulé pour un appareil est élevé, cela signifie que l'espace mémoire est plein ou souvent plein et que la machine client a transmis à la source un ou plusieurs messages d'interruption.
Si le délai cumulé d'un appareil est relativement faible, cela signifie que la machine client a un espace mémoire de taille relativement grande par 30 comparaison avec la bande passante du réseau et/ou la taille totale de la vidéo.
Cependant, cela peut aussi signifier que la cadence à laquelle les paquets sont transmis est faible comparée à la bande passante et à l'espace mémoire. Enfin, cela peut aussi tout simplement signifier que les capacités de la machine client sont élevées, c'est-à-dire que les paquets reçus sont traités quasi- instantanément.
Selon une autre caractéristique, le procédé comporte une étape préalable d'affectation à l'appareil concerné d'une priorité en fonction notamment du délai cumulé de cet appareil, l'étape de décision tenant compte de cette priorité.
Ainsi, la priorité affectée à un appareil reflète le taux d'occupation de l'espace mémoire de cet appareil réservé au stockage des paquets de données.
Selon une caractéristique, le procédé comporte une étape de détermination à l'instant courant (ta) d'un paramètre appelé marge (ta), représentatif 10 d'une qualité de services proposée à l'appareil, et qui s'écrit: marge (ta) = to + OFFSET + tp - ta, o to correspond à l'instant o l'appareil s'est connecté à la source de données et tp correspond à l'instant auquel au moins un paquet de données doit être visualisé par l'appareil.
La différence tp-ta est représentative de l'état de l'appareil: si tp-ta est positive, cela signifie que l'appareil est en avance (l'appareil dispose d'un nombre suffisant de données à traiter et on lui affecte donc une priorité basse), tandis que si tp-ta est négative, cela signifie que l'appareil est en retard (l'appareil dispose d'un nombre insuffisant de données à traiter, ce qui risque de pénaliser son 20 fonctionnement et on lui affecte donc une priorité haute).
Lorsqu'un message d'interruption PAUSE est émis par l'appareil, la marge de cet appareil diminue. On est ainsi tenté de croire que l'appareil devient de moins en moins en avance, alors que cette diminution est en fait imputable au temps de pause, ce qui fausse l'estimation de l'état de l'appareil.
Pour remédier à cela le paramètre OFFSET précédemment défini intervient pour décaler le temps de référence to afin que tp-ta continue à refléter l'état d'avance ou de retard de l'appareil.
Selon une autre caractéristique, le procédé comporte les étapes suivantes: - détermination d'un paramètre appelé variation qui s'écrit: variation = marge (ta) - marge (tb), o marge (ta) et marge (tb) sont les paramètres représentatifs de la qualité de services proposée à l'appareil à deux instants différents ta et tb, avec ta > tb, - affectation à l'appareil d'une priorité en fonction du paramètre variation précédemment déterminé.
Le paramètre appelé variation permet ainsi d'estimer l'évolution entre l'estimation de la qualité de service actuelle (instant ta) et l'estimation d'une qualité de service précédente (instant tb).
En fonction de l'évolution de l'estimation de la qualité de service proposée, on choisit ou non de modifier la priorité affectée à un appareil de 1 0 communication.
Selon une caractéristique, un message d'interruption inclut des informations indiquant à la source le prochain paquet de données à transmettre à l'appareil qui a transmis ce message.
Selon une autre caractéristique, la source comportant une mémoire pour 15 le stockage des paquets à transmettre et un pointeur visant le dernier paquet transmis, lorsque la source reçoit d'un appareil un message (RESTART) de reprise de la transmission de paquets de données de la source vers cet appareil, le pointeur est repositionné sur le paquet de données qui est à transmettre à l'appareil.
Selon encore un autre aspect, l'invention vise un procédé de gestion des transmissions de paquets de données multimédia entre une source de données et plusieurs appareils de communication connectés à cette source par l'intermédiaire d'un réseau de communication, caractérisé en ce que le procédé comporte une étape, effectuée par la source, de transmission de paquets de données à un ou 25 plusieurs appareils en tenant compte notamment, pour chaque appareil, du délai cumulé (OFFSET) pendant lequel l'appareil n'a pas reçu de paquets de données de la source suite à la transmission par cet appareil d'un ou de plusieurs messages d'interruption, de tels messages visant à interrompre de façon temporaire la transmission de paquets de données par la source.
Corrélativement, l'invention vise un dispositif de gestion des transmissions de paquets de données multimédia entre une source de données et plusieurs appareils de communication connectés à cette source par l'intermédiaire il d'un réseau de communication, caractérisé en ce que la source comporte des moyens de transmission de paquets de données à un ou plusieurs appareils en tenant compte notamment, pour chaque appareil, du délai cumulé (OFFSET) pendant lequel l'appareil n'a pas reçu de paquets de données de la source suite à 5 la transmission par cet appareil d'un ou de plusieurs messages d'interruption, de tels messages visant à interrompre de façon temporaire la transmission de paquets de données par la source.
Ainsi, comme mentionné précédemment, la connaissance du délai cumulé d'un ou de plusieurs appareils connectés à la source de données permet de 10 gérer la reprise des transmissions à destination de ce ou ces appareils.
L'invention concerne également un appareil de communication comportant un dispositif tel que brièvement exposé ci-dessus.
Selon un autre aspect, l'invention vise aussi: - un moyen de stockage d'informations lisible par un ordinateur ou 15 un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé selon l'invention tel que celui exposé brièvement ci-dessus, et - un moyen de stockage d'informations amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur comportant des 20 instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé selon l'invention tel que celui brièvement exposé ci-dessus.
Selon encore un autre aspect, l'invention vise un programme d'ordinateur chargeable dans un appareil programmable, comportant des séquences d'instructions ou portions de code logiciel pour mettre en oeuvre des 25 étapes du procédé selon l'invention tel que brièvement exposé ci-dessus, lorsque ledit programme d'ordinateur est chargé et exécuté sur l'appareil programmable.
Les caractéristiques et avantages relatifs au dispositif, à l'appareil de communication comportant un tel dispositif, aux moyens de stockage d'informations et au programme d'ordinateur étant les mêmes que ceux exposés ci-dessus 30 concernant le procédé selon l'invention, ils ne seront pas rappelés ici.
D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description qui va suivre, faite en référence aux dessins annexés, sur lesquels: - la figure 1 représente de manière schématique une architecture de 5 communication de type client-serveur dans laquelle l'invention est mise en oeuvre; - les figures 2a, 2b et 2c illustrent de façon schématique le fonctionnement d'une mémoire partagée dans le serveur de la figure 1; - les figures 3a, 3b, 3c et 3d illustrent de façon schématique le 10 fonctionnement d'une mémoire partagée dans la machine client de la figure 1 - la figure 3e représente un algorithme de gestion des transmissions selon l'invention qui est mis en oeuvre par une machine client; - la figure 4 représente un algorithme de traitement des requêtes provenant d'appareils de communication tels que celui de la figure 1 (machine 15 client) et demandant la transmission de données vidéo; - la figure 5 représente un algorithme de gestion des transmissions de données à différents appareils de communication en fonction des priorités affectées à ces appareils; - la figure 6 représente un algorithme d'affectation dynamique de 20 priorités à des appareils de communication selon l'invention et qui correspond à l'étape E503 de l'algorithme de la figure 5; - la figure 7 est un mode de réalisation d'un appareil programmable mettant en oeuvre l'invention.
Sur la figure 1 est représentée une architecture de communication 25 du type client-serveur dans laquelle l'invention est avantageusement mise en oeuvre.
Sur cette figure, un premier appareil de communication constituant une source données numériques multimédia 1 appelée serveur est relié à plusieurs appareils de communication, dont un seul référencé 2 et appelé 30 machine client est représenté.
La source 1 est reliée à cet appareil par l'intermédiaire d'un réseau de communication 3 et de connexions qui sont considérées comme étant établies pour cette machine.
Comme on le verra lors de la description des figures 5 et 6, 5 l'invention ne se limite pas à une configuration o un seul appareil de communication est connecté à la source de données.
Dans le contexte de l'invention, l'appareil de communication requiert de la source 1 (serveur) des données numériques multimédia.
Le réseau est par exemple un réseau Ethernet 1 OObT filaire, Le réseau peut aussi être, par exemple, un réseau de communication local sans fil à l'intérieur d'une habitation.
Plus particulièrement, ce réseau sans fil est conforme au standard IEEE802.11lb dans le cas d'un réseau dit Ad-Hoc, c'est-à-dire sans centralisation des échanges de données.
Il s'agit dans l'exemple considéré de transmissions point à point de données entre le serveur 1 et les machines client 2, 3 et 4.
Pour mettre en oeuvre ces multiples transmissions, il convient de prendre en compte, d'une part, la gestion des processus d'adaptation et de transmission en parallèle aux différentes machines client des différentes 20 versions adaptées des données demandées et, d'autre part, les accès multiples à la ou aux mémoires du serveur.
On notera que les données stockées dans le serveur peuvent avoir été reçues de l'environnement extérieur à l'habitation, par exemple, par un autre réseau de communication tel que l'lnternet.
Les données regroupées sous le terme données multimédia peuvent être, de manière non limitative, des images fixes, des vidéos, du son, des données de type texte (ex: documents graphiques...), des documents en langage HTML, des signaux issus d'un télécopieur ou d'une imprimante... Dans l'exemple de réalisation considéré, on considérera uniquement 30 des
données vidéo et celles-ci seront transmises sans perte sur le réseau 3 sous la forme de paquets de données qui sont transmis un par un.
On partira également de l'hypothèse que le temps de transmission des données sur le réseau est négligeable.
Il convient de noter que l'invention s'applique également lorsque le temps de transmission sur le réseau est déterminé ou déterminable.
Le serveur 1 (source de données) est un dispositif de gestion des transmissions au sens de la présente invention selon un premier aspect.
On notera cependant que le serveur et le dispositif de gestion selon l'invention peuvent être des éléments distincts.
Dans ce cas, les différentes unités du serveur de la figure 1 qui 10 servent à mettre en oeuvre l'invention font alors partie du dispositif selon l'invention.
Le serveur 1 comprend une unité Il de stockage de façon temporaire des données vidéo à transmettre à l'appareil de communication 2.
Les informations utiles à transmettre pour reconstruire une vidéo au niveau d'un 15 appareil de communication sont mémorisées sous forme de paquets dans l'unité 11. Chaque paquet contient ainsi les données permettant, à l'appareil destinataire, de décompresser une ou plusieurs images de la vidéo.
Chacun des paquets contient également un numéro et une valeur tp qui représente l'instant auquel la ou les images contenues dans ce paquet 20 doivent être visualisées par l'appareil destinataire. La valeur de cet instant sera, par exemple, égale au rapport entre le numéro de la première image du paquet et le nombre d'images par seconde FR.
On notera que les vidéos sont créées, par exemple, par un caméscope numérique ou tout autre moyen d'acquisition de données ou bien 25 sont transmises par un réseau de communication extérieur et sont stockées dans l'unité 11.
Le fonctionnement schématique de cette unité est représenté aux figures 2a, 2b et 2c qui seront décrites plus loin.
En outre, les vidéos sont stockées soit sous forme non compressée, 30 par exemple suivant un format YUV, soit sous forme compressée.
On notera qu'un format vidéo de type YUV signifie que la vidéo concernée possède trois composantes, la composante Y pour la luminance et les composantes U et V pour la chrominance.
Le serveur 1 comprend une unité d'ordonnancement 12 (connue en 5 terminologie anglo-saxonne sous le terme "scheduling unit") des paquets de données qui a pour but de gérer les transmissions de paquets entre le dispositif 1 et les machines client.
La gestion des transmissions passe, par exemple, par une affectation dynamique des priorités aux différentes machines client en termes 10 de nécessité ou non d'une transmission de paquets de données.
Cette affectation est dynamique dans la mesure o elle est établie pour chaque paquet de données que le serveur 1 a préparé en vue de son éventuelle transmission à l'une des machines client.
Pour le paquet suivant destiné à la même machine client, la priorité 15 affectée peut en effet être différente selon les circonstances. On notera que le caractère dynamique de l'ordonnancement des paquets de données présente l'avantage que de nouvelles machines client peuvent se connecter au dispositif 1 (serveur) alors que l'ordonnancement des paquets destinés aux machines clients déjà connectées est en cours.
Les différentes opérations exécutées par l'unité 12 seront détaillées ultérieurement lors de la description faite en référence aux figures 5 et 6.
Le serveur 1 comprend également une unité 13 de réception de messages provenant de la ou des différentes machines client connectées au serveur, cette unité recevant également des requêtes de ces dernières.
Le serveur 1 comprend aussi une unité 14 qui permet d'effectuer la transmission de paquets de données aux machines client à travers le réseau 3.
Le serveur 1 selon l'invention comporte en outre une unité de commande 15 des différentes opérations exécutées.
On considère que les différentes machines client connectées au 30 serveur 1 ont toutes la même structure et le même fonctionnement que ceux
de la machine 2 dont la description va suivre.
La machine client 2 comporte une unité de réception de données numériques 20.
Cette unité 20 permet d'effectuer la réception de données provenant du serveur 1 et leur transmission à l'unité de stockage 23.
Le fonctionnement schématique de l'unité de stockage 23 est représenté aux figures 3a, 3b et 3c qui seront décrites plus loin.
La machine client 2 comporte également une unité 21 de transmission de messages et de requêtes à travers le réseau 3, et notamment à destination du serveur 1.
Cette unité est principalement utilisée pour transmettre au serveur 1, d'une part, des messages appelés PAUSE visant à interrompre de façon temporaire la transmission de paquets de données du serveur à la machine client et, d'autre part, des messages appelés RESTART qui visent à reprendre le processus de transmission des paquets par le serveur.
La machine client 2 comporte en outre une unité 22 de traitement des paquets de données stockés dans l'unité 23 et une unité de commande 24 analogue à l'unité 15 du serveur.
L'unité de traitement 22 récupère les données contenues dans les paquets stockés dans l'unité 23 au fur et à mesure qu'ils sont reçus par cette 20 dernière et sont décompressées avant d'être visualisées.
Il convient de noter que si l'unité de stockage 23 ne contient aucune donnée, la dernière image visualisée est figée, ce qui rend impossible la visualisation de toute la vidéo demandée par la machine client.
Si, par contre, l'unité 23 contient des données, deux cas peuvent se 25 produire: soit la quantité de données présentes dans l'unité est suffisante pour satisfaire aux contraintes de l'unité de traitement, soit cette quantité est insuffisante.
Les contraintes de l'unité de traitement 22 s'expriment, par exemple, en nombre d'images par seconde car, en effet, un format vidéo donné spécifie à 30 quelle vitesse la vidéo doit être exécutée (par exemple, à 30 images par seconde).
Ainsi, dans le cas d'une vidéo à 30 images par seconde, si chaque paquet reçu par l'unité de stockage 23 contient les données constitutives d'une image de la vidéo, alors l'unité 23 doit contenir au moins 30 paquets pour que la machine client 2 soit considérée comme étant en avance d'une seconde.
Si l'unité 23 ne contient que 15 paquets, la machine client est considérée comme étant en avance de 0,5 seconde et ainsi de suite.
Les contraintes de l'unité de traitement d'une machine client correspondent, pour cette machine, à une qualité de services que le client exprime lorsqu'il requiert des données de la part du serveur 1. Le client s'attend 10 en retour à recevoir des paquets de données dont la qualité de services associée à chaque paquet est conforme à la qualité demandée ou, du moins, aussi proche que possible de celle-ci.
D'autres contraintes que le nombre d'images par seconde peuvent être exprimées à travers la qualité de services demandée.
Ainsi, on peut citer, par exemple, le temps au bout duquel la machine client doit recevoir un paquet de données par rapport à l'instant d'émission de la requête provenant de cette machine.
On notera que, selon un deuxième aspect, la machine client 2 est également un dispositif de gestion des transmissions au sens de la présente 20 invention.
Les figures 2a, 2b et 2c dont la description va suivre illustrent le fonctionnement de l'unité de stockage 11 du serveur 1 de la figure 1.
Le transcodage effectué dans le serveur génère des paquets de données qui sont écrits dans la mémoire partagée des figures 2a et 2b, comme 25 indiqué par la flèche représentée sur la gauche de la figure 2b.
En effet, dans cette représentation, des paquets de données sont stockés dans la mémoire 11 de la gauche vers la droite.
La mémoire fonctionne comme une pile et l'indicateur Pa agit comme un pointeur qui représente le numéro du prochain paquet de données à 30 transmettre à la machine client 2 de la figure 1.
Comme représenté sur la figure 2a, la mémoire 11 comprend plusieurs zones 30 à 34 qui contiennent respectivement des paquets de données Pi, P2, P3, P4, P5, et une zone 35 destinée à stocker de nouveaux paquets.
Sur la figure 2a, on a représenté l'écriture d'un nouveau paquet P6 dans une zone mémoire 36, laissant ainsi vide une zone mémoire 37 pour y stocker de nouveaux paquets.
On accède à cette mémoire en mode lecture, c'est-à-dire en se déplaçant de la droite vers la gauche, lorsque l'algorithme d'ordonnancement de la figure 5, qui sera décrit ultérieurement, est mis en oeuvre.
Comme on le verra par la suite, en fonction de la priorité affectée à 10 un appareil de communication distant, l'algorithme d'ordonnancement prévoit au cours d'une étape E505 d'envoyer le paquet de données Pa à la machine client considérée et, pour ce faire, vient lire la mémoire 11 de la figure 2c comme indiqué par la flèche "envoi".
Dès lors que le paquet a été transmis à la machine client considérée, 15 l'indicateur Pa est incrémenté d'une unité, comme le montre la comparaison des figures 2b et 2c.
On notera qu'un certain nombre de paquets de données qui ont été envoyés, à savoir les paquets PI, P2, P3, sont toujours stockés dans des zones mémoire respectives 30, 31, 32 de la mémoire 11 afin de pouvoir être 20 retransmis en cas de besoin, par exemple, si l'un de ces paquets de données n'a pas été reçu par la machine client à laquelle il était destiné.
Le serveur 1 sera informé du paquet à retransmettre ultérieurement en recevant le message d'interruption provenant de la machine client considérée.
On peut, par exemple, considérer qu'après l'envoi du prochain paquet de données P4, les paquets précédents seront successivement supprimés au fur et à mesure de l'écriture de nouveaux paquets dans la zone mémoire 37.
On notera que l'on peut envoyer n'importe quel paquet de données 30 stocké dans la mémoire 11.
La taille de cette mémoire est, par exemple, égale à la taille d'une séquence vidéo compressée qui est, par exemple, de l'ordre de 2 à 3 Mbits.
Cette mémoire est, par exemple, une mémoire tampon qui peut être de type circulaire.
Les figures 3a à 3d illustrent le fonctionnement d'une partie de l'unité de stockage 23 de la machine client 2 de la figure 1 qui vont être décrites parallèlement à la figure 3e.
L'algorithme de la figure 3e comporte différentes instructions ou portions de code logiciel correspondant à des étapes du procédé de gestion des transmissions selon l'invention mis en oeuvre par la machine client.
Le programme informatique noté "ProgO" qui est basé sur cet 10 algorithme est mémorisé dans l'unité de stockage 23 et exécuté par l'unité 22 sous le contrôle de l'unité de commande 24.
Lorsque la machine client 2 prend la forme de l'appareil de la figure 7, alors ce programme y est stocké, par exemple, dans la mémoire morte de cet appareil.
La partie de l'unité de stockage 23 est, par exemple, une mémoire circulaire partagée à laquelle l'unité de réception de données 20 accède en écriture à partir de la gauche, comme représenté sur la figure 3a.
Sur cette figure, on a représenté une zone mémoire remplie notée 40 sur la droite de la figure et une zone mémoire 42 laissée vide pour y stocker de 20 nouveaux paquets réceptionnés (espace mémoire disponible).
On notera, à la différence de la structure de la mémoire représentée sur les figures 2a à 2c, qu'ici la mémoire ne conserve pas la structure des paquets dans des zones mémoire spécifiques.
Cependant, tout comme la mémoire des figures 2a à 2c, la mémoire 25 23 fonctionne également comme une pile.
Lorsque de nouveaux paquets sont réceptionnés par l'unité de réception 20 de la machine client 2, les données du paquet reçu sont écrites dans la mémoire 23, comme indiqué par la flèche gauche sur la figure 3a.
De plus, le numéro du paquet correspondant est mémorisé dans la 30 mesure o la taille de ce paquet est inférieure ou égale à l'espace mémoire disponible 42.
On a représenté sur la figure 3b la mémoire venant de stocker les dernières données reçues.
Dans cet état, l'espace mémoire occupé 44 occupe la quasi totalité de l'espace mémoire total et l'espace mémoire disponible 46 se trouve être fortement réduit.
Dans un tel cas de figure, lorsque le prochain paquet de données est reçu (étape E300) par la machine client 2 et que sa taille (étape E301) est considérée comme étant supérieure (étape de comparaison E303) à la taille de l'espace mémoire disponible 46 (étape E302), alors la mémoire est considérée 10 comme pleine (taux élevé d'occupation de la mémoire).
Dans cette hypothèse, les données du paquet reçu (étape de décision E304) ne sont pas écrites et la machine client 2 transmet le message d'interruption PAUSE (étape E305) au serveur 1 par l'intermédiaire de l'unité de transmission 21.
Ce message contient le numéro du dernier paquet qui a été écrit en mémoire, ce qui permet au serveur de savoir quel est le prochain paquet à retransmettre à la machine client concernée.
Au contraire, lorsque la taille du paquet reçu est supérieure à celle de l'espace mémoire disponible, alors il est décidé (E304) de stocker le paquet 20 (E306), avant de le lire (E307) puis de le traiter (E308).
Cette mémoire fonctionne comme une mémoire de type FIFO, c'està-dire "premier entré, premier sorti" (connue en terminologie anglosaxonne sous le terme "First In First Out").
L'unité de traitement 22 de la machine client accède à cette mémoire 25 en mode lecture par la droite sur les figures en procédant par la lecture d'un nombre B d'octets.
Lorsqu'un nombre B d'octets ont été lus, l'indicateur ou pointeur d est incrémenté d'une valeur B (d = d + B), comme représenté sur la figure 3c.
On notera que lorsque l'unité de traitement qui veut procéder au 30 décodage et à la visualisation des données vidéo demande à lire B octets et que la mémoire ne contient pas un nombre suffisant d'octets non lus, alors cette unité de traitement attend jusqu'à ce qu'un nombre B d'octets non lus soit disponible en mémoire.
Il s'agit toutefois là d'un cas extrême qui ne doit pas être rencontré en pratique car il pénaliserait, en effet, la cadence à laquelle la séquence vidéo doit être visualisée.
Lorsqu'un message d'interruption a été précédemment émis par la machine client consécutivement à la constatation du taux d'occupation élevé de la mémoire représentée à la figure 3b, alors aucun paquet nouvellement reçu par la machine n'est écrit en mémoire.
Dans la mesure o l'unité de traitement 22 continue à lire des données dans celle-ci (E307), l'espace mémoire occupé 44 de la figure 3b se réduit à l'espace mémoire 48 de la figure 3c et l'espace mémoire disponible, au contraire, s'agrandit pour passer de l'espace mémoire 46 de la figure 3b à l'espace mémoire 50 de la figure 3c.
Comme représenté sur la figure 3d, un seuil TH est défini (étape E309) de la façon suivante: TH = min (RF x FR x N, K x BS), o RF désigne le rapport de la taille maximale de la mémoire sur le nombre total d'images constituées par l'ensemble des paquets de données vidéo constitutifs de 20 la séquence vidéo considérée, FR est le nombre d'images par seconde, N et K sont des constantes et BS désigne la taille maximale de la mémoire.
On notera par ailleurs que FR et le nombre total d'images de la séquence vidéo ont été préalablement envoyés à la machine client lors de l'envoi du premier paquet de données de la séquence vidéo.
Ainsi, lorsque le message d'interruption PAUSE a été précédemment émis, alors on compare la taille de l'espace mémoire occupé 48 dans la mémoire 23 par rapport à ce seuil et, plus particulièrement, on compare (étape E311) le nombre d'octets non lus dans l'espace mémoire 48 (E310) par rapport à ce seuil.
Lorsque le nombre d'octets non lus est inférieur au seuil TH, alors il est décidé (E312) de transmettre (E313) un message de reprise de la transmission de paquets de données RESTART au serveur 1 par l'intermédiaire de l'unité de transmission 21 de la machine client 2.
L'algorithme se met alors en attente de réception d'un nouveau paquet (E300).
On notera que la comparaison avec le seuil TH (étape E31 1) est effectuée par rapport au nombre de données non lues dans l'espace mémoire.
Les données qui, quant à elles, ont été lues peuvent être toujours stockées dans cet espace mémoire ou être supprimées.
Au contraire, lorsque le nombre d'octets non lus est supérieur au 10 seuil TH, alors il n'est pas nécessaire de transmettre au serveur un message de reprise de la transmission de paquets et l'algorithme se met en attente (E314) le temps que les données soient lues.
On peut également concevoir que le nombre d'octets non lus dans l'espace mémoire 48 devienne inférieur au seuil TH sans pour autant envoyer le 15 message de reprise de transmission.
Toutefois on peut, dans certaines circonstances, bloquer la visualisation de la séquence vidéo, faute de données pour alimenter le décodeur.
On notera par ailleurs que la mémoire tampon 23 représentée sur les 20 figures 3a à 3d constitue une mémoire de réseau qui sert à stocker les paquets de données reçus du réseau. Il existe une autre mémoire tampon propre au décodeur et qui est utilisée pour les données décodées en attente de leur visualisation.
La figure 4 illustre un algorithme comportant différentes instructions 25 ou portions de code logiciel correspondant à des étapes du procédé de traitement des requêtes provenant de machines client, telles que la machine 2 de la figure 1, et de génération de paquets de données à transmettre.
Cet algorithme illustre le comportement du serveur dès qu'une machine client se connecte et qu'une séquence vidéo est demandée.
Le programme informatique noté "Prog1" qui est basé sur cet algorithme est mémorisé dans l'unité de stockage temporaire de données 11 de la figure 1 et exécuté par l'unité 12 sous le contrôle de l'unité de commande 15, ce qui permet ainsi de mettre en oeuvre le procédé selon l'invention.
Ce programme est également stocké dans l'appareil de la figure 7.
L'algorithme de la figure 4 comporte une première étape notée E400 5 au cours de laquelle le serveur 1 de la figure 1 et, plus particulièrement, l'unité de réception 13 reçoit une requête émise par la machine client 2 à partir de son unité de transmission 21.
Par exemple, cette requête se présente sous la forme d'une chaîne de caractères permettant d'identifier de façon unique des données vidéo 10 mémorisées dans l'unité de stockage 11 du serveur 1 et qui sont nécessaires à la machine client 2.
La requête spécifie en outre la qualité de services demandée par la machine client 2 et qui doit accompagner les données requises.
On considère qu'un paquet de données constituant une partie de la 15 séquence vidéo demandée est présente dans l'unité de stockage 11 dès lors qu'il doit être transmis.
Au cours de l'étape suivante E401, on initialise plusieurs compteurs de données, dont un compteur de paquets de données Pa qui est initialisé à la valeur 1.
Sont également initialisés un compteur de valeurs de priorité Pr qui seront ultérieurement affectées aux différentes machines client (Pr = PRIOMAX o PRIOMAX est la valeur maximale de priorité), un indicateur de PAUSE (PAUSE = faux) et une variable OFFSET (OFFSET = 0).
On notera que la priorité affectée aux différentes machines client 25 varie entre une priorité basse PRIOMIN et une priorité haute PRIOMAX qui sont, par exemple, respectivement égales à 1 et 30.
La valeur de la priorité qui est affectée à chaque machine client traduit, pour cette dernière, la nécessité de recevoir de la part du dispositif 1 (serveur) des paquets de données.
Comme on le verra ultérieurement, la décision d'affecter une valeur de priorité à une machine client dépend d'une analyse dynamique de la qualité de services proposée pour chaque paquet de données à transmettre à cette machine.
L'indicateur de PAUSE est une valeur binaire qui peut prendre les valeurs "vrai" ou "faux" et qui évolue selon les messages reçus par l'unité de réception 13 du serveur.
A l'initialisation, la variable PAUSE prend la valeur "faux" et prend la valeur "vrai" dès qu'un message PAUSE est reçu par le serveur 1.
Il convient de noter que chaque message d'interruption PAUSE inclut des informations indiquant au serveur le prochain paquet de données qu'il 10 devra transmettre à la machine client à l'origine du message.
Par exemple, le message PAUSE contient le numéro du dernier paquet de données écrit dans l'unité de stockage 23 de la machine client 2.
Ainsi, dès la réception d'un message PAUSE, l'indicateur Pa est repositionné à la valeur du dernier paquet de données écrit dans l'unité 23.
De cette façon, le serveur sait que le prochain paquet à transmettre à la machine client sera le paquet dont l'indicateur est Pa + 1, et le pointeur sera ainsi repositionné lors de la réception d'un message de reprise des transmissions.
Par ailleurs, dès la réception d'un message PAUSE, un compteur de 20 temps est initialisé et la valeur de temps d'horloge du serveur Ts est mémorisée.
Lorsqu'un message RESTART de reprise des transmissions de paquets de données du serveur à la machine client est reçu par le serveur, l'instant correspondant Te de réception de ce message est mémorisé et le délai 25 OFFSET est alors calculé.
Cette variable, qui sera utilisée à la figure 6, comptabilise le délai cumulé pendant lequel la machine client est en mode PAUSE et donc ne reçoit pas de paquets.
Le délai OFFSET s'écrit: OFFSET = OFFSET + Te-Ts. 30 A l'étape E401, OFFSET = 0.
En outre, dès que le message RESTART est reçu, la variable PAUSE prend la valeur "faux" et la conserve jusqu'à la prochaine réception d'un message PAUSE.
L'étape E401 est ensuite suivie d'une étape E402 au cours de 5 laquelle on met à jour la liste L des machines clients connectées au serveur 1 de la figure 1 en ajoutant le nouveau client dont on vient de recevoir la requête (étape E400) et pour lequel un premier paquet de données a été mémorisé dans l'unité de stockage 11 de la figure 1.
La liste L précitée contient l'énumération de toutes les machines 10 (clients) qui sont connectées au serveur 1 ainsi que la priorité affectée à chacune d'entre elles.
Dès qu'une machine client o, en d'autres termes, un client est ajouté à cette liste, on lui affecte la priorité la plus élevée qui soit (PRIOMAX).
Il convient de noter qu'à chaque machine client de la liste L sont 15 associées les quatre variables précitées: Pa, Pr, OFFSET et PAUSE.
L'utilisation de cette liste sera également détaillée ultérieurement lors de la description faite en référence aux figures 5 et 6.
L'étape suivante E403 indique la réception par le serveur d'un message PAUSE ou RESTART transmis par une ou plusieurs machines clients 20 connectées.
Au cours de l'étape suivante E404, la variable PAUSE change de valeur selon le message reçu, la valeur Ts ou Te est mémorisée, l'indicateur Pa change ou le délai OFFSET est calculé selon le cas.
On notera que les étapes E403 et E404 peuvent intervenir à tout 25 moment lors de la connexion du serveur aux machines client.
Au cours d'une étape suivante E405, le serveur transmet le ou les paquets mémorisés dans l'unité de stockage 11 suivant l'algorithme d'ordonnancement représenté à la figure 5.
Lorsque le ou tous les paquets ont été transmis à la machine client 2, 30 il est mis fin à la transmission et la machine client 2 est déconnectée du serveur 1 (étape E406).
L'étape suivante E407 prévoit une mise à jour de la liste des machines clients ou clients au cours de laquelle on supprime la machine client qui vient d'être déconnectée à l'étape E406, ce qui met fin à l'algorithme de la figure 4.
On notera que l'algorithme de la figure 4 est exécuté pour chaque nouvelle machine client connectée au serveur 1.
Dans la mesure o plusieurs machines clients peuvent être connectées en même temps, l'algorithme de la figure 4 est exécuté de façon parallèle pour générer des paquets de données destinés à une machine client 10 donnée.
Il convient également de noter que lorsqu'une machine client est connectée au serveur 1, il est nécessaire de toujours disposer d'au moins un paquet de données à transmettre, lorsqu'une telle transmission est décidée par l'algorithme de la figure 5 comme on le verra ultérieurement.
La figure 5 illustre un algorithme comportant différentes instructions ou portions de code logiciel correspondant à des étapes du procédé selon l'invention.
Le programme informatique noté "Prog2" qui est basé sur cet algorithme est mémorisé dans l'unité de stockage temporaire de données 11 de 20 la figure 1 et exécuté par l'unité d'ordonnancement 12 de cette figure, sous le contrôle de l'unité de commande 15, ce qui permet ainsi de mettre en oeuvre le procédé selon l'invention.
Ce programme est également stocké dans l'appareil de la figure 7.
Lors de l'exécution de l'algorithme de la figure 5, le serveur 1 de la 25 figure 1 gère les transmissions de données entre ce dispositif et les différentes machines clients qui lui sont connectées, en fonction des priorités qui sont affectées à ces machines.
On notera que le processus d'ordonnancement des paquets de données dont l'algorithme est représenté à la figure 5 est mis en oeuvre dès que 30 le serveur 1 de la figure 1 fonctionne.
Le processus dont l'algorithme est représenté à la figure 4, quant à lui, est mis en oeuvre à la réception d'une requête provenant d'une machine client.
Ainsi, ces deux processus sont exécutés parallèlement et le 5 processus dont l'algorithme est représenté à la figure 5 fait appel à celui de la figure 4 pour récupérer un paquet de données généré par ce dernier et destiné à une machine client, lorsqu'il est décidé d'effectuer une telle transmission à ladite machine client.
L'algorithme de la figure 5 débute par une étape E500 d'initialisation 10 au cours de laquelle on affecte la valeur de priorité maximale PRIOMAX à un indice de boucle noté p. Au cours de l'étape suivante notée E501 on initialise une variable c de la liste L des machines clients ou clients précitée à la valeur 1, ce qui correspond au premier élément de la liste L. L'étape suivante E502 prévoit d'effectuer un test afin de tester la valeur de l'indicateur de PAUSE de la machine client courante c et de vérifier si elle est égale à la valeur "vrai".
Dans l'affirmative, cela signifie qu'un message d'interruption PAUSE a été reçu de cette machine et l'étape E502 est suivie de l'étape E507. 20 Aucun paquet ne sera plus transmis à la machine considérée.
Dans la négative, l'algorithme se poursuit par une étape E503 au cours de laquelle on met à jour la priorité Pc associée à la machine client courante.
On reviendra plus en détail ultérieurement, lors de la description faite25 en référence à la figure 6, sur le contenu de cette étape E503.
Selon cette étape, on affecte de manière dynamique à la machine client courante une priorité adaptée aux résultats de l'analyse effectuée par le dispositif de gestion selon l'invention.
L'étape suivante E504 consiste en un test au cours duquel on 30 détermine si la priorité affectée à la machine client courante, Pc, est supérieure ou égale à la valeur de l'indice de boucle p précité.
Dans l'affirmative, l'étape E504 est suivie d'une étape E505 au cours de laquelle l'unité 12 de la figure 1 récupère dans l'espace mémoire réservé de l'unité de stockage 11 de la figure 1 le paquet de données Pa qui a été généré lors de l'exécution de l'algorithme de la figure 4 en vue d'être transmis à la machine client courante, par exemple la machine 2 de la figure 1.
Ce paquet est alors transféré à l'unité de transmission 14 de la figure 1 et est ensuite transmis par l'intermédiaire du réseau de communication 3 à la machine client considérée.
L'indicateur Pa de la mémoire 11 est alors incrémenté d'une unité 10 (figures 2b et 2c).
L'étape E505 est alors suivie de l'étape E506.
Ainsi, une priorité haute a été affectée à la machine client courante afin qu'aucun paquet de données ne soit transmis à cette dernière, consécutivement à l'analyse de la connexion entre le dispositif 1 et la machine 15 client courante considérée et l'étape E504 est alors suivie de l'étape E506.
Lors de l'analyse suivante de cette même connexion, le résultat de cette analyse peut changer et la machine client courante peut alors se voir affecter une priorité telle qu'un paquet de données lui sera transmis.
Au cours de l'étape E506, un test est pratiqué sur la valeur de la 20 variable c par rapport à la liste L (c = Cmax ?, o Cmax représente le dernier élément de la liste L) afin de déterminer si toutes les machines client connectées au serveur 1 ont été traitées lors de l'exécution de la boucle de l'algorithme de la figure 5.
Dans la négative, l'étape E506 est suivie d'une étape E507 au cours 25 de laquelle la variable c est incrémentée d'une unité afin que la boucle de l'algorithme de la figure 5 constituée des étapes E503, E504, E505, E506 soit de nouveau exécutée pour la machine client suivante de la liste L. Au contraire, lorsque le résultat du test pratiqué à l'étape E506 est positif, alors cette dernière est suivie de l'étape E508.
Au cours de cette étape, un autre test est pratiqué afin de déterminer si l'indice de boucle p a atteint la valeur basse minimale PRIOMIN.
Dans la négative, l'étape E508 est suivie d'une étape E509 au cours de laquelle l'indice de boucle p est décrémenté d'une unité et l'on traite alors une nouvelle fois toutes les machines client connectées au serveur en partant de la première (c = 1) et en exécutant la boucle.constituée des étapes E502 à E506.
Si le test pratiqué au cours de l'étape E508 conduit à un résultat positif, cette dernière est alors suivie de l'étape E509 précédemment décrite au cours de laquelle l'indice de boucle est réinitialisé à la valeur de priorité haute maximale PRIOMAX et l'algorithme de la figure 5 est de nouveau exécuté.
Il convient de noter que l'exécution du processus dont l'algorithme est représenté à la figure 5 dépend du contenu de la liste L de machines client (ou clients) connectées au dispositif 1 de la figure 1: dès qu'une machine client est connectée le processus est exécuté et il s'arrête lorsque aucune machine clients n'est connectée.
On va maintenant décrire le processus d'affectation dynamique de priorité à une machine client courante repérée par la variable c dans la liste L définie ci-dessus, la connexion de cette machine client avec le dispositif 1 de la figure 1 étant analysée lors de l'exécution de l'algorithme de la figure 5.
L'algorithme de la figure 6 fait partie de l'algorithme de la figure 5 et 20 comporte à cet effet différentes instructions ou portions de code logiciel correspondant à des étapes du procédé de gestion des transmissions selon l'invention.
L'algorithme de la figure 6 débute par une étape E600 qui prévoit d'estimer la qualité de services proposée à la machine client courante c pour un 25 paquet de données que le dispositif 1 de la figure 1 se propose de lui transmettre.
On notera que pour les besoins de la mise à jour de la priorité Pc affectée à l'étape E502 de la figure 5, il est nécessaire de connaître le contenu du paquet à transmettre.
On notera également que cette étape d'estimation tient compte du temps tp au bout duquel le paquet doit parvenir à la machine client courante.
Cette information est connue du dispositif 1 selon l'invention (serveur) à travers la qualité de services exprimée dans la requête provenant de cette machine client.
On notera également que le temps tp est en quelque sorte 5 représentatif du taux de remplissage de l'unité de stockage de la machine client considérée.
Ce temps dépend de la qualité de services exprimée dans la requête provenant de la machine client considérée, ainsi que du contenu du paquet de données à transmettre à cette machine.
En effet, lorsque, par exemple, la qualité de services demandée est exprimée en nombre d'images par seconde, selon que les images sont codées en mode Intra ou Inter, pour une même taille de paquets, le nombre d'images contenues dans un paquet est supérieur dans le cas d'une image codée en mode Inter.
Ainsi, connaissant la qualité de services exprimée par la machine client (ex: nombre d'images par seconde) et tenant compte du contenu du paquet (nombre d'images par paquet) le dispositif 1 selon l'invention est capable de déterminer le temps tp précité.
Plus particulièrement, au cours de l'étape E600, on détermine à un 20 instant ta, appelé instant courant, un paramètre appelé marge (ta) qui est représentatif de la qualité de services proposée à la machine client courante considérée pour le paquet de données concerné qui sera éventuellement transmis.
Ce paramètre s'exprime sous la forme suivante: 25 marge (ta) = to + OFFSET + tp - ta, o to correspond à l'instant o la machine client courante s'est connectée au dispositif 1.
Une fois cette étape d'estimation effectuée, l'étape suivante E601 prévoit la détermination de l'évolution, au cours du temps, de l'estimation de la 30 qualité de services proposée à la machine client courante.
* Cette détermination est effectuée pour les paquets de données à transmettre à des instants différents.
Par exemple, on peut s'intéresser à la transmission de deux paquets de données successifs au cours du temps, ou bien même déterminer cette évolution pour des paquets de données à transmettre espacés de plusieurs paquets dans le temps.
Plus particulièrement, au cours de l'étape E601, on détermine un paramètre appelé "variation" qui s'écrit de la façon suivante: variation = marge (ta) - marge (tb), o les paramètres marge (ta) et marge (tb) sont représentatifs de la qualité de services estimée à deux instants différents ta et tb avec ta > tb et pour deux 10 paquets de données différents.
La variation permet ainsi d'estimer l'évolution entre l'estimation de la qualité de services actuelle et l'estimation d'une qualité de services précédente.
L'étape E601 est ensuite suivie d'une étape E602 au cours de laquelle un test est effectué afin de déterminer si la variation précédemment 15 déterminée est nulle.
Dans l'affirmative, la qualité de services proposée n'ayant donc pas évolué depuis la dernière estimation, on choisit de ne pas modifier la priorité affectée à la machine client courante c dont la connexion avec le dispositif 1 est en cours d'analyse, ce qui met fin à l'algorithme de la figure 6.
Au contraire, lorsque le résultat du test pratiqué à l'étape E602 est négatif, alors l'étape suivante E603 prévoit d'effectuer un autre test afin de déterminer si la variation précédemment déterminée est supérieure ou égale à la marge déterminée à l'étape E600.
Ce test permet en effet de détecter une forte variation dans 25 l'estimation de la qualité de services proposée pour un paquet de données à transmettre à la machine client courante.
Ainsi, lorsque le résultat de ce test est positif, le dispositif de gestion selon l'invention est informé que la marge déterminée à l'instant courant ta est en train de diminuer et qu'il convient donc d'anticiper afin de ne pas dégrader la 30 qualité de services proposée à la machine client considérée.
L'étape E603 est alors suivie d'une étape E607 au cours de laquelle une priorité haute et d'ailleurs maximale, PRIOMAX, est affectée à la machine client courante dont la connexion avec le dispositif 1 de la figure 1 est en cours d'analyse.
Ceci signifie qu'il est urgent de prévoir une transmission d'un paquet de données à destination de cette machine client.
Ceci met alors fin à l'exécution de l'algorithme de la figure 6.
Au contraire, lorsque le résultat du test pratiqué à l'étape E603 est négatif, l'étape suivante E604 prévoit d'effectuer un test supplémentaire.
Au cours de ce test, on détermine, d'une part, si la marge précédemment déterminée à l'étape E600 est supérieure ou égale à un seuil 10 prédéterminé et, d'autre part, s'il existe au moins une machine client pour laquelle une marge négative a été détectée (Nb > 0).
Le seuil prédéterminé correspond, par exemple, à une seconde et permet de détecter si la machine client courante sera considérée comme étant suffisamment en avance, c'est-à-dire que le taux de remplissage de son unité 15 de stockage est suffisant pour ne pas interrompre le processus de décodage et de visualisation des données vidéo demandées par cette machine.
Il convient de noter que l'on aurait pu se contenter de détecter si la marge déterminée à l'étape E600 était positive pour s'assurer que la qualité de services estimée par le dispositif 1, pour un paquet de données à transmettre à 20 cette machine client, était conforme à la qualité de services demandée par cette dernière.
Toutefois, cette seule vérification ne suffit pas en soi pour déterminer si une machine client a besoin d'un paquet de données, dans la mesure o une marge positive à un instant donné peut devenir négative à l'instant suivant et 25 donc traduire une dégradation de la qualité de services proposée à cette machine.
Lorsque le résultat du test pratiqué à l'étape E604 est positif, c'estàdire lorsque l'estimation de la qualité de services proposée à une machine client courante pour un paquet de données est conforme à la qualité de services 30 demandée par cette dernière et lorsque, pour au moins une autre machine client, l'estimation de la qualité de services proposée pour un paquet de données à transmettre à cette dernière n'est pas conforme avec la qualité de services demandée, alors cette étape est suivie d'une étape E605.
Au cours de cette dernière étape, il est prévu d'affecter à la machine client courante une priorité Pc minimale qui est égale à PRIOMIN -1.
L'affectation de cette priorité minimale indique au dispositif 1 selon l'invention qu'il n'est pas nécessaire de transmettre un paquet de données à la machine client courante c.
Cette information est utilisée dans l'algorithme de la figure 5 lors du test pratiqué à l'étape E504 qui conduit, dans ce cas précis, directement à 10 l'exécution de l'étape E506, sans transmettre un paquet de données comme prévu par l'étape E505.
La priorité ainsi affectée à la machine client courante exclut toute transmission de paquet de données à cette machine. Ceci n'est bien entendu valable que pour l'estimation qui vient d'être effectuée de la connexion établie 15 entre le dispositif 1 et la machine client courante considérée et est susceptible d'être remis en question lors de la nouvelle estimation, pour un nouveau paquet de données à transmettre.
Au contraire, lorsque le résultat du test pratiqué à l'étape E604 est négatif, alors cette étape est suivie d'une étape E606.
Ce cas de figure apparaît, soit lorsque la marge déterminée à l'étape E600 n'est pas supérieure au seuil fixé soit lorsqu'aucune marge négative n'a été détectée pour d'autres machines client.
Au cours de l'étape E606 on effectue un test afin de déterminer si la marge de la machine client courante dont la connexion avec le dispositif 1 selon 25 l'invention est en cours d'analyse est positive.
Ceci revient, en d'autres termes, à déterminer si la qualité de service proposée à cette machine client en relation avec un paquet de données à transmettre est conforme avec la qualité de services demandée par cette machine.
Lorsque le résultat du test pratiqué à l'étape E606 est négatif, ce qui correspond à une non conformité de la qualité de services proposée, telle qu'elle a été estimée, avec la qualité de services demandée par la machine client courante, alors cette étape est suivie d'une étape E607.
Au cours de cette dernière étape, il est prévu d'affecter à la machine client courante la valeur de priorité Pc maximale (PRIOMAX).
Ceci informe le dispositif de gestion selon l'invention qu'il est nécessaire d'effectuer une transmission d'un paquet pour cette machine client lors de l'exécution de l'algorithme de la figure 5.
On notera que les étapes E602, E603, E604 et E606 sont des étapes au cours desquelles la qualité de services estimée à l'étape E600 ou sa 10 variation déterminée à l'étape E601 sont comparées avec la qualité de services demandée par la machine client courante.
Lorsque le résultat du test pratiqué à l'étape E606 est positif, ce qui signifie que l'estimation de la qualité de services proposée à la machine client courante est conforme à la qualité de services demandée par cette dernière, 15 alors cette étape est suivie d'une étape E608.
Au cours de cette dernière étape on détermine une valeur appelée "pas" qui correspond au pas, également appelé saut de priorité, dont il convient de faire varier la priorité courante affectée à la machine client courante pour tenir compte de l'estimation de la qualité de services effectuée précédemment. 20 Au cours de cette étape E608 on détermine ainsi l'incrément de la priorité qu'il convient d'appliquer à la priorité courante de la façon suivante: pas = | E (PRIOMAX (variation/marge)) l, o | x | désigne la fonction mathématique "valeur absolue de x" et E (x) désigne la fonction mathématique "partie entière de x".
Au cours de l'étape suivante E609 on détermine la valeur de la priorité qu'il convient d'affecter à la machine client courante de la façon suivante: Pc = Pc - sign (pas), o sign (x) désigne la fonction mathématique "signe" de x.
L'exécution des étapes E608 et 609 permet ainsi d'ajuster la valeur de la priorité affectée à la machine client courante en fonction de l'estimation de la qualité de services effectuée précédemment à l'étape E600.
Ceci permet en effet d'affiner la valeur de la priorité affectée à la machine client courante plutôt que d'affecter systématiquement une valeur extrême du type PRIOMAX ou PRIOMIN.
Il est mis fin à l'algorithme de la figure 6 après l'exécution de l'étape E609.
On notera que la transmission des données vidéo codées se fait "à la volée" (connu en terminologie anglo-saxonne sous le terme "streaming"), c'est-à-dire que les informations nécessaires à l'utilisateur pour reconstruire une image sont mémorisées dans l'unité de stockage 11, puis sont transmises à la 10 machine client 2 avant que toutes les données vidéo ne soient codées.
Ainsi, l'utilisateur reçoit au niveau de la machine client 2 les informations par paquets, dans chacun desquels se trouvent des informations permettant à cet utilisateur de décoder une image courante.
Il convient de noter que l'invention s'applique également lorsque la 15 source de données (serveur) qui est connectée aux appareils de communication ne reçoit pas de requêtes provenant de ces derniers et spécifiant une qualité de services demandée.
En effet, le serveur estime, à partir des seules informations dont il dispose, la qualité de services qu'il est susceptible d'offrir à un appareil en lui 20 transmettant un ou plusieurs paquets de données.
En fonction de cette estimation, le serveur est alors en mesure d'évaluer la charge de travail future de l'appareil, de faire de même avec d'autres appareils et d'affecter en conséquence des priorités aux appareils concernés.
Ceci peut être fait sans que le serveur ne connaisse la qualité de services demandée par chaque appareil.
Dans ce cas de figure, les algorithmes des figures 4 à 6 doivent être modifiés en conséquence.
En référence à la figure 7, est décrit un exemple d'appareil de 30 communication programmable mettant en oeuvre l'invention.
Cet appareil comprend le dispositif de gestion des transmissions selon l'invention représenté à la figure 1 et dont le fonctionnement est décrit en référence aux figures 2 à 6. Selon un aspect de l'invention, l'appareil programmable est connecté à plusieurs appareils de communication jouant le rôle de machines client, de façon identique au dispositif 1 de la figure 1.
Selon un autre aspect, l'appareil programmable est une machine client connectée au dispositif 1 de la figurel.
Selon le mode de réalisation choisi et représenté à la figure 7, un appareil mettant en oeuvre l'invention est par exemple un microordinateur 700 ou une station de travail connecté à différents périphériques, par exemple une caméra numérique 701 (ou un scanner, ou tout moyen d'acquisition ou de 10 stockage d'image) reliée à une carte graphique et fournissant à l'appareil des données multimédia à traiter et à transmettre à un ou plusieurs autres appareils selon l'aspect de l'invention considéré.
L'appareil 700 comporte un bus de communication 702 auquel sont reliés: une unité centrale de traitement 703 (microprocesseur), qui exerce la fonction de l'unité de commande 15 de la figure 1, - une mémoire morte 704, pouvant comporter les programmes "ProgO", "Prog 1" et "Prog2", - une mémoire vive 706, comportant des registres 707 adaptés à 20 enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités, notamment, p, c, Pr, Pa, Cmax, PAUSE, PRIOMAX, PRIOMIN, marge, variation, seuil, Nb, pas, TH mentionnés en référence aux figures précédentes, ainsi que les paquets de données générés au cours de l'exécution de l'algorithme des figures 4 et 5.
- un écran 708 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 710 ou de tout autre moyen tel qu'un dispositif de pointage non représenté, comme par exemple une souris ou un crayon optique, - un disque dur 712 pouvant comporter les programmes "ProgO", "ProgI" et "Prog2" précités, - un lecteur de disquette 714 adapté à recevoir une disquette 716 et à y lire ou à y écrire des données traitées ou à traiter selon l'invention, - une interface de communication 718 reliée à un réseau de communication 720, par exemple le réseau Internet, l'interface étant apte à transmettre et à recevoir des données.
Dans le cas de données audio, l'appareil comprend en outre une carte d'entrée/sortie reliée à un microphone qui sont tous deux non représentés.
Le bus de communication permet la communication et 10 l'interopérabilité entre les différents éléments inclus dans le micro-ordinateur 700 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 du micro-ordinateur 700 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 700.
Le code exécutable de chaque programme permettant à l'appareil programmable de mettre en oeuvre le processus de gestion des transmissions de la figure 3e, les processus de traitement des requêtes et de génération de paquets (figure 4), d'affectation dynamique des priorités aux machines client connectées (figures 5 et 6) selon l'invention, peut être stocké par exemple dans 20 le disque dur 712 ou en mémoire morte 704 comme représenté sur la figure 7.
Selon une variante, la disquette 716, peut contenir des données ainsi que le code exécutable des programmes précités qui, une fois lu par l'appareil 700, sera stocké dans le disque dur 712.
En seconde variante, le code exécutable des programmes pourra 25 être reçu par l'intermédiaire du réseau de communication 720, via l'interface 718, pour être stocké de façon identique à celle décrite précédemment.
Les disquettes peuvent être remplacées par tout support d'information tel que, par exemple, un disque compact (CD-ROM) ou une carte mémoire. De manière générale, un moyen de stockage d'information, lisible par 30 un ordinateur ou par un microprocesseur, intégré ou non à l'appareil, éventuellement amovible, est adapté à mémoriser un ou plusieurs programmes dont l'exécution permet la mise en oeuvre du procédé selon l'invention.
De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage de l'appareil 700 avant d'être exécutés.
L'unité centrale 703 va commander et diriger l'exécution des 5 instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 712 ou la mémoire morte 704 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 712 ou la mémoire ROM 704, sont 10 transférés dans la mémoire vive RAM 706 qui contiendra 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 oeuvre de l'invention.
Il convient de noter que l'appareil de communication comportant le 15 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 (ASIC).

Claims (38)

REVENDICATIONS
1. Procédé de gestion des transmissions de paquets de données multimédia entre au moins deux appareils de communication connectés entre eux, 5 l'un, dit premier appareil, recevant des paquets de données d'au moins un autre appareil, dit deuxième appareil, caractérisé en ce que le procédé comporte les étapes suivantes effectuées par le premier appareil: comparaison de la taille du dernier paquet de données reçu du deuxième appareil avec la taille de l'espace mémoire disponible dans le premier 10 appareil pour son stockage, - en fonction du résultat de la comparaison, décision quant à la transmission, en direction du deuxième appareil, d'un message dit d'interruption (PAUSE) visant à interrompre de façon temporaire la transmission de paquets de données vers le premier appareil.
2. Procédé selon la revendication 1, caractérisé en ce que, lorsque la taille du dernier paquet de données reçu est supérieure à la taille de l'espace mémoire disponible dans le premier appareil, alors le procédé comporte une étape de transmission, en direction du deuxième appareil, d'un message d'interruption temporaire de la transmission de paquets de données vers le premier appareil.
3. Procédé selon la revendication 2, caractérisé en ce que le message d'interruption inclut des informations indiquant au deuxième appareil le prochain paquet de données à transmettre au premier appareil.
4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce qu'il comporte les étapes suivantes: - comparaison de la taille de l'espace mémoire non lu par le premier appareil pour le stockage de paquets de données vidéo avec un seuil TH défini de la façon suivante: TH = min (RFx FRxN, KxBS), o RF désigne le rapport de la taille maximale de l'espace mémoire sur le nombre 30 total d'images constituées par l'ensemble des paquets de données vidéo à transmettre du deuxième appareil au premier appareil, FR est le nombre d'images par seconde, N et K sont des constantes et BS désigne la taille maximale de l'espace mémoire, - en fonction du résultat de la comparaison, décision quant à la transmission, en direction du deuxième appareil, d'un message de reprise de la transmission de paquets de données vers le premier appareil.
5. Procédé selon la revendication 4, caractérisé en ce que, lorsque la taille de l'espace mémoire non lu dans le premier appareil est inférieure au seuil TH, alors le procédé comporte une étape de transmission, en direction du deuxième appareil, d'un message de reprise de la transmission de paquets de données 10 (RESTART) vers le premier appareil.
6. Procédé de gestion des transmissions de paquets de données multimédia entre une source de données et plusieurs appareils de communication connectés à cette source par l'intermédiaire d'un réseau de communication, caractérisé en ce que la source comporte des moyens de réception en provenance 15 d'un appareil d'un message dit d'interruption (PAUSE) visant à interrompre de façon temporaire la transmission de paquets de données de la source vers cet appareil, ce message signifiant que la taille du dernier paquet de données reçu par cet appareil était supérieure à la taille de l'espace mémoire disponible dans cet appareil pour le stockage de paquets.
7. Procédé selon la revendication 6, caractérisé en ce qu'il comporte une étape de décision de la transmission d'un paquet de données à l'appareil dont provient le message d'interruption et qui tient notamment compte du délai cumulé (OFFSET) pendant lequel l'appareil n'a pas reçu de paquets de données de la source suite à la transmission par cet appareil d'un ou de plusieurs messages 25 d'interruption.
8. Procédé selon la revendication 7, caractérisé en ce qu'il comporte une étape préalable d'affectation à l'appareil concerné d'une priorité (Pc) en fonction notamment du délai cumulé (OFFSET) de cet appareil, l'étape de décision tenant compte de cette priorité.
9. Procédé selon la revendication 7 ou 8, caractérisé en ce qu'il comporte une étape de détermination à l'instant courant (ta) d'un paramètre appelé marge (ta), représentatif d'une qualité de services proposée à l'appareil, et qui s'écrit: marge (ta) = to + OFFSET + tp - ta, o to correspond à l'instant o l'appareil s'est connecté à la source de données et tp correspond à l'instant auquel au moins un paquet de données doit être visualisé par l'appareil.
10. Procédé selon la revendication 9, caractérisé en ce qu'il comporte les étapes suivantes: - détermination d'un paramètre appelé variation qui s'écrit: variation = marge (ta) - marge (tb), o marge (ta) et marge (tb) sont les paramètres représentatifs de la qualité de services proposée à l'appareil à deux instants différents ta et tb, avec ta > tb, affectation à l'appareil d'une priorité en fonction du paramètre variation précédemment déterminé.
11. Procédé selon l'une des revendications 6 à 10, caractérisé en ce qu'un message d'interruption inclut des informations indiquant à la source le prochain paquet de données à transmettre à l'appareil qui a transmis ce message. 15
12. Procédé selon l'une des revendications 6 à 11, caractérisé en ce que la source comportant une mémoire pour le stockage des paquets à transmettre et un pointeur visant le dernier paquet transmis, lorsque la source reçoit d'un appareil un message (RESTART) de reprise de la transmission de paquets de données de la source vers cet appareil, le pointeur est repositionné sur le paquet de 20 données qui est à transmettre à l'appareil.
13. Procédé de gestion des transmissions de paquets de données multimédia entre une source de données et plusieurs appareils de communication connectés à cette source par l'intermédiaire d'un réseau de communication, caractérisé en ce que le procédé comporte une étape, effectuée par la source, de 25 transmission de paquets de données à un ou plusieurs appareils en tenant compte notamment, pour chaque appareil, du délai cumulé (OFFSET) pendant lequel l'appareil n'a pas reçu de paquets de données de la source suite à la transmission par cet appareil d'un ou de plusieurs messages d'interruption, de tels messages visant à interrompre de façon temporaire la transmission de paquets de données 30 par la source.
14. Dispositif de gestion des transmissions de paquets de données multimédia entre au moins deux appareils de communication connectés entre eux, l'un, dit premier appareil, recevant des paquets de données d'au moins un autre appareil, dit deuxième appareil, caractérisé en ce que le premier appareil comporte - des moyens de comparaison de la taille du dernier paquet de 5 données reçu du deuxième appareil avec la taille de l'espace mémoire disponible dans le premier appareil pour son stockage, des moyens de décision quant à la transmission, en direction du deuxième appareil, d'un message dit d'interruption (PAUSE) visant à interrompre de façon temporaire la transmission de paquets de données vers le premier appareil, 10 en fonction du résultat de la comparaison.
15. Dispositif selon la revendication 14, caractérisé en ce que le premier appareil comporte des moyens de transmission, en direction du deuxième appareil, d'un message d'interruption temporaire de la transmission de paquets de données vers le premier appareil, lorsque la taille du dernier paquet de données reçu est 15 supérieure à la taille de l'espace mémoire disponible dans le premier appareil
16. Dispositif selon la revendication 15, caractérisé en ce que le message d'interruption inclut des informations indiquant au deuxième appareil le prochain paquet de données à transmettre au premier appareil.
17. Dispositif selon l'une des revendications 14 à 16, caractérisé en ce 20 que le premier appareil comporte: - des moyens de comparaison de la taille de l'espace mémoire non lu par le premier appareil pour le stockage de paquets de données vidéo avec un seuil TH défini de la façon suivante: TH=min(RFxFRxN,KxBS), o RF désigne le rapport de la taille maximale de l'espace mémoire sur le nombre total d'images constituées par l'ensemble des paquets de données vidéo à transmettre du deuxième appareil au premier appareil, FR est le nombre d'images par seconde, N et K sont des constantes et BS désigne la taille maximale de l'espace mémoire, - des moyens de décision quant à la transmission, en direction du deuxième appareil, d'un message de reprise de la transmission de paquets de données vers le premier appareil, en fonction du résultat de la comparaison.
18. Dispositif selon la revendication 17, caractérisé en ce que le premier appareil comporte des moyens de transmission, en direction du deuxième appareil, d'un message de reprise de la transmission de paquets de données (RESTART) vers le premier appareil, lorsque la taille de l'espace mémoire non lu dans le premier appareil est inférieure au seuil TH.
19. Dispositif de gestion des transmissions de paquets de données multimédia entre une source de données et plusieurs appareils de communication connectés à cette source par l'intermédiaire d'un réseau de communication, caractérisé en ce que la source comporte des moyens de réception en provenance 10 d'un appareil d'un message dit d'interruption (PAUSE) visant à interrompre de façon temporaire la transmission de paquets de données de la source vers cet appareil, ce message signifiant que la taille du dernier paquet de données reçu par cet appareil était supérieure à la taille de l'espace mémoire disponible dans cet appareil pour le stockage de paquets.
20. Dispositif selon la revendication 19, caractérisé en ce que la source comporte des moyens de décision de la transmission d'un paquet de données à l'appareil dont provient le message d'interruption et qui tiennent notamment compte du délai cumulé (OFFSET) pendant lequel l'appareil n'a pas reçu de paquets de données de la source suite à la transmission par cet appareil d'un ou de plusieurs 20 messages d'interruption.
21. Dispositif selon la revendication 20, caractérisé en ce que la source comporte des moyens d'affectation préalable à l'appareil concerné d'une priorité (Pc) en fonction notamment du délai cumulé (OFFSET) de cet appareil, les moyens de décision tenant compte de cette priorité.
22. Dispositif selon la revendication 20 ou 21, caractérisé en ce que la source comporte des moyens de détermination à l'instant courant (ta) d'un paramètre appelé marge (ta), représentatif d'une qualité de services proposée à l'appareil, et qui s'écrit: marge (ta) = to + OFFSET + tp - ta, o to correspond à l'instant o l'appareil s'est connecté à la source de données et tp correspond à 30 l'instant auquel au moins un paquet de données doit être visualisé par l'appareil.
23. Dispositif selon la revendication 22, caractérisé en ce que la source comporte: - des moyens de détermination d'un paramètre appelé variation qui s'écrit: variation = marge (ta) - marge (tb), o marge (ta) et marge (tb) sont les paramètres représentatifs de la qualité de services proposée à l'appareil à deux instants différents ta et tb, avec ta > tb, - des moyens d'affectation à l'appareil d'une priorité en fonction du paramètre variation précédemment déterminé.
24. Dispositif selon l'une des revendications 19 à 23, caractérisé en ce qu'un message d'interruption inclut des informations indiquant à la source le 10 prochain paquet de données à transmettre à l'appareil qui a transmis ce message.
25. Dispositif selon l'une des revendications 19 à 24, caractérisé en ce que la source comporte: - des moyens de stockage des paquets de données à transmettre, un pointeur visant le dernier paquet transmis, - des moyens de réception, en provenance d'un appareil, d'un message (RESTART) de reprise de la transmission de paquets de données de la source vers cet appareil, - des moyens de repositionnement du pointeur sur le paquet de données qui est à transmettre à l'appareil.
26. Dispositif de gestion des transmissions de paquets de données multimédia entre une source de données et plusieurs appareils de communication connectés à cette source par l'intermédiaire d'un réseau de communication, caractérisé en ce que la source comporte des moyens de transmission de paquets de données à un ou plusieurs appareils en tenant compte notamment, pour chaque 25 appareil, du délai cumulé (OFFSET) pendant lequel l'appareil n'a pas reçu de paquets de données de la source suite à la transmission par cet appareil d'un ou de plusieurs messages d'interruption, de tels messages visant à interrompre de façon temporaire la transmission de paquets de données par la source.
27. Appareil de communication, caractérisé en ce qu'il comporte un 30 dispositif de gestion des transmissions selon l'une des revendications 14 à 18.
28. Appareil de communication, caractérisé en ce qu'il comporte un dispositif de gestion des transmissions selon l'une des revendications 19 à 25.
29. Appareil de communication, caractérisé en ce qu'il comporte un dispositif de gestion des transmissions selon la revendication 26.
30. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur 5 pour l'exécution des étapes du procédé de gestion des transmissions selon l'une des revendications 1 à 5.
31. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de gestion des transmissions selon l'une 10 des revendications 6 à 12.
32. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de gestion des transmissions selon la revendication 13.
33. Moyen de stockage d'informations amovible, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de gestion des transmissions selon l'une des revendications 1 à 5.
34. Moyen de stockage d'informations amovible, partiellement ou 20 totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de gestion des transmissions selon l'une des revendications 6 à 12.
35. Moyen de stockage d'informations amovible, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des 25 instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de gestion des transmissions selon la revendication 13.
36. Programme d'ordinateur chargeable dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre les étapes du procédé de 30 gestion des transmissions selon l'une des revendications 1 à 5, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable.
37. Programme d'ordinateur chargeable dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre les étapes du procédé de gestion des transmissions selon l'une des revendications 6 à 12, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable.
38. Programme d'ordinateur chargeable dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre les étapes du procédé de gestion des transmissions selon la revendication 13, lorsque ce programme 10 d'ordinateur est chargé et exécuté par l'appareil programmable.
FR0304283A 2003-04-07 2003-04-07 Procede et dispositif de gestion des transmissions de paquets de donnees entre au moins deux appareils de communication Expired - Fee Related FR2853483B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0304283A FR2853483B1 (fr) 2003-04-07 2003-04-07 Procede et dispositif de gestion des transmissions de paquets de donnees entre au moins deux appareils de communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0304283A FR2853483B1 (fr) 2003-04-07 2003-04-07 Procede et dispositif de gestion des transmissions de paquets de donnees entre au moins deux appareils de communication

Publications (2)

Publication Number Publication Date
FR2853483A1 true FR2853483A1 (fr) 2004-10-08
FR2853483B1 FR2853483B1 (fr) 2005-07-15

Family

ID=32982280

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0304283A Expired - Fee Related FR2853483B1 (fr) 2003-04-07 2003-04-07 Procede et dispositif de gestion des transmissions de paquets de donnees entre au moins deux appareils de communication

Country Status (1)

Country Link
FR (1) FR2853483B1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822524A (en) * 1995-07-21 1998-10-13 Infovalue Computing, Inc. System for just-in-time retrieval of multimedia files over computer networks by transmitting data packets at transmission rate determined by frame size
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
WO2002045372A2 (fr) * 2000-11-29 2002-06-06 British Telecommunications Public Limited Company Transmission et reception de donnees en temps reel

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822524A (en) * 1995-07-21 1998-10-13 Infovalue Computing, Inc. System for just-in-time retrieval of multimedia files over computer networks by transmitting data packets at transmission rate determined by frame size
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
WO2002045372A2 (fr) * 2000-11-29 2002-06-06 British Telecommunications Public Limited Company Transmission et reception de donnees en temps reel

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHANG E ET AL: "MEDIC: a memory and disk cache for multimedia clients", MULTIMEDIA COMPUTING AND SYSTEMS, 1999. IEEE INTERNATIONAL CONFERENCE ON FLORENCE, ITALY 7-11 JUNE 1999, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 7 June 1999 (1999-06-07), pages 493 - 499, XP010342783, ISBN: 0-7695-0253-9 *
SCHULZRINNE H ET AL: "Real Time Streaming Protocol (RTSP)", INTERNET ENGINEERING TASK FORCE INTERNET DRAFT, XX, XX, 2 February 1998 (1998-02-02), pages 1 - 74, XP002254587 *
ZIMMERMANN, FU,SHAHABI, YAO, ZHU: "Yima: Design and evaluation of a streaming media system for residential broadband services", PROCEEDINGS VLDB01 WORKSHOP DATABASES IN TELECOMMUNICATION, 10 September 2001 (2001-09-10) - 14 September 2001 (2001-09-14), Roma, Italy, XP002268318 *

Also Published As

Publication number Publication date
FR2853483B1 (fr) 2005-07-15

Similar Documents

Publication Publication Date Title
EP3949434A1 (fr) Procédé de diffusion de contenus en streaming dans un réseau pair à pair
FR2851389A1 (fr) Procede et dispositif de gestion de requetes dans une architecture du type client-serveur
EP2947888A1 (fr) Procédé de téléchargement adaptatif de contenus numériques pour plusieurs écrans
FR2893470A1 (fr) Procede et dispositif de creation d'une sequence video representative d'une sequence video numerique et procedes et dispositifs de transmission et reception de donnees video associes
WO2019220034A1 (fr) Gestion du téléchargement progressif adaptatif d'un contenu numérique au sein d'un terminal de restitution d'un réseau de communication local
FR2853483A1 (fr) Procede et dispositif de gestion des transmissions de paquets de donnees entre au moins deux appareils de communication
WO2021089942A1 (fr) Procédé de gestion de zapping de contenus multimédias numériques obtenu par téléchargement progressif adaptatif (has), dispositif de gestion, lecteur de flux multimédia et programme d'ordinateur correspondants
FR3005386A1 (fr) Procede et dispositif de fourniture d’une partie deja diffusee d’un flux multimedia, terminal utilisateur, programme d’ordinateur et medium de stockage correspondants
EP4035408A1 (fr) Gestion du téléchargement progressif adaptatif d'un contenu numérique sur réseau mobile avec sélection d'un débit d'encodage maximum autorisé en fonction d'un godet de données
EP3987820A1 (fr) Procédé de gestion du téléchargement progressif adaptatif (has) d'un contenu numérique diffusé en temps réel, gestionnaire, terminal lecteur de flux multimédia et programme d'ordinateur correspondants
EP3926929B1 (fr) Procédé de gestion de la lecture d'un contenu numérique au sein d'un terminal lecteur de contenus multimédias connecté à un dispositif de restitution
WO2008046827A1 (fr) Procédé de gestion de mémoire dans un terminal client, signal, programme d'ordinateur et terminal correspondants
EP3092777B1 (fr) Procede de traitement d'erreur de restitution d'un contenu numerique
FR3069996B1 (fr) Procede de lecture d'un flux multimedia chiffre avec acces rapide au contenu en clair et dispositif d'utilisation
WO2023208688A1 (fr) Gestion de la restitution d'un contenu multimédia
FR2838588A1 (fr) Procede et dispositif de gestion des transmissions de donnees et des appareils de communication
WO2021209706A1 (fr) Gestion de l'accès à des contenus numériques accessibles en téléchargement progressif adaptatif et encodés selon une méthode d'encodage à débit variable, en fonction d'une charge réseau
FR3093603A1 (fr) Procédé de navigation accélérée dans un contenu numérique obtenu par téléchargement progressif adaptatif (HAS), gestionnaire, lecteur de flux multimédia et programme d’ordinateur correspondants.
FR3093605A1 (fr) Procédé de navigation accélérée dans un contenu numérique obtenu par téléchargement progressif adaptatif (HAS), gestionnaire, lecteur de flux multimédia et programme d’ordinateur correspondants.
EP4109905A1 (fr) Gestion du téléchargement progressif adaptatif d'un contenu numérique en mode économiseur d'écran
EP3973714A1 (fr) Restitution d'un contenu en arrière-plan ou sous forme d'incrustation dans le cadre d'un téléchargement progressif adaptatif de type has
FR3103668A1 (fr) Gestion du téléchargement progressif adaptatif d’un contenu numérique sur réseau mobile avec détermination d’un débit d’encodage maximum autorisé sur une session en fonction d’un godet de données
EP3840391A1 (fr) Gestion de la restitution d'un contenu multimédia et d'une interface de navigation sur un écran
FR3114719A1 (fr) Procédé de gestion de la lecture d’un contenu numérique au sein d’un terminal lecteur de contenus multimédias connecté à un dispositif de restitution
FR3128084A1 (fr) procédé de gestion de la lecture d’un contenu multimédia.

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20131231