Brevet FR2925250A1 — publié le 20090619

La présente invention concerne le domaine de la diffusion de services multimédia à destination de terminaux de restitution de ces services. Plus particulièrement, on s'intéresse à la diffusion de services en mode salve (burst en anglais) à destination de terminaux mobiles comme c'est le cas, par exemple, dans la norme de diffusion DVB-H (Digital Video Broadcasting û Handheld en anglais) définie dans le document "ETSI EN 302 304, DVB-H Transmission System for Handheld Terminals". Un ensemble de services numériques à destination de terminaux mobiles est généralement diffusé sous la forme d'un flux de données numériques. Chaque service est divisé en paquets de données appelées sections. Ces sections constituant les différents services sont alors multiplexées, c'est-à-dire mélangées, au sein du flux. Dans le cas de terminaux mobiles, il est courant de rassembler des sections d'un même service au sein de salves. Dans ce cas, la diffusion comporte l'émission successive de salves constituées de sections d'un même service. De cette manière, le terminal de réception peut stopper sa partie radio entre les salves du service qu'il écoute. Il est nécessaire d'indiquer dans une salve le moment d'émission de la salve suivante du même service pour que le terminal puisse rallumer sa partie radio pour la réception de la salve suivante. Lors de la constitution du flux, il est donc nécessaire de construire celui-ci précisément en incluant dans une salve d'un service, une information sur le moment d'émission de la salve suivante du même service. Cette politique de construction du flux est régulière et périodique dans le cas d'un flux constitué de services codés selon un procédé de codage à débit constant (CBR pour Constant Bit Rate en anglais). L'adoption d'un schéma de construction du flux basé sur des salves régulières et périodiques dans le cas de services encodés selon un procédé de codage à débit variable (VBR pour Variable Bit Rate en anglais) conduit à une perte de bande passante disponible, voire même à des pertes de données. L'invention vise à résoudre les problèmes précédents par un procédé de génération d'un flux de diffusion de services multimédia encodés selon un procédé de codage à débit variable sans perte de bande passante. Le procédé permet le calcul du moment de diffusion de la salve suivante du même service sans nécessiter la mémorisation d'une période complète de salves supplémentaire. De cette manière, on construit un flux de diffusion de services VBR, limitant les pertes de bande passante et n'introduisant pas de latence supplémentaire par rapport à la constitution d'un flux de diffusion de services CBR. L'invention concerne un procédé de génération d'un flux de données destiné à la diffusion de services numériques, chaque service étant composé de paquets de données appelées sections, la diffusion étant organisée temporellement en périodes appelées périodes de salve, comprenant une étape de réception de données appartenant aux différents services et destinées à être diffusées au cours d'un intervalle de temps correspondant à une période de salve ; une étape de groupement des sections de données de chaque service au sein d'une succession de sections appelées salve et contenant toutes les sections du service destinées à être émises pendant la même période de salve et une étape de génération du flux constitué d'une succession de salves, le flux contenant pour une période de salve donnée une salve pour chaque service diffusé, les différentes salves d'une période de salve donnée étant contiguës et de longueur variable en fonction de la quantité de données devant être diffusées pour chaque service durant ladite période de salve. Selon un mode particulier de réalisation de l'invention, un intervalle de temps appelé delta-t étant inséré dans l'en-tête des sections de chaque service et indiquant l'intervalle de temps entre le moment de l'émission de la section courante et le moment d'émission de la première section de la salve suivante du même service, le delta-t est calculé comme : - la période de salve ; plus - du temps nécessaire à l'émission des salves des services précédents le service courant, dans la période de salve suivante, calculé comme étant la somme de la quantité de données reçue pour chacun de ces services pour la période de salve suivante divisée par le débit total du flux ; moins - de l'intervalle de temps entre le moment d'émission de la première section de 25 la période de salve et le moment d'émission de la section courante. Selon un mode particulier de réalisation de l'invention, des tables étant insérées dans le flux et utilisant un débit appelé débit des tables, le delta-t est calculé en utilisant le débit utile correspondant au débit du flux moins le débit des tables. Selon un mode particulier de réalisation de l'invention, des services étant insérés 30 dans le flux en vue d'une diffusion en continu en plus des services diffusés par salves, une bande passante est réservée dans le flux pour la diffusion de ces services continus, cette bande passante réservée correspondant à un débit réservé pour ces services continus, le procédé comprend en outre : - une étape d'insertion de sections de bourrage pour assurer que le débit utilisé par ces services continus plus lesdites sections de bourrage correspondent au débit réservé pour les services continus ; le delta-t étant alors calculé en utilisant le débit utile correspondant au débit du flux moins le débit des tables et moins le débit réservé pour les services continus. L'invention concerne également un dispositif de génération d'un flux de données destiné à la diffusion de services numériques, chaque service étant composé de paquets de données appelées sections, la diffusion étant organisée temporellement en périodes appelées périodes de salve, comprenant des moyens de réception de données appartenant aux différents services et destinées à être diffusées au cours d'un intervalle de temps correspondant à une période de salve ; des moyens de groupement des sections de données de chaque service au sein d'une succession de sections appelée salve et contenant toutes les sections du service destinées à être émises pendant la même période de salve et des moyens de génération du flux constitué d'une succession de salves, le flux contenant pour une période de salve donnée une salve pour chaque service diffusé, les différentes salves d'une période de salve donnée étant contiguës et de longueur variable en fonction de la quantité de données devant être diffusée pour chaque service durant ladite période de salve. L'invention concerne également un flux de données destiné à la diffusion de services numériques, chaque service étant composé de paquets de données appelées sections, la diffusion étant organisée temporellement en périodes appelées période de salve, comprenant des groupes de sections de données de chaque service au sein d'une succession de sections appelée salve et contenant toutes les sections du service émises pendant la même période de salve et où le flux étant constitué d'une succession de salves, le flux contient pour une période de salve donnée une salve pour chaque service diffusé, les différentes salves d'une période de salve donnée sont contiguës et de longueur variable en fonction de la quantité de données diffusée pour chaque service durant ladite période de salve. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels : La Fig. 1 illustre un flux de diffusion de services CBR par salve, La Fig. 2 illustre deux salves d'un même service au sein du flux, La Fig. 3 illustre la gestion de tampons au sein d'un équipement de constitution du flux, La Fig. 4 illustre un flux de diffusion de services VBR par salve selon l'exemple de réalisation de l'invention, La Fig. 5 illustre le même flux incluant des tables de signalisation, La Fig. 6 donne une autre représentation du flux de la Fig. 5, La Fig. 7 illustre le même flux incluant la diffusion d'un service continu. La norme DVB-H est destinée à une diffusion pour des terminaux mobiles. La communication à destination de terminaux mobiles est caractérisée par un canal radio bruité et variable. D'autre part, les terminaux mobiles fonctionnent généralement sur batterie et leur autonomie est un critère important. Pour ces raisons, DVB-H a standardisé un mode de diffusion par salve et une forte protection contre les erreurs de transmission sous la forme d'un code correcteur d'erreurs FEC (Forward Error Correction en anglais). La Fig. 1 illustre un flux de diffusion de services CBR par salve. La constitution des salves respecte une période T au cours de laquelle est émise une salve de données pour chaque service, cette période est appelée période de salve (burst period en anglais). Le flux ayant un débit constant D, on calcule la quantité de données à émettre par service en fonction du débit constant de chaque service. On alloue alors à chaque service un intervalle de temps (time slot en anglais) au cours de la période. Cet intervalle de temps correspond au temps nécessaire pour émettre les données du service à émettre au cours de la période T au débit du flux D. La période T est donc une succession de salves de données correspondant aux services, ici S1, S2, S3, S4 et S5. La durée de chaque salve dépend du débit du service émis. Ces périodes se répètent à l'identique, les salves contenant la même quantité de données émises sur un même intervalle de temps. Le flux est alors généré en groupant les sections de données de chaque service au sein d'une succession de sections appelée salve et contenant toutes les sections du service destinées à être émises pendant la même période de salve. Le flux est organisé sous la forme d'une succession de salves, une salve par service diffusé, pour chaque période de salve. Dans le cas des flux codés selon un procédé de codage à débit constant, les salves ont la même durée pour un même service d'une période de salve à une autre. Le mode salve consiste à grouper les sections contenant les données d'un service par salve dans le flux de données. De cette façon, un terminal désirant recevoir un service peut alors débrancher son récepteur radio entre deux salves pour des raisons d'économie d'énergie. La Fig. 2 illustre la diffusion par salve. Un service est constitué de sections de données MPE rassemblées par salve. Une première salve est référencée 2.1. Chaque section de la première salve 2.1 contient dans son en-tête une information sur le temps séparant à l'émission cette section du début de l'émission de la salve suivante référencée 2.2. Cette information est appelée le delta-t, référencé 2.3, entre la section et la première salve suivante. Un flux de données est dit formé en salves, lorsque les données sont regroupées au sein du flux, par exemple les services, en entités en vue de leur émission en salve. Pour pouvoir calculer précisément le delta-t pour chaque section de la salve, il faut et il suffit de connaître le delta-t de la première section. Le delta-t des sections suivantes de la salve s'obtient alors en déduisant de ce premier delta-t la durée d'émission d'une section pour chaque section précédente dans la salve. Par commodité, on parlera du delta-t de la salve pour parler du delta-t de la première section de la salve. Le delta-t de la salve est donc défini comme l'intervalle de temps entre le moment d'émission de la première section de la salve et le moment d'émission de la première section de la salve suivante. La construction de ces flux de diffusion de données se fait typiquement au sein d'un équipement appelé multiplexeur. Ce multiplexeur reçoit les différents services sous la forme de flux de données indépendants. Ces flux peuvent être reçus, par exemple, sous la forme de paquets IP (Internet Protocol en anglais). Le traitement de ces données pour la construction du flux de diffusion multiplexé par salve est illustré par la Fig. 3. A un instant tl, les données reçues sont stockées dans un premier tampon appelé tampon RX. Pendant ce temps, les données reçues au temps précédent sont traitées dans un tampon appelé tampon RS. Ce traitement consiste à constituer les salves et à calculer les sommes de contrôle généralement selon l'algorithme de Reed Solomon. Les données déjà calculées et mémorisées dans un troisième tampon appelé tampon TX sont diffusées. Au temps t2, correspondant au temps tl plus la durée d'une période de salve, une rotation est effectuée sur le rôle de ces trois tampons. Le tampon RX contient toutes les données nécessaires à la construction des salves des services sur une nouvelle période de salve. Ce tampon devient donc le tampon RS et la constitution des salves peut commencer. Le tampon RS contient des données calculées et prêtes à l'envoi. Ce tampon devient donc le tampon TX servant à la diffusion des données. Le tampon TX est maintenant vide et sert à stocker les nouvelles données reçues, il devient le tampon RX. Au temps t3, correspondant à la période de salve suivante, une nouvelle rotation est effectuée. La réception, le calcul et l'émission se font donc par une rotation périodique de ces trois tampons et entraînent un temps de latence correspondant à deux périodes de salve. Lorsque le flux est constitué de services encodés selon un procédé de codage à débit constant, le schéma de constitution des salves est simple. Il est possible d'attribuer un intervalle de temps à chaque service qui correspond exactement au temps nécessaire pour émettre les données du service pendant la période de salve. Le débit étant constant, cet intervalle de temps est immuable d'une période à une autre. Le calcul des delta-t à inclure dans les en-têtes de sections de données est également simple et immuable d'une période de salve à une autre. Dans le cas de services encodés selon un procédé de codage à débit variable le problème est tout autre. En effet, la quantité de données à diffuser pour chaque service évolue d'une période de salve à une autre. Si l'on conserve la division de la période de salve en intervalles de temps fixes dédiés à chaque service, il est nécessaire de choisir ces intervalles de temps au moins aussi grands que la quantité maximum de données que l'on est susceptible de transmettre pour ce service pendant une période de salve. Dans le cas contraire, on ne sera pas en mesure de toujours transmettre intégralement les données du service sur une période, ce qui peut entraîner des ruptures de service. De ce fait, la quantité de données à transmettre lors d'une période de salve est généralement inférieure à la quantité maximale de données, nous avons donc une perte de bande passante dans le flux généré. Pour pallier ceci, l'invention propose de former un flux où les intervalles de temps dédiés à chaque service ne sont plus fixes d'une période de salve à une autre. Ces intervalles de temps sont calculés au plus juste pour chaque période de salve en fonction de la quantité de données effective à transmettre pour ce service durant cette période de salve. La période de salve reste fixe car les équipements qui génèrent les flux à débit variables peuvent être configurés pour que, si chaque flux est à débit variable, l'ensemble de ces flux possède un débit constant. La quantité de données globale à émettre pour tous les services durant la période de salve reste donc identique, les variations de débit individuelles des flux se compensant. On construit donc un flux tel qu'illustré par la Fig. 4. Dans ce flux, la quantité de données et donc l'intervalle de temps dédié à chaque service évoluent d'une période de salve à une autre. Par contre, le débit D de l'ensemble des services reste constant. On génère donc un flux constitué d'une succession de salves. Ce flux contient pour une période de salve donnée une salve pour chaque service diffusé. Les différentes salves d'une période de salve donnée sont contiguës et de longueur variable en fonction de la quantité de données devant être diffusée pour chaque service durant ladite période de salve. Lorsque l'on construit un flux selon ce principe, une difficulté apparaît, qui est celle de calculer les delta-t associés à chaque salve. Ces delta-t vont également varier d'une période de salve à une autre et doivent être calculés pour chaque salve de chaque période de salve. La Fig. 4 illustre ce problème. Sur la figure, on voit que le delta-t de la salve du service S I qui correspond au temps t'1 - tl correspond à la période de salve T et ne pose donc pas de problème. En effet, la période de salve est une constante connue. Par contre, pour le service S2, le delta-t correspond à t '2 - t2. Il dépend de la durée de la salve du service S'l correspondant à t'2 - t'1. De même, il est nécessaire de connaître les durées de salve de S'l et de S'2 pour la salve suivante pour déterminer le delta-t dt3 du service S3. Une solution consiste à mémoriser dans un tampon supplémentaire les données correspondant à une période de salve. Ainsi, on construit la salve dans un premier temps sans y insérer les delta-t. Dans un second temps, la salve suivante étant construite, on peut calculer et insérer les delta-t. Cette solution est simple, mais implique une latence supplémentaire d'une période de salve. Les inventeurs proposent un calcul du delta-t basé sur la connaissance que l'on a de la quantité de données reçue pour chaque service dans le tampon de réception RX au moment où est effectué le calcul des delta-t dans le tampon RS. Connaissant le débit D d'émission du flux, on en déduit les durées de salve des services dans la salve suivante. Dans ce cas, le calcul du delta-t d'une section d'un service n est le suivant : n-1 dt=T+(S',)/Dû(tût,) ; ,=1 où dt représente le delta-t de la section courante d'un service n de la période de n-1 salve courante, T représente la période de salve, 1S', représente la somme des données des services 1 à n-1 de la période de salve suivante, t, le moment d'émission de la première section du premier service de la période de salve courante et t le moment d'émission de la section courante. D est toujours le débit du flux. La section courante est la section dans laquelle on introduit le delta-t calculé. Dans la pratique, le flux généré contient habituellement des tables de signalisation appelées table SI/PSI en sus des salves de services. Ces tables sont insérées sous la forme de sections de signalisation entre les sections de données de services. L'insertion se fait en fonction d'une fréquence d'émission de chaque table précisée dans la norme. Cette insertion est illustrée Fig. 5. Cette figure illustre le flux précédent dans une vue réelle dans lequel des sections de signalisation ont été insérées de manière sensiblement régulière dans le flux. Ces sections sont illustrées en pointillé. Le débit D du flux se compose alors d'une composante de débit Du correspondant au débit utile utilisé par les salves de données des services et un débit Dt correspondant au débit utilisé par les tables de signalisation. La Fig. 6 représente une approximation du même flux où les données sont représentées dans une bande correspondant au débit utilisé. Le débit moyen Dt, utilisé par les tables de signalisation, est connu. Pour 10 prendre en compte ces tables, il suffit d'adapter la formule précédente en prenant en compte le débit effectif des donnés des services Du à la place du débit total du flux : n-1 dt=T+(ES',)/Duù(t-tl) ; =1 Sachant que Dv = D - Dt ; Les flux générés peuvent également comprendre, en plus des services diffusés 15 par salves, un ou des services diffusés en continu. C'est typiquement le cas du service de guide des programmes ou ESG (Electronic Service Guide en anglais). Une quantité de bande passante est alors allouée à ces services. Les sections correspondant à ces services sont alors insérées dans le flux selon une fréquence visant à respecter cette bande passante allouée. Dans le cas où la bande passante allouée correspond 20 exactement à la bande passante utilisée par le ou les services diffusés en continu, la technique utilisée pour tenir compte des tables de signalisation peut être réutilisée. Dans la pratique, la bande passante réservée pour le ou les services continus est généralement un peu plus élevée que la bande passante nécessaire. Il faut également tenir compte du fait que ces données sont réparties au sein d'une période de salve en 25 utilisant la taille d'une section comme unité de répartition. La répartition réelle est donc plutôt conforme à la Fig. 7. L'erreur entre la bande passante réservée pour les services et la bande passante réellement utilisée pour leur diffusion peut devenir importante. Il est alors possible d'insérer des paquets de bourrage, référencés 7.1, pour ramener artificiellement la bande passante utilisée par les services continus à la bande 30 passante réservée. Dans ce cas, le calcul du delta-t se fait selon la formule suivante : n-1 dt=T+(IS',)/Duû(t-t1) ; ,=1 sachant que Du = D û Dt ûDc ; si l'on appelle Dc la bande passante réservée aux services continus tels que l'ESG. On obtient ainsi un procédé de construction d'un flux de données contenant des services encodés selon un procédé de codage à débit variable. Ce flux ne génère pas de perte de bande passante au niveau des services diffusés grâce à une allocation dynamique des intervalles de temps aux services au sein des périodes de salve. Le procédé propose de plus une façon de calculer les valeurs de delta-t devant être insérées dans les en-têtes des sections contenant les données de services sans nécessiter d'introduire une latence supplémentaire en incluant dans le calcul la quantité de données reçues pour chaque service pour la période de salve suivante.10 REVENDICATIONS 1/ Procédé de génération d'un flux de données destiné à la diffusion de services numériques, chaque service étant composé de paquets de données appelées sections, la diffusion étant organisée temporellement en périodes appelées période de salve, comprenant les étapes suivantes : - une étape de réception de données appartenant aux différents services et destinées à être diffusées au cours d'un intervalle de temps correspondant à une 10 période de salve ; - une étape de groupement des sections de données de chaque service au sein d'une succession de sections appelées salve et contenant toutes les sections du service destinées à être émises pendant la même période de salve ; caractérisée en ce que le procédé comporte en outre : 15 - une étape de génération du flux constitué d'une succession de salves, le flux contenant pour une période de salve donnée une salve pour chaque service diffusé, les différentes salves d'une période de salve donnée étant contiguës et de longueur variable en fonction de la quantité de données devant être diffusée pour chaque service durant ladite période de salve. 20 2/ Procédé selon la revendication 1, caractérisé en ce qu'un intervalle de temps appelé delta-t étant inséré dans l'en-tête des sections de chaque service et indiquant l'intervalle de temps entre le moment de l'émission de la section courante et le moment d'émission de la première section de la salve suivante du même service, le 25 delta-t est calculé comme : - la période de salve ; plus - du temps nécessaire à l'émission des salves des services précédents le service courant, dans la période de salve suivante, calculé comme étant la somme de la quantité de données reçues pour chacun de ces services pour la période de salve 30 suivante divisée par le débit total du flux ; moins - de l'intervalle de temps entre le moment d'émission de la première section de la période de salve et le moment d'émission de la section courante. 3/ Procédé selon la revendication 2, caractérisé en ce que, des tables étant 35 insérées dans le flux et utilisant un débit appelé débit des tables, le delta-t est calculé en utilisant le débit utile correspondant au débit du flux moins le débit des tables. 11 4/ Procédé selon la revendication 3, caractérisé en ce que, des services étant insérés dans le flux en vue d'une diffusion en continu en plus des services diffusés par salve, une bande passante est réservée dans le flux pour la diffusion de ces services continus, cette bande passante réservée correspondant à un débit réservé pour ces services continus, le procédé comprend en outre : - une étape d'insertion de sections de bourrage pour assurer que le débit utilisé par ces services continus plus lesdites sections de bourrage corresponde au débit réservé pour les services continus ; le delta-t étant alors calculé en utilisant le débit utile correspondant au débit du flux moins le débit des tables et moins le débit réservé pour les services continus. 5/ Dispositif de génération d'un flux de données destiné à la diffusion de services numériques, chaque service étant composé de paquets de données appelées sections, la diffusion étant organisée temporellement en périodes appelées périodes de salve, comprenant : - des moyens de réception de données appartenant aux différents services et destinées à être diffusées au cours d'un intervalle de temps correspondant à une période de salve ; - des moyens de groupement des sections de données de chaque service au sein d'une succession de sections appelée salve et contenant toutes les sections du service destinées à être émises pendant la même période de salve ; caractérisée en ce que le dispositif comporte en outre : - des moyens de génération du flux constitués d'une succession de salves, le flux contenant pour une période de salve donnée une salve pour chaque service diffusé, les différentes salves d'une période de salve donnée étant contiguës et de longueur variable en fonction de la quantité de données devant être diffusée pour chaque service durant ladite période de salve. 6/ Flux de données destiné à la diffusion de services numériques, chaque service étant composé de paquets de données appelées sections, la diffusion étant organisée temporellement en périodes appelées périodes de salve, comprenant : - des groupes de sections de données de chaque service au sein d'une succession de sections appelées salves et contenant toutes les sections du service émises pendant la même période de salve ; caractérisée en ce que : - le flux étant constitué d'une succession de salves, le flux contient pour une période de salve donnée une salve pour chaque service diffusé, les différentes salvesd'une période de salve donnée sont contiguës et de longueur variable en fonction de la quantité de données diffusée pour chaque service durant ladite période de salve.