Brevet FR2823037A1 — publié le 20021004

L'invention concerne la gestion de la bande passante d'un canal de transmission numérique. Les diffuseurs de programmes de télévision numériques, de radio numériques et mêmes de données multimédia se partagent les canaux de transmission. Ces canaux sont divers. Il s'agit de transmettre soit sur le câble, soit par satellite, soit par voie herzienne et même en utilisant le réseau Internet. Les multiplexages des services audio visuels (Si, 82, S3) à débits constants comme le montre la figure 1, et à débits variables comme le montre la figure 2 sont connus. La bande passante, quel que soit le réseau utilisé pour diffuser son service, est limitée et chère. Le multiplexage à débits variables permet déjà une première optimisation de la gestion de la bande passante. Mais quel que soit le type de multiplexage, les algorithmes de multiplexage ne savent pas travailler sans paquets de bourrage Po. Ils permettent de conserver une marge de bande passante pour palier les pertes éventuelles. Une idée pour palier la perte de bande passante liée à l'obligation d'utiliser les paquets de bourrage Po dans les algorithmes de multiplexage actuels est de remplacer les paquets de bourrage Po après le multiplexage par des données D comme cela est montré sur les figures 1 et 2. Les données D remplacent les paquets de bourrage Po soit en partie (1) laissant une partie Bo de la bande passante définitivement non utilisée, soit en totalité (2). Le problème est alors que le diffuseur n'est pas maître de ce flux de données car il dépend des services multiplexés. Donc suivant le type de données transmises à la place des paquets de bourrage, si le débit est trop lent, l'utilisateur se plaindra de la lenteur du service et si le débit est trop rapide, c'est le décodeur qui ne pourra plus gérer le flux de données entrant. La présente invention propose une nouvelle approche pour l'optimisation de la gestion de la bande passante du canal de transmission numérique. Cette nouvelle approche a l'avantage d'être plus simple à mettre en oeuvre que les multiplexers existants. L'invention a pour objet un procédé de multiplexage de M services (M entier > 1) permettant de transmettre des paquets de données de taille Tp prédéterminée à débit de sortie dont le débit maximal de sortie Ds max est prédéterminé caractérisé en ce qu'il comporte le stockage des données entrantes de chaque service dans une zone tampon associée, la présentation en sortie d'un paquet de données formées par tout ou partie des données présentes dans la zone tampon dont le remplissage est supérieur ou égal à la taille Tp d'un paquet et le retrait des données présentées en sortie de ladite zone tampon. L'invention propose aussi un multiplexeur à M entrées et une sortie caractérisé en ce qu'il comporte M zones tampons, chaque zone tampon étant reliée à une entrée et un dispositif d'élection reliant la zone tampon dont le remplissage est supérieur à la taille d'un paquet à la sortie. Un autre objet de l'invention est une chaîne d'émission numérique de services de divers types sur différents types de réseaux de données synchrones et/ou asynchrones comportant : - M entrées dont les fonctions sont l'acquisition des données, la transformation en paquets de taille fixe adapté au protocole de diffusion, - M buffers dans lesquels les M entrées viennent stocker lesdits paquets, - Un multiplexeur dont les M entrées sont reliées au M buffers, - J buffers reliées aux J sorties du multiplexeur permettant de gérer les données synchrones et asynchrones, - J sorties dont les fonctions sont l'acquisition des données des J buffers, l'adaptation au format du canal de transmission et la diffusion. Les caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description, faite à titre d'exemple, et des figures s'y rapportant qui représentent : - Figure 1, la gestion de la bande passante avec un débit à taux constant selon l'état de l'art, - Figure 2, la gestion de la bande passante avec un débit à taux variable selon l'état de l'art, - Figure 3, une partie de la chaîne d'émission comportant le multiplexeur selon l'invention, - Figure 4, un exemple de représentation schématique du multiplexeur selon l'invention, - Figure 5, la gestion de la bande passante en utilisant le multiplexage selon l'invention. La figure 3 montre que le multiplexeur 3 gère des paquets de différents types de données en entrée. Ces données peuvent être composées de données vidéo, audio ou audio-visuelles diffusées soit en direct soit en différé, de fichiers ou même de données provenant de réseau du type Internet. Ces paquets de données sont de taille fixe. Dans l'exemple de la figure 3, l'entrée 1a reçoit des données diffusées en direct, l'entrée 1b des fichiers et l'entrée 1 c est reliée à un réseau. Le multiplexeur 3 génère une concaténation de ces paquets suivant les débits d'arrivée réels ou voulus des données. Les échanges de données entre les entrées 1/sorties 5 et le multiplexeur 3 se font à l'aide de zones tampons 2 et 4 appelées buffer en anglais. Les buffers 4 sont de deux types : flipflop pour les données synchrones et FIFO pour les données asynchrones. Dans l'exemple de la figure 3, la sortie 5j permet la diffusion des données multiplexées en direct et la sortie 5ii distribue les données sur un réseau, tel que Internet, ATM... par exemple. Les tâches d'une entrée 1 se décomposent en acquisition des données, transformation en paquets de taille fixe adapté au protocole et stockage dans un buffer 2 à destination du multiplexeur 3. Les tâches d'une sortie se décomposent en acquisition des données d'un buffer 4 calculé par le multiplexeur, l'adaptation au format du canal de transmission et la diffusion. Lorsque le multiplexeur 3 a plusieurs sorties (Si, S, i) comme cela est représenté à la figure 3, tous les paquets du noyau de multiplexage sont transmis à l'ensemble des sorties, en l'occurrence aux deux sorties du multiplexeur 3 de la figure 3. Ensuite, sur chaque sortie, les paquets peuvent être filtrer selon les besoins pour transmettre uniquement certains paquets. Par exemple, le filtrage peut être effectué pour ne diffuser à partir de l'une des sorties que des données synchrones et de l'autre que des données asynchrones... Comme le montre l'exemple de représentation schématique du multiplexeur 3 proposé par la figure 4, le multiplexeur 3 comporte des buffers 31 et un dispositif d'élection 32 qui contrôle le remplissage des buffers 31 avec des données à partir des entrées et la transmission de ces données en sortie. Les buffers 2 sont des buffers réels. Ils se remplissent en fonction de l'arrivée des données (dans le cas du direct) ou par bloc complet dans le cas de fichiers. Les buffers 31 peuvent être virtuels, c'est à dire ne pas avoir d'existence réelle. Ce sont des tableaux de valeurs. Ils ont un niveau de remplissage prédéterminé pour une entrée donnée (par exemple, fixée par l'utilisateur). Si la valeur de remplissage était le niveau réel du buffer 2, l'efficacité serait très diminuée (en particulier dans le cas de données asynchrones). Les niveaux de remplissage passeraient de plein à vide et, en sortie du multiplexage, le niveau du débit serait donc en"dent de scie"très prononcé. Dans le cas de la transmission d'un fichier, si les paquets étaient lus directement dans un buffer réel 2, au lieu de les prendre bloc par bloc dans un buffer 31, les performances globales du système s'en ressentiraient. L'avantage d'utilisation des buffers 31 est de décorréler le traitement des données d'entrée du multiplexage à proprement parler. Cela est d'autant plus faciliter si les buffers 31 sont virtuels. Le multiplexeur 3 possède M entrées sur lesquelles sont présentées M services. Le débit des données pour chaque entrée est {DE [i] (t)} iM et le débit maximum demandé par les canaux de transmission de toutes les sorties du multiplexeur 3 sont Ds max. Le temps paquet tp est alors égal à T pl Os max où T p est la taille d'un paquet. BE [i] (t) représente l'état de remplissage du buffer 31 de l'entrée i. Alors le principe général du remplissage des buffers 31 est le suivant : à l'instant t = 0, ViE e [1, M] BJ [ (0) = 0, et à !'instant tN+i = + tp, Vie [1, M] BE [ () = [iXtN) +DE [ (t)-. Et le principe général de l'élection d'un buffer 31 vers la sortie du multiplexeur 3 mis en oeuvre par le dispositif d'élection 31 est le suivant : si 3il BE [iXtN-,,) Tp alors le paquet du buffer 31 sur l'entrée i est présenté en sortie et BE[iXtN+1) = BE[ ; XtN+1)- Tp, sinon un paquet de bourrage est présenté en sortie. Ce procédé de multiplexage comportant le remplissage de buffers d'entrée 31 internes au multiplexeur et l'élection de celui d'entre eux qui ont un taux de remplissage supérieur ou égal à la taille d'un paquet pour transmettre au moins une partie des données qu'il stocke à la sortie du multiplexeur 3 est plus simple à mettre en oeuvre que ceux proposés dans l'état de l'art. Les paquets de bourrage ne sont présentés en sortie uniquement que dans le cas où aucun buffer ne serait suffisamment rempli. Étendons ce principe, pour non plus considérer un seul état de remplissage par buffers 31 mais deux états de remplissage [i] (t) et Emax Mt) correspondants respectivement au débits de consignes minimum et maximum DE.. lIt) et DE. (t). Alors, à l'instant t = 0, Vi e [1, M] e [i] (0) = 0, B [x ] (o) = 0, et à l'instant tN+1 = tN + tp, ViE [1, M] BE., M1) = BE.m [il (N) + DE,n [i] (+,). p et BE. ax ) = ax ) + [/'t (1)-tp. Le dispositif d'élection 32 peut choisir de transmettre des données provenant du buffer 31 de l'entrée si son état de remplissage minimum ou son état de remplissage maximum est supérieur ou égal à la taille d'un paquet comme le montre le procédé suivant : 1) Si 3//Bp [ ] (N+1) Tp, alors le paquet provenant du buffer 31 de l'entrée nos est présenté en sortie, BE [i] () = [i'tN+1)-Tp et Spmax J (+1) = Sn t/JV ; V+1)' 2) Sinon, si 3i/BEmax [+1) Tp, alors le paquet provenant du buffer 31 de l'entrée nos est présenté en sortie, Benin [iKtN+1) = BErnIn [iKtN+1)-Tp et Bmax N/N+1) = BEla[i(tN+1)-Tp, 3) Sinon un paquet de bourrage est présenté en sortie. Les débits de consignes peuvent être vus comme un débit garanti pour le débit minimum et un débit au mieux pour le débit maximum. Si le débit minimum d'un service i est égal au débit maximum de ce même service i, alors le service i est diffusé avec un débit fixe et garanti. Si le débit minimum du service i est fixé à zéro et le débit maximum de ce même service i au débit maximum de sortie, le mode de diffusion du service i est dit"opportuniste". Du fait de la simplicité du procédé mis en oeuvre, les buffers 31 peuvent être virtuels ainsi que le dispositif d'élection 32. Dans le procédé utilisant le principe général de remplissage et d'élection ainsi que dans celui mettant en oeuvre les débits de consigne, si les buffers 31 de deux entrées i et j sont élus, le conflit d'élection peut être régler en définissant un ordre de priorité des buffers 31 ou suivant le type de service stocké dans les buffers et/ou le type de débit (opportuniste, variable garanti, constant) et/ou le type de données (audio, vidéo...) et/ou le diffuseur... La figure 5 montre un exemple de la gestion d'un canal par le multiplexeur 3. Elle représente l'utilisation de la bande passante complète par six services différents. Le service 1 a un débit constant c'est à dire que le débit minimum est égal au débit maximum pour ce service dans le procédé mis en oeuvre par le multiplexeur 3. Les services 2 à 4 ont des débits minimum différents des débits maximum et respectivement différents de zéro et du débit de sortie maximum, cela permet d'avoir une gestion variable de la bande passante avec garanti. Le service SAV comporte des données audio/vidéo diffusée en direct avec un débit variable non contrôlable.. Le service 5 a un débit purement variable du fait que son débit minimum a été fixé à zéro et son débit maximum a été fixé égal au débit de sortie maximum Ds max. Ce service remplit ainsi ce qui reste de la bande passante sans que cela lui nuise. Les débits minimum et maximum sont fixés service par service soit de façon prédéterminée par les producteurs des services ou les diffuseurs, soit en fonction du type de données que comporte ces services (services en direct ou en différé, types de données : audio, vidéo, fichiers, données multimédia). Certains services ne peuvent être diffusés qu'à débit constant sous peine de voir celui-ci se dégrader. Pour d'autre un débit de consigne minimum est nécessaire car la lenteur du service engendre une gêne à l'utilisation. Pour certains services, si celui-ci est reçu à un débit trop élevé le décodeur en réception n'est pas capable de suivre. Et, pour des services tel que le téléchargement de fichiers en arrière plan... le débit de diffusion importe peu, c'est donc le type de service qui peut venir utiliser les bits restant de la bande passante afin d'en optimiser la gestion. Ainsi, l'on a une garantie d'utilisation maximale du débit disponible sur le canal de transmission, la gestion simultanée de flux de données synchrones et asynchrones, la gestion d'entrées et de sortie hétérogènes et la gestion simultanée de contraintes de débits. Le procédé de multiplexage selon l'invention se différencie des multiplexers classiques par les points suivants : - L'utilisation de buffers 31 permettant de décorréler le stockage et l'arrivée des données du multiplexage ; - La simplicité de l'algorithme d'élection avec le parcours d'un tableau de valeur ; - Le multi-format des entrées/sorties (plusieurs entrées et plusieurs sorties, les données de chaque entrée peuvent être de types différents, de même que les données de chaque sortie peuvent être de types différents) ; - La gestion optimisée du mode opportuniste. REVENDICATIONS 1. Procédé de multiplexage de M services (M entier > 1) permettant de transmettre des paquets de données de taille Tp prédéterminée à débit de sortie dont le débit maximal de sortie Ds max est prédéterminé caractérisé en ce qu'il comporte le stockage des données entrantes de chaque service dans une zone tampon associée, la présentation en sortie d'un paquet de données formées par tout ou partie des données présentes dans la zone tampon dont le remplissage est supérieur ou égal à la taille Tp d'un paquet et le retrait des données présentées en sortie de ladite zone tampon. 2. Procédé de multiplexage selon la revendication 1 caractérisé en ce que si aucune zone tampon n'a un remplissage supérieur ou égal à la taille Tp d'un paquet, un paquet de bourrage est présenté en sortie. 3. Procédé de multiplexage selon l'une des revendications précédentes caractérisé en ce que si plusieurs zones tampon présentent un remplissage supérieur ou égal à la taille Tp d'un paquet, la zone tampon qui sera débitée la première d'au moins une partie de ses données dépend soit de sa priorité, soit de la priorité du service stocké, soit du type de données stockées. 4. Procédé de multiplexage selon l'une des revendications précédentes caractérisé en ce que le remplissage des zones tampon vérifie l'équation suivante : Vi [[1, M] [i,) = [) + M -p où B, [) représente le remplissage de la zone tampon de l'entrée i à l'instant t, DE [représente le débit des données pour l'entrée i à l'instant t, l'instant tN+1 = tN + tp avec tp = Tp/Dgmax et sachant qu'à l'instant t=O, les M zones tampons sont vides et en ce que la transmission des données en sortie vérifie l'équation suivante : si3i1 BI [iKtN+,) TI" alors le paquet de l'entrée n e est présenté en sortie et B, [,) = [i,)-r,. 5. Procédé de multiplexage selon l'une des revendications précédentes caractérisé en ce que si le service de l'entrée i à un débit minimum D, [ : ) et un débit maximum DJ), et si . [) et . [) représentent respectivement le remplissage minimal et maximal de la zone tampon de l'entrée i à l'instant f sachant que ce remplissage est nul à l'instant t=0 et que l'instant + = + p avec tp = Tp 1 Os max, le remplissage des zones tampons vérifie les équations suivantes : e [1, M] ,, M,) ,,. M () + D,,, M,).t et ;..,. M.,)- ;.. [) + D,, M,,)et B 1 ma [ ;i Kt N + J = B 1 ma [ ;i Kt N) + D h max [ ;i Kt N + 1). t p et la transmission de sonnées en sortie vérifie les équations suivantes : si3//, )/] (j) 7, alors le paquet de l'entrée nos est présenté en sortie, B, [/] (,,) =,,,, [,)-r, et , M) = [ ,), sinon si/. 5, j/] (,) > 7, ators te paquet de l'entrée n e est présenté en sortie, B, mm [i,) =, J,,)- et [,) = J,)-T,, sinon un paquet de bourrage est présenté en sortie. 6. Procédé de multiplexage selon l'une des revendications précédentes caractérisé en ce que tout ou partie des services sont présentés en sortie avec des débits constants et/ou variables avec ou sans consigne minimale et/ou maximale. 7. Multiplexer à M entrées (M entier > 1) et une sortie permettant de transmettre des paquets de données de taille Tp prédéterminée à débit de sortie dont le débit maximal de sortie Ds max est prédéterminé caractérisé en ce qu'il comporte M zones tampons (31) pour le stockage des données entrantes de chacun des M services entrants, chaque zone tampon (31) étant reliée à une entrée et un dispositif d'élection (32) reliant la zone tampon (31) dont le remplissage est supérieur à la taille Tp d'un paquet à la sortie, permettant ainsi la présentation en sortie d'un paquet de données formées par tout ou partie des données présentes dans ladite zone tampon et le retrait des données présentées en sortie de ladite zone tampon. 8. Multiplexeur selon la revendication 7 caractérisé en ce que les zones tampons (31) et/ou le dispositif d'élection (32) sont virtuels. 9. Multiplexeur selon la revendication 7 caractérisé en ce qu'il met en oeuvre le procédé de multiplexage selon l'une des revendications 2 à 6. 10. Chaîne d'émission numérique de services de divers types sur différents types de réseaux de données synchrones et/ou asynchrones comportant : - M entrées (1) dont les fonctions sont l'acquisition des données, la transformation en paquets de taille fixe adapté au protocole de diffusion, - M buffers (2) dans lesquels les M entrées (1) viennent stocker lesdits paquets, - Un multiplexeur (3) selon l'une des revendications 7 et 8 dont les M entrées sont reliées au M buffers (2), - J buffers (4) reliées aux J sorties du multiplexeur (3) permettant de gérer les données synchrones et asynchrones, - J sorties (5) dont les fonctions sont l'acquisition des données des J buffers (4), l'adaptation au format du canal de transmission et la diffusion. 11. Système de diffusion de services de divers types sur différents types de réseaux de données synchrones et/ou asynchrones comportant dans sa chaîne d'émission le multiplexeur selon l'une des revendications 7 et 8.