FR 2911750 A1 20080725 FR 0754285 A 20070404 1 Le domaine de l'invention est celui des systèmes de communication, et plus précisément celui des systèmes de communication pour la transmission de contenus multimédia à destination de terminaux portables par le biais de réseaux de radiodiffusion numérique, notamment via une liaison satellite. Le standard DVB-H est un exemple de norme de radiodiffusion numérique hertzienne pour la transmission de contenus vers des terminaux portables. Selon ce standard, un flux IP de données comprend une pluralité de flux élémentaires, chacun découpé temporellement pour être transmis sous la forme de salves. Une correction d'erreur directe FEC (Forward Error Correction) peut être mise en oeuvre afin d'assurer une protection contre la perte de données à l'intérieur d'une salve. L'implémentation de cette correction (à laquelle il sera par la suite fait référence sous l'appellation de `FEC intra-salve') est décrite dans le document ETSI EN 301 192: Digital Video Broadcasting (DVB) ; DVB specification for data broadcasting , en particulier au paragraphe 9 : Time slicing and MPE-FEC . On trouvera également une description de ce mécanisme de correction d'erreur intra-salve dans la partie introductive de la demande PCT WO 2006/123231, en liaison avec les figures 2 et 3 de cette demande. Le standard DVB-H présente l'inconvénient de ne pas être adapté à des situations susceptibles de présenter de longues interruptions ou extinctions dans la réception. Un exemple d'une telle situation est celle où un terminal recevant un signal d'un satellite est embarqué dans un véhicule et passe sous un rideau d'arbres lui occultant le satellite pendant plusieurs secondes, voire plusieurs dizaines de secondes. Un autre exemple est celui d'un terminal se déplaçant dans un mini-tunnel non équipé de répéteur (du type Gap filler ) et qui, de ce fait, ne va pas pouvoir recevoir pendant plusieurs secondes le signal émis par le transmetteur le plus proche. Or la correction d'erreur FEC intra-salve proposée dans le standard n'est pas adaptée à la correction de pertes liées à ces longues 2 interruptions/extinctions. Calculée sur la base des données à l'intérieur d'une salve, la correction FEC intra-salve ne permet effectivement que la correction de pertes à l'intérieur d'une salve dont la durée est habituellement de l'ordre d'une fraction de seconde (typiquement 100 à 200 millisecondes). Il existe donc un besoin pour une technique permettant d'adapter le standard DVB-H à des liaisons susceptibles de présenter de longues interruptions/extinctions, en particulier une liaison satellitaire. Cette technique devrait notamment permettre une récupération des données perdues lors de ces longues périodes d'interruptions/extinctions. 1 o L'invention a pour objectif de répondre à ce besoin, et propose à cet effet, et selon un premier aspect, un procédé de protection contre l'erreur dans un système de transmission dans lequel un flux de données comprend une pluralité de flux élémentaires (ES) découpés temporellement pour être transmis sous la forme de salves, caractérisé en ce qu'il met en oeuvre, pour 15 un flux élémentaire, un calcul de correction d'erreur directe inter-salves, et une association de la correction calculée à des salves du flux pour assurer une protection contre la perte totale ou partielle d'une ou plusieurs salves du flux. Certains aspects préférés, mais non limitatifs, de ce procédé sont les 20 suivants : - les données d'une salve sont transmises sans délai, accompagnées de données supplémentaires relatives à des informations de correction qui ont été associées à cette salve ; - l'émission des salves est retardée, en retardant l'émission des 25 données d'une salve pour transmettre lesdites données dans une salve ultérieure, ou en retardant l'émission de données supplémentaires relatives à des informations de correction qui ont été associées à cette salve pour transmettre lesdites données supplémentaires dans une salve ultérieure ; 3o - les données d'une salve sont transmises telles quelles dans des salves protégées par la correction d'erreur directe inter-salves ; - les données d'une pluralité de salves d'un flux élémentaire sont entrelacées, et un traitement de correction d'erreur directe est appliqué aux salves entrelacées pour calculer la correction d'erreur directe inter-salves ; - la correction d'erreur directe inter-salves est calculée sur une fenêtre glissante de B+S salves entrelacées ; - le traitement de correction d'erreur directe met en oeuvre un calcul de codes correcteurs d'erreurs Reed-Solomon ; - la correction calculée est dispersée sur une pluralité S de salves du flux élémentaire, de sorte à former une trame dite trame MPE-OFEC pour chaque salve ; - une trame MPE-OFEC est encapsulée en sections, lesdites sections comprenant des sections MPE relatives aux données de la salve et des sections MPE-OFEC relatives à la correction inter-salves ; - le procédé comporte également l'introduction dans chaque section MPE-OFEC d'un en-tête présentant des informations telles qu'un récepteur du flux élémentaire a connaissance des paramètres de mise en oeuvre de la correction inter-salves ; - il met également en oeuvre une protection contre la perte de données à l'intérieur d'une salve, ladite protection étant assurée en calculant une correction d'erreur directe intra-salve ; - l'entrelacement consiste à entrelacer chaque salve d'une pluralité B+S de salves du flux élémentaire dans des Tableaux de Données d'Application d'une pluralité B de matrices prises parmi une pluralité B+S de matrices du type MPE-FEC ; - le calcul d'erreur directe appliqué aux salves entrelacées consiste à calculer un Tableau de Données RS pour chacune des matrices du type MPE-FEC, à raison d'une matrice calculée par salve émise ; - la dispersion de la correction calculée consiste à transmettre des colonnes de FEC inter-salves dans une salve, lesdites colonnes étant 4 choisies parmi les Fo colonnes d'une pluralité B+S desdits Tableaux de Données RS ; - les informations d'en tête comprennent l'indication du nombre B de salves qui sont entrelacées pour calculer la correction inter-salves, ainsi que l'indication du nombre S de salves sur lesquelles la correction inter-salves calculée est dispersée ; - à la réception des sections d'une trame MPE-OFEC, les sections MPE sont entrelacées dans les Tableaux de Données d'Application d'une pluralité B+S de matrice du type MPE-FEC, et les sections MPE- 1 o OFEC sont placées dans les Tableaux de Données RS desdites matrices du type MPE-FEC, et en ce qu'en cas de perte totale ou partielle d'une salve, les sections MPE de ladite salve perdue sont recomposées à partir des données des Tableaux de Données RS dans lesquels les sections MPE-OFEC ont été placées ; 15 - le système de transmission est un système compatible DVB-H. Selon un second aspect, I"invention concerne également un dispositif comprenant des moyens logiciels et/ou matériels configurés pour mettre en oeuvre le procédé selon le premier aspect de l'invention. D'autres aspects, buts et avantages de la présente invention 20 apparaîtront mieux à la lecture de la description détaillée suivante de formes de réalisation préférées de celle-ci, donnée à titre d'exemple non limitatif, et faite en référence aux dessins annexés sur lesquels : - la figure 1 représente une trame MPE-FEC selon le standard DVB-H ; 25 - les figures 2a et 2b illustrent la correction d'erreur à l'aide respectivement de la FEC intra-salve selon le standard et de la FEC inter-salves proposée par l'invention ; - les figures 3a-3c illustrent le codage d'une salve pour y associer la correction d'erreur FEC inter-salves; 30 - la figure 4 illustre la reconstruction d'une salve complètement perdue à l'aide de la correction d'erreur FEC inter-salves ; - la figure 5 représente un mode de réalisation possible d'un dispositif selon le second aspect de l'invention. L'invention a pour cadre un système de transmission dans lequel un flux de données comprend une pluralité de flux élémentaires (ES, selon la terminologie anglo-saxonne 'Elementary Stream') découpés temporellement pour être transmis sous la forme de salves. Un exemple préférentiel, mais non limitatif, d'un tel système est un système compatible avec le standard DVB-H. L'invention propose un mécanisme de protection contre des pertes dues à de longues interruptions/extinctions de la transmission au niveau du récepteur. A ce titre, l'invention est particulièrement adaptée, sans pour autant y être limitée, à une transmission par l'intermédiaire d'une liaison satellite. Selon un premier aspect, l'invention propose un procédé de protection contre l'erreur dans un système de transmission dans lequel un flux de données comprend une pluralité de flux élémentaires ES découpés temporellement pour être transmis sous la forme de salves, ledit procédé mettant en oeuvre une protection contre la perte totale ou partielle d'une ou plusieurs salves d'un flux élémentaire de données ES découpé temporellement. La protection est plus précisément assurée en réalisant un calcul de correction d'erreur directe inter-salves, c'est-à-dire un calcul de correction directe prenant en considération plusieurs salves d'un flux élémentaire ES. Cette correction de FEC inter-salves est associée à des salves du flux pour transmission vers le récepteur, de sorte qu'une ou plusieurs salves d'un même flux élémentaire qui auraient été sévèrement ou totalement dégradées lors de la transmission (c'est-à-dire reçues avec des erreurs résiduelles, non corrigées par la FEC intra-salve, ou encore non reçues en totalité au niveau du récepteur ; typiquement un terminal portable en situation de mobilité) peuvent être intégralement reconstituées à l'aide de la correction FEC inter-salves. 6 La correction selon l'invention permet ainsi d'étendre la protection des salves à des dégradations importantes ou a des pertes complètes de salves, là où cette protection était précédemment limitée à des pertes modérées à l'intérieur des salves par mise en oeuvre de la correction FEC intra-salve du standard. En référence à la figure 1, on rappelle brièvement ci-après le calcul de la correction `FEC intra-salve' préconisée par le standard DVB-H. Comme représenté sur la figure 1, une trame MPE-FEC est constituée sous la forme d'une matrice d'octets comprenant 255 colonnes et un nombre 1 o adaptable de lignes (R, avec un maximum de 1024). Les 191 premières colonnes de cette trame constituent le tableau de données d'application (ADT, acronyme de Application Data Table), les 64 dernières constituent le Tableau de Données Reed Solomon (RSDT, acronyme de Reed Solomon Data Table). Les tableaux ADT et RSDT 15 forment ensemble une matrice MPE-FEC. Les datagrammes d'une salve sont regroupés verticalement dans les C premières colonnes (C 7 informations vont permettre au récepteur d'une part de placer correctement les datagrammes IP reçus dans l'ADT du récepteur, et de localiser les portions de l'ADT à reconstituer en cas de perte ou d'erreur et, d'autre part, de réinsérer sans les transmettre des zéros dans les colonnes de droite de l'ADT lorsque le nombre C de colonnes est inférieur à 191. Les données contenues dans le tableau RSDT sont transmises en colonnes dans des sections MPE-FEC à raison d'une colonne par section, ces sections MPE-FEC ayant un format voisin de MPE mais un type différent. Les sections MPE-FEC d'une salve sont numérotées, ce numéro ainsi que le numéro de la dernière section étant mentionnés dans chaque trame MPE-FEC. Ces sections sont munies elles aussi d'un GRC. Ces informations vont permettre au récepteur de placer correctement les colonnes de FEC reçues dans le tableau RSDT associée à la salve. Cette correction, ici désignée par le terme de correction FEC intrasalve, permet de récupérer jusqu'à 64 colonnes perdues sur les 255 de la matrice MPE-FEC. L'efficacité de cette correction peut être diminuée en ne transmettant qu'une partie des colonnes du tableau RSDT (opération de poinçonnage). Cette efficacité peut au contraire être augmentée en ne remplissant pas complètement le tableau ADT, et en insérant dans ses dernières colonnes de droite des zéros non transmis. Ces mécanismes peuvent aussi être utilisés pour assurer une efficacité constante dans un contexte où la taille des salves varie dans le temps. Ceci est obtenu en assurant pour chaque salve un ratio constant entre le nombre de colonnes non nulles du tableau ADT et le nombre de colonnes du tableau RSDT effectivement transmises. On comprend donc que la correction FEC intra-salve permet de récupérer des données perdues à l'intérieur d'une salve. 3o Cette correction d'erreur est illustrée par la figure 2a sur laquelle on a représenté différentes salves, chacune constituée des données ADT et des 8 données FEC de correction FEC intra-salve, ainsi que la correction d'erreurs - schématisée par un bloc Ec - susceptible d'être réalisée à l'aide de la correction FEC intra-salve pour des pertes à l'intérieur d'une salve. Un mode de réalisation préférentiel du procédé selon l'invention est décrit ci-après. Les paramètres utiles au procédé selon l'invention sont les suivants : û C: nombre maximum de colonnes du tableau ADT d'une salve - B : nombre de salves entrelacées utilisées pour le calcul de la correction d'erreur inter-salves ; û S : nombre de salves utilisées pour disperser la correction d'erreur inter-salves ; - Fo : nombre de colonnes utilisées pour le calcul de la correction d'erreur inter-salves. Les étapes du mode de réalisation préférentiel sont décrites dans ce qui suit, pour un cas simpliste où C=10, B=5, Fo=6 et S=3. Afin de réaliser le calcul de la correction d'erreur directe inter-salves, les données d'une pluralité B+S de salves d'un flux élémentaire ES sont entrelacées, et un traitement de correction d'erreur directe FEC est appliqué aux salves entrelacées. A titre d'initialisation, B+S matrices M(0), ..., M(B+S-1), de taille 191 xR sont constituées et remplies de zéros. B+S matrices MF(0), ., MF(B+S-1), de taille 64*R sont également constituées, et initialement remplies de zéros. Ces matrices permettront d'accueillir la FEC (inter-salves) associée aux matrices de données M(0), ..., M(B+S-1). En d'autres termes B+S matrices de type MPE-FEC sont constituées, chacune disposant d'une matrice M(i) en tant que tableau ADT et d'une matrice MF(i) en tant que tableau RSDT. On notera qu'il y a autant de jeux de matrices (M, MF) qu'il y a de flux élémentaires en cours de transmission. On relèvera en particulier que l'on peut retenir des paramètres différents pour les différents flux élémentaires...DTD: 9 Au niveau de l'émetteur, le procédé met en oeuvre les étapes suivantes pour chaque salve de numéro i d'un flux élémentaire donné. 1. Etape 1 : envoi de la salve de numéro i contenant les données de cette salve, optionnellement la FEC intra-salve, et une partie de la FEC inter-salves calculée lors du traitement des salves précédentes du même flux élémentaire 2. Etape 2 : Entrelacement (avec décalage des colonnes de l'ADT) de la salve émise dans les tableaux ADT (matrices M(m), m variant de 0 à B+S-1) des matrices de type MPE-FEC. 3. Etape 3: Calcul de la FEC pour la matrice M(m) (m = (i)[B+S]) Dans ce qui suit [X] désigne modulo X 4. i= i+1 et retour en 1 Ces différentes étapes sont schématisées sur les figures 3a-3c. Sur la figure 3a, on a représenté la salve i=8 présentant les données a- j. Les données de cette salve sont entrelacées comme cela est schématisé par les flèches sur la figure 3a dans les tableaux ADT (matrices M(m)) de B=5 matrices de type MPE-FEC. On relèvera que sur la figure 3a, comme sur la figure 4 qui sera discutée par la suite, les données des différentes matrices M(m) sont représentées par des lettres, tandis que les données de FEC inter-salves calculées pour chacune des matrices M(m) sont représentées par des numéros. La figure 3b représente la matrice de type MPE-FEC contenant les données de la matrice M(0) et les données de FEC calculée pour cette matrice M(0) (ces données étant regroupées dans une matrice MF(0) comme détaillé ci-après). La figure 3c représente l'émission de la salve i=8, comprenant outre les données d'origine a-j DATA et les données iFEC de FEC intra-salve, F0=6 colonnes OFEC de FEC inter-salves (m.k désignant la colonne k de la matrice MF(m)). Les différentes étapes mises en oeuvre à l'émission sont détaillées ci-après. • Etape 1: Transmission de la salve / la salve n i est préparée comme une salve DVB-H standard. A ce titre, elle peut notamment incorporer une FEC intra-salve standard. / La salve est envoyée sans délai : o La salve DVB-H est envoyée telle quelle, sans changement par rapport au standard (en incorporant de manière optionnelle des sections MPE-FEC relatives à la FEC intra-salve). o Des sections MPE-OFEC relatives à la correction inter-salves sont ajoutées à la salve n i comme suit. On réalise de la sorte une dispersion de la correction calculée sur une pluralité de salves du flux élémentaire, en formant de la sorte une trame MPE OFEC pour chaque salve. ^ Pour k dans 0,... Fo-1, un paquet Outer FEC OFEC(m,k) est calculé de la manière suivante: • On définit m = ((i-1) - k[S])[B]. • On définit OFEC(m,k) = colonne k de MF(m) Le paquet Outer FEC OFEC(m,0) est envoyée au début de la salve, les autres paquets Outer FEC sont envoyées à la fin de la salve. On comprend donc que les données de la salve sont transmises telles quelles dans des salves protégées par la correction FEC inter-salves par envoi des paquets Outer FEC en début et fin de salve. On a choisi, pour les colonnes de FEC inter-salves transmises dans une salve protégée, des colonnes parmi les Fo colonnes de la pluralité B+S des matrices MF. On forme ainsi une trame MPE OFEC qui peut être encapsulée en sections : des sections MPE 20 25 30 11 relatives aux données de la salve, d'éventuelles sections MPE-FEC en cas de mise en oeuvre de la correction intra-salve, et des sections MPE-OFEC relatives à la correction inter-salves. Les sections MPE-OFEC correspondent à une table différente des sections MPE et des sections MPE-FEC. Les valeurs de i et de k sont signalées à l'intérieur de la section. Un en-tête est ajouté à chaque section MPE-OFEC, cet en-tête présentant des informations telles qu'un récepteur du flux élémentaire a connaissance des paramètres de mise en oeuvre de la correction FEC inter-salves, notamment des paramètres B et S. La salve i ainsi envoyée est composée de Fo (Fo=6 dans l'exemple) colonnes de FEC inter-salves, de C colonnes de données (C=10 dans l'exemple), et de P colonnes de FEC intra salve (P=0 dans l'exemple) La salve i=0 selon l'exemple a ainsi le format suivant: F7-0 0-a 0-b 0-c 0-d 0-e 0-f 0-g 0-h 0-i 0-j F-1 F6-1 F5-2 F7-3 F6-4F5-5 Où : F7-0 est la colonne OFEC 0 de la RSDT MF(7) 0-a, 0-b, 0-c, 0-d.. 0-j, sont les n premières colonnes non nulles de l'ADT de la salve 0 , ici n=10 F-I représente les P colonnes de FEC intra salve optionnelle, qui par souci de simplification, ne seront plus mentionnées dans la suite F6-1, F5-2, F7-3, F6-4, F5-5 représentent respectivement les colonnes OFEC 1, 2, 3, 4, 5 des matrices RSDT MF(6), MF(5), MF(7), MF(6), MF(5) Les salves i=1,2,3,4 et 5 ont quant à elle le format suivant: Salve 1: FO-O - DATA - F7-1 F6-2 FO-3 F7-4 F6-5 Salve 2: FI-O - DATA - FO-1 F7-2 F1-3 FO-4 F7-5 Salve 3: F2-0 - DATA - F1-1 FO-2 F2-3 F1-4 FO-5 12 Salve 4: F3-0 - DATA - F2-1 F1-2 F3-3 F2-4 F1-5 Salve 5: F4-0 - DATA -F3-1 F2-2 F4-3 F3-4 F2-5 où DATA désigne les colonnes de données. On relèvera que les données d'une salve sont transmises sans délai et qu'elles contiennent les informations standard DVBH, accompagnées d'informations supplémentaires (OFEC). Il en résulte qu'un terminal recevant un tel flux, et n'ayant pas besoin des informations OFEC ou ne sachant pas les traiter, aura un comportement et des performances comparables à ceux qu'il aurait eus s'il avait reçu un flux DVB-H normal. Ces comportement et performances s'entendent vis à vis de sujets comme le retard à l'affichage ou le temps de changement de chaines (zapping). On relèvera par ailleurs qu'au niveau de leur transmission les informations OFEC sont dispersées sur plusieurs salves, limitant ainsi les effets liés à la perte de transmission sur de longes périodes Dans ce qui précède, on a considéré une transmission sans délai des données d'une salve. La salve de numéro i contient effectivement les données de cette salve Data-i accompagnées de données supplémentaires OFEC-i relatives à des informations de FEC inter-salves OFEC qui ont été associées à cette salve. Ainsi, on a considéré Salve i = (Data-i, OFEC-i). L'invention n'est toutefois pas limitée à une telle transmission sans délai, l'émission des salves pouvant être retardée. Selon une première variante de réalisation, il est proposé de retarder l'émission des paquets de données. Dans le cadre de cette variante, les paquets OFEC-i sont transmis comme précédemment décrit dans la salve numéro i, tandis que les paquets de données Data-i de la salve numéro i sont retardés et transmis X salves plus tard, dans la salve numéro X+i. Ainsi, on propose dans cette variante que la salve numéro i soit émise selon : Salve i = (Data-[i-X], OFEC-i). On comprend que : Si X=O, cette variante est identique à ce qui a été décrit précédemment ; - Si X Col(o), Col(2)->Col(1), ..., Col(C-1) -> Col(C-2) ^ La colonne de données n j est copié à la colonne C-1 de la matrice M(m) ; si la salve contient moins de C colonnes de données, les données copiées sont remplies de zéros. Dans l'exemple, pour i=0, les 5+3=8 matrices M(0) ... M(7) seront 1 o remplies de la façon suivante (les colonnes vides en fin de matrice ne sont pas indiquées par souci de lisibilité): M(0)=0-a 0-f M(1)=O-b 0-g M(2)=O-c 0-h 15 M(3)=0-d 0-i M(4)=0-e 0-j M(5)= Vide M(6)= Vide M(7)= Vide 20 Pour i=1 le contenu des matrices M( m ) sera le suivant: M(0)=0-a 0-f M(1)=0-b 0-g 1-a 1-f M(2)=O-c 0-h 1-b 1-g M(3)=0-d 0-i 1-c 1-h 25 M(4)=0-e 0-j 1-d 1-i M(5)=1e 1-j M(6)= Vide M(7)=Vide 3o On relèvera que le mécanisme de calcul et de transmission de la FEC inter-salves est glissant et ne nécessite donc pas une synchronisation forte entre l'émetteur et les récepteurs. Ce mécanisme autorise en particulier un calcul de la FEC inter-salves progressif; ce calcul étant en outre limité à une trame MPE-FEC à chaque salve. Ce mécanisme se distingue donc de systèmes opérant sur des blocs de B+S salves, qui nécessiteraient toutes les B+S salves d'importants temps de calcul. On relèvera en outre que le mécanisme d'entrelacement conduit, lorsque C est multiple de B, à placer PB = C/B colonnes d'une salve par matrice M(m) (PB=10/5=2 dans l'exemple) et que chaque matrice M(m) contient alors dans ce cas une fraction (1/B) des B salves parmi les B+S dernières salves transmises. Toutefois, le mécanisme d'entrelacement ne nécessite pas d'avoir C multiple de B. • Etape 3: Calcul de la FEC inter-salve sur la matrice M(m) : m=i[B+S] La correction FEC inter-salves est calculée sur une fenêtre glissante de B+S salves entrelacées. Les Fo colonnes de FEC sont calculées pour la matrice M(i[B+S]) et stockées dans la matrice MF(i[B+S]). En d'autres termes, on a réalisé le calcul du tableau RSDT (matrice MF) pour l'une des matrices du type MPE- FEC (dont le tableau ADT est la matrice M correspondante dans laquelle plusieurs salves sont entrelacées). On relèvera à ce stade que le calcul de FEC mis en oeuvre pour chacune des matrices entrelacées M(i) peut utiliser, sans que cela ne soit pour autant limitatif (d'autres codes correcteurs d'erreur pouvant effectivement être mis en oeuvre), le même code correcteur d'erreur que celui préconisé dans le standard DVB-H pour le calcul de la FEC intra-salve (Code Reed Solomon 191, 255, 64 avec symboles de 8 bits). On relèvera également, que le calcul de FEC est un calcul inter-salves, dans la mesure où chaque FEC (matrice MF(i)) est calculée à partir de 3o données (matrices M(i)) comprenant des données de plusieurs salves entrelacées. 10 16 On notera également que les données d'une salve sont indépendantes de la FEC inter-salves transmise avec cette même salve, dans la mesure où ces données seront utilisées pour calculer la FEC inter-salves des B+S salves suivantes. Le passage ci-après est un exemple possible de structure pour une section MPE-OFEC. Cet exemple est donné par comparaison avec la structure d'une section MPE-FEC prévue dans le standard. Section MPE-FEC : 5eea Wwàbevofbfts 1denfiner MPE-FECEectian i? tableid ,uirnsU ae.:,tionsyntamindizatr. k i__ privateindiator sef resa-rved 2 bsPA se:,tienlEngth 12 paddirig_co.hums res`rved. for future gis: bslM resrved 'T.. b..9bf res.Ered_forfuturuse e. s1bf currentnextindicator b slfse2tion numbr uelsbf lastseztionnumt,Er g uh-nst reld_t nE _pArameté,rE C for( i=O: rsdatabyte g CEC uhsbf Section MPE-OFEC : SYNIAM. numbr bits I =tom ier 12 i ; Les paramètres temps réel leur mapping en champ d'adresse MAC sont: Number b ! I fiz tielta2t 12 uimsbf t e. : loslbf _ o : r bp:.Lbf ess : s 1 2 3 4 5 7 D,plta-t C a 2mù _ 3 c 3 t :DE, MAC 2 Pù ts1. c1 La sémantique ici proposée est la suivant : section_number: Ce champ de 8 bits donne le numéro de la section. Le 'section_number' de la première section portant les données RS d'une trame MPE-OFEC est OXOO. Le 'section_number' est incrémenté de 1 avec chaque section additionnelle portant les données RS de la trame MPE-OFEC concernée (ce champ porte ainsi le paramètre k). / last section number: Ce champ indique le numéro de la dernière section qui est utilisée pour porter les données RS de la trame courante MPE-OFEC (ce champ porte ainsi le paramètre Fo). / interleaved bursts: Ce champ donne le nombre B de salves qui sont entrelacées pour le calcul de la FEC inter-salves / outer-fec spread: Ce champ donne le nombre S de salves transmises sur lesquelles la FEC inter-salves est dispersée. / burst number: Ce champ porte un numéro de salve (sous la forme d'un compteur continu) variant entre 0 et N-1, où N est le plus grand multiple de B inférieur à 256 (ce champ porte ainsi le paramètre i). / Prev-Burst Size: Ce champ de 18 bit porte la taille effective (seulement tableau ADT) de la salve (i-k-1). On décrit ci-après la réception des sections d'une trame MPE-OFEC, ainsi que le mécanisme de correction mis en oeuvre en cas de perte totale ou partielle d'une ou plusieurs salves. A la réception des sections d'une trame MPE-OFEC, les sections MPE sont entrelacées dans les tableaux ADT (matrices RM ci-après) d'une pluralité B+S de matrices du type MPE-FEC, et les sections MPE-OFEC sont placées dans les Tableaux de Données RS (matrices RF ci-après) desdites matrices du type MPE-FEC. En cas de perte totale ou partielle d'une salve, les sections MPE d'une salve perdue sont recomposées à partir des données des Tableaux de Données RS dans lesquels les sections MPE-OFEC ont été placées. Un mode de réalisation possible du procédé pour le décodage est le suivant. • Initialisation : A titre d'initialisation, le décodeur a besoin de connaître les paramètres B et S. Le paramètre Fo n'a pas besoin d'être connu par avance. Le décodeur alloue B+S matrices RM(0), ..., RM(B+S-1), de taille CxR, remplies de zéros. Il alloue également B+S matrices de FEC RF(0), ..., RF(B+S-1) afin d'accueillir la FEC des matrices de données RM(0), ... RM(B+S-1). Ces 1 o matrices de FEC ont une taille de 64xR, et sont remplies de zéros. Le dernier numéro de salve Y corrigée et transmise à la couche supérieure est initialisé à partir du premier numéro de salve reçu P : Y = P ù 15 • Etape 1 : Replacer les sections reçues dans la séquence de salve / A la réception d'une section MPE/MPE-FEC, le décodeur détermine son numéro de salve : Soit ip/tp/dtp respectivement le numéro de salve, l'heure de réception et le champ delta-t de la précédente section MPEOFEC reçue après cette section MPE Soit in/tn/dtn respectivement le numéro de salve et l'heure de réception et le champ delta-t de la prochaine section MPE-OFEC Si (ip==in) burst_number = i=ip=in Sinon, le résultat peut être basé sur ce qui suit 25 o SI tp+dtp tn ALORS i=in o SINON SI tp+dtp>t ET t+dt 20 / On complète la séquence de salves reçues jusqu'au numéro de salve en cours de réception, avec des pseudo-salves représentant les salves totalement perdues, et on marque les colonnes perdues des salves partiellement reçues comme étant manquantes. / Le champ Prev-Burst Size des paquets de MPE-OFEC permet de connaître la taille des salves précédentes. Cette information est exploitée pour marquer les données au-delà de la fin de la salve comme étant non-pas manquante mais valant zéro. • Etape 3 : Exploiter la FEC intra-salve / On exploite la FEC intra-salve des salves reçue en exploitant les mécanismes MPE-FEC standard. Celle-ci n'est bien sur pas exploitable pour les salves manquantes (pseudo-salves). Pour chacune des nouvelles salves ou pseudo-salve reçue : • Etape 4 : Placer la FEC inter-salve dans les matrices RF Pour toutes les sections de MPE-OFEC (reçues ou ayant dû être reçues), d'indice (de section_number ) k=O..Fo-1 : • m=((i-1)-k[S])[B+S] • Le (pseudo-)paquet de MPE-OFEC est inséré dans la matrice RF(m) en position k • Etape 5 : Exploiter la FEC inter-salve Pour k=O,..S-1 ^ m=((i-1)-k[S])[B+S] ^ Corriger les pertes présentes dans la matrice RM(m) avec la FEC inter-salve présente dans la matrice RF(m) • Etape 6 : Faire remonter les salves corrigées à la couche supérieure 21 Si la salve Y+1 est complète, faire remonter cette salve à la couche supérieure. Alors Y=Y+1. Dans ce cas (cas A ordonné différé ) pour lequel tant qu'une trame est en cours de reconstitution et toujours reconstituable, on bloque les salves ultérieures pour remettre le tout dans l'ordre mais de façon différée. On prévoit également le cas B immédiat désordonné pour lequel les salves correctement reçues sont remontées sans délai à la couche supérieure , seuls les datagrammes obtenus par resconstitution d'une salve arrivant dans la couche supérieure de façon différée et dans le désordre. Sinon, si Y=i-B-S, il ne sera plus possible de corriger la salve Y. Alors Y=Y+1 15 • Etape 7 : Insertion des données dans les matrices RM û Pour i=O,...,C-1 • m=(i+j[B])[B+S] ^ Les colonnes de la matrice RM(m) sont décalées vers la gauche 20 ^ La colonne i de la salve est insérée dans la matrice RM(m) en colonne C-1 On décrit ci-après la réception de sept salves d'indice i=9 à i=15, avec une perte de l'intégralité des données de la salve de numéro 10 (i=10). Ces étapes sont illustrées par le schéma de la figure 4 sur lequel on 25 considère la perte de la salve i=10, ce schéma permettant de visualiser les matrices utilisées pour de reconstruire les données a-j de cette salve. Ainsi, on exploite des colonnes de FEC inter-salves de la salve 11 (bloc 03 sur la figure) pour reconstruire les colonnes de données af de la salve 10. De même, on exploite des colonnes de FEC inter-salves de la salve 12 pour 30 reconstruire les colonnes de données bg de la salve 10. Et cela, ainsi de 10 suite jusqu'à l'exploitation de colonnes de FEC inter-salves de la salve 15 pour reconstruire les colonnes de données ej de la salve 10. Comme cela est apparent sur la figure 4, on comprend donc que les données de la salve 10 intégralement perdue peuvent être reconstituées à l'aide des colonnes de FEC inter-salves associées aux salves 11 à 15. En se plaçant à la réception de la salve 11, le récepteur ayant reçu sans erreur les trames 0 à 9 va plus précisément effectuer les étapes suivantes. Etape 1 : Réception de la trame 11, connue par son numéro dans l'en- 1 o tête MPE des trames OFEC reçues et détection de la perte de la trame 10, la dernière trame reçue étant la trame numéro 9. Etape 2 : Une pseudo salve (i=10) est générée, toutes ses colonnes de données et de FEC sont marquées comme étant manquantes (L): Pseudo Salve 10: F1-0(L) - DATA(L) F0-1(L) F7-2(L) F1-3(L) F0-4(L) F7-5(L) 15 Etape 3 : La FEC intra-salve ne peut être calculée pour la pseudo salve 10 totalement perdue, elle peut être calculée pour la trame 11 / Pour la pseudo salve 10 Etape 4 :cela conduit à marquer manquantes les colonnes RF1-0 RFO-1 RF7-2 RF1-3 RFO-4 RF7-5 20 Etape 5 : Cette étape est sans objet pour un salve totalement perdue Etape 6 : Cette étape est sans objet pour une salve totalement perdue Etape 7 : Les colonnes de la pseudo salve 10 sont marquées manquantes (L-10) dans les matrices RM: RM(0)=4-e 4-j 5-d 5-i 6-c 6-h 7-b 7-g 8-a 8-f RM(1)=5-e 5-j 6-d 6-i 7-c 7-h 8-b 8-g 9-a 9-f RM(2)=6-e 6-j 7-d 7-i 8-c 8-h 9-b 9-g L-10 L-10 RM(3)=3-a 3-f 7-e 7-j 8-d 8-i 9-c 9-h L-10 L-10 RM(4)=3-b 3-g 4-a 4-f 8-e 8-j 9-d 9-i L-10 L-10 RM(5)=3-c 3-h 4-b 4-g 5-a 5-f 9-e 9-j L-10 L-10 RM(6)=3-d 3-i 4-c 4-h 5-b 5-g 6-a 6-f L-10 L-10 RM(7)=3-e 3-j 4-d 4-i 5-c 5-h 6-b 6-g 7-a 7-f / Pour la salve 11 Cette salve contient : 25 30 F2-0 11-a 11-b 11-c 11-d 11-e 11-f 11-g 11-h 11-i 11-j F1-1 F0-2 F2-3 F1-4 F0-5 Etape 4 : Les colonnes: F2-0 F1-1 F0-2 F2-3 F1-4 F0-5 des matrices RF(2),RF(1),RF(0) sont remplies avec les valeurs reçues dans la salve 11. A ce stade, les colonnes de FEC transmises ont été calculées à partir 5 des contenus de matrices M indiqués comme suit : F2-0 et F2-3 à partir de M(2) contenant (6-e:6j:7-d:7-i:8-c:8-h:9-b:9-g:10-a:10-f:) F1-1 et F1-4 à partir de M(1) contenant (5-e:5-j:6-d:6-i:7-c:7-h:8-b:8-g:9-a:9-f:) F0-2 et F0-5 à partir de M(0) contenant(4-e:4-j:5-d:5-i:6-c:6-h:7-b:7-g:8-a:8-f:) Etape 5 : L'exploitation des matrices RM(2) RF(2) pour k=0 et k=3 1 o permet de retrouver les colonnes 10-a et 10-f de la salve 10 en effet : RM(2)=6-e 6-j 7-d 7-i 8-c 8-h 9-b 9-g L-10 L-10 et RF2-0 calculé à partir de (6-e 6-j 7-d 7-i 8-c 8-h 9-b 9-g 10-a 10-f ) RF2-1 calculé à partir de (0-c 0h 1-b 1-g 2-a 2-f ) 15 RF2-2 calculé à apartir de (0-c 0-h 1-b 1-g 2-a 2-f ) RF2-3 calculé à partir de (6-e 6-j 7-d 7-i 8-c 8-h 9-b 9-g 10-a 10-f ) RF2-4 calculé à apartir de (0-c 0-h 1-b 1-g 2-a 2-f ) RF2-5 calculé à partir de (0-c 0-h 1-b 1-g 2-a 2-f ) Etape 6 : On décrit ici le cas A (remise ordonnée et différée). Dans ce 20 cas aucune trame n'est remontée à la couche supérieure pour i=11, 12, 13, 14. En effet la réception des salves de numéro i =12, 13, 14, 15 permettra de reconstituer respectivement les colonnes 10-b 10-g, 10-c 10-h, 10-d 10-i, 10- e 10-j. La salve 10 sera complètement reconstituée dès réception de la trame 15 et les divers datagrammes IP contenus dans son ADT seront remontés à 25 la couche supérieure, ainsi que les datagrammes obtenus par traitement des salves 12,13,14,15 et contenus dans les matrices RM. Etape 7 : Les données de la salve 11 sont entrelacées dans les matrices RM du récepteur qui contiendront: 30 RM(0) =4-e 4-j 5-d 5-i 6-c 6-h 7-b 7-g 8-a 8-f RM(1) =5- e 5-j 6-d 6-i 7-c 7-h 8-b 8-g 9-a 9-f RM(2)=6-e 6-j 7-d 7-i 8-c 8-h 9-b 9-g L-10 L-10 RM(3)=7-e 7-j 8-d 8-i 9-c 9-h L-10 L-10 11-a 11-f RM(4)=4-a 4-f 8-e 8-j 9-d 9-i L-10 L-10 11-b 11-g RM(5) =4-b 4-g 5-a 5-f 9-e 9-j L-10 L-10 11-c 11-h RM(6) =4-c 4-h 5-b 5-g 6-a 6-f L-10 L-10 11-d 11-i RM(7) =4-d 4-i 5-c 5-h 6-b 6-g 7-a 7-f 11-e 11-j On aura compris que le procédé selon le premier aspect de l'invention permet d'étendre le standard DVB-H, en proposant la mise en oeuvre d'une correction FEC inter-salves rendant possible la récupération de salves entières. Cette correction d'erreur est illustrée par la figure 2b, donnée à titre 1 o comparatif avec la figure 2a, sur laquelle on a représenté différentes salves, chacune constituée des données ADT et des données OFEC de correction FEC inter-salves, ainsi que la correction d'erreurs schématisée par un bloc Ec - susceptible d'être réalisée à l'aide de la correction FEC inter-salves pour la perte totale ou partielle d'une ou plusieurs salves. Sur la figure 2b, la 15 correction d'erreur Ec permet ainsi de récupérer les données de salves S1 et S3 partiellement perdues, et les données d'une salve S2 totalement perdue. Par comparaison avec la figure 2a, on comprend que la correction inter-salves selon l'invention permet d'étendre la correction d'erreur à des données perdues lors de longues périodes d'interruptions/extinctions. 20 Ce procédé présente en outre les avantages suivants : le procédé proposé est compatible avec le standard existant, en ce qu'une pile DVB-H est apte à comprendre le flux de transport TS (selon l'acronyme Transport Stream) résultant de la mise en oeuvre du procédé selon l'invention. 25 le procédé proposé conserve les possibilités d'économie de batteries apportées par le DVBH. En effet les dispersions dans le temps opérées sur les données afin de calculer la FEC inter-salves et de la diffuser, se font exclusivement sur les occurrences successives des salves d'un service donné et non sur des données consécutives dans 30 le TS (Transport Stream). Le terminal peut mettre son circuit radio hors tension entre les occurrences des salves 25 aucun retard n'est apporté à l'émission, et les terminaux recevant dans de bonnes conditions n'ont aucun retard supplémentaire dans la réception, ils conserveront des temps de changement de chaine (zapping) faibles. les terminaux placés dans de mauvaises conditions de réception doivent attendre l'arrivée des salves suivantes pour corriger une salve sévèrement ou totalement erronée. Il est à noter que dans ce cas , le terminal pourra soit figer l'image et attendre la correction pour reprendre l'affichage là ou il s'était interrompu (analogue au time shifting), soit, de façon préventive, afficher moins vite (par exemple 20 images par seconde) au démarrage d'un service pendant un temps suffisant pour accumuler dans sa mémoire assez d'informations pour reconstituer cette fois immédiatement une salve perdue. les paramètres du procédé proposé peuvent être ajustés pour s'adapter aux caractéristiques désirées ^ la gamme temporelle d'interdépendance entre les salves (B+S) peut être ajustée ; ^ la quantité de correction d'erreur directe (c'est à dire sa robustesse à la perte de signal) peut être ajustée ; ^ les paramètres peuvent être choisis de manière à ajuster la taille maximale de la mémoire dans le terminal récepteur. ^ la FEC inter-salves peut utiliser le même code correcteur d'erreur (Reed Solomon (191,255)) et s=8 que celui utilisé pour la FEC intra-salve, et est en particulier susceptible de pouvoir réutiliser le hardware présent dans les récepteurs compatibles DVBH. ^ pour un même niveau de FEC, la puissance de calcul nécessaire pour la FEC inter-salves est la même que celle nécessaire pour la FEC intra-salve. ^ la FEC inter-salves peut agir en complément de la FEC intrasalve, ou bien en remplacement total ou partiel. ^ la FEC inter-salves peut corriger des salves complètes ou des portions de salves. L'invention n'est bien entendu pas limitée au procédé décrit précédemment, mais s'étend à un dispositif électronique comprenant des moyens logiciels et/ou matériels configurés pour mettre en oeuvre ce procédé, tant au niveau de l'émission (pour réaliser le codage de la FEC inter-salves) qu'au niveau de la réception (pour réaliser le décodage de la 1 o FEC inter-salves et la récupération de la ou des salves partiellement ou totalement perdues). On a représenté de manière schématique sur la figure 5 un dispositif 1 apte à mettre en oeuvre le codage de la FEC inter-salves. Ce dispositif 1 reprend typiquement les fonctions d'un encapsulateur IP (IP Encapsulator) 15 recevant des flux IP, les découpant temporellement, calculant la protection FEC intra-salve, encapsulant les paquets IP et les incrustant dans le flux de transport. Il comporte également des moyens de calcul de la protection inter-salves, mettant en oeuvre des moyens 11 d'entrelacement de salves d'un flux élémentaire, des moyens 12 de calcul de FEC pour les salves entrelacées, 20 des moyens 13 de dispersion de la FEC inter-salves ainsi calculée sur des salves du flux élémentaire pour former une trame MPE-OFEC, et des moyens 14 d'encapsulation de cette trame en sections MPE-OFEC. On notera que le dispositif 1 pour le calcul de la FEC inter-salves peut également être intégré au sein d'appareils de la chaine de distribution DVB-H 25 (multiplexeur, adaptateur réseau de la chaine SFN (network adapters), ou dans des appareils tels que le iSplicer de la société UDcast, notamment dans le cas où le dispositif calcule la FEC inter-salves et l'insère en addition ou en remplacement de la FEC intra-salve. On a également représenté de manière schématique sur la figure 5 un 30 dispositif 2 recevant un flux de transport TS ayant transité sur la liaison comprenant le réseau 3, et comprenant outre les fonctions classiques d'un désencapsulateur (récupération des datagrammes IP et correction contre les pertes intra-salve à partir des sections MPE et MPE-FEC), des moyens de correction contre la perte d'une ou plusieurs salves entières, ces moyens comprenant des moyens 21 d'entrelacement des trames MPE-OFEC, des moyens 22 de mise en oeuvre de la correction sur les trames entrelacées pour récupérer la ou les salves perdues, ainsi que des moyens 23 de désentrelacement des trames entrelacées corrigées contre les pertes. REVENDICATIONS 1. Procédé de protection contre l'erreur dans un système de transmission dans lequel un flux de données comprend une pluralité de flux élémentaires (ES) découpés temporellement pour être transmis sous la forme de salves, caractérisé en ce qu'il met en oeuvre, pour un flux élémentaire, un calcul de correction d'erreur directe inter-salves, et une association de la correction calculée à des salves du flux pour assurer 1 o une protection contre la perte totale ou partielle d'une ou plusieurs salves du flux. 2. Procédé selon la revendication 1, dans lequel les données d'une salve sont transmises sans délai, accompagnées de données supplémentaires 15 relatives à des informations de correction qui ont été associées à cette salve. 3. Procédé selon la revendication 1, dans lequel l'émission des salves est retardée, en retardant l'émission des données d'une salve pour 20 transmettre lesdites données dans une salve ultérieure, ou en retardant l'émission de données supplémentaires relatives à des informations de correction qui ont été associées à cette salve pour transmettre lesdites données supplémentaires dans une salve ultérieure. 25 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que les données d'une salve sont transmises telles quelles dans des salves protégées par la correction d'erreur directe inter-salves. 5. Procédé selon l'une des revendications précédente, caractérisé en ce 30 que les données d'une pluralité de salves d'un flux élémentaire sont entrelacées, et en ce qu'un traitement de correction d'erreur directe (FEC) 29 est appliqué aux salves entrelacées pour calculer la correction d'erreur directe inter-salves. 6. Procédé selon la revendication précédente, caractérisé en ce que la correction d'erreur directe inter-salves est calculée sur une fenêtre glissante de B+S salves entrelacées. 7. Procédé selon l'une des deux revendications précédentes, caractérisé en ce que le traitement de correction d'erreur directe (FEC) met en oeuvre un 1 o calcul de codes correcteurs d'erreurs Reed-Solomon. 8. Procédé selon l'une des trois revendications précédentes, caractérisé en ce que la correction calculée est dispersée sur une pluralité S de salves du flux élémentaire, de sorte à former une trame dite trame MPE-OFEC 15 pour chaque salve. 9. Procédé selon la revendication précédente, caractérisé en ce qu'une trame MPE-OFEC est encapsulée en sections, lesdites sections comprenant des sections MPE relatives aux données de la salve et des 20 sections MPE-OFEC relatives à la correction inter-salves. 10. Procédé selon la revendication précédente, caractérisé en ce qu'il comporte également l'introduction dans chaque section MPE-OFEC d'un en-tête présentant des informations telles qu'un récepteur du flux 25 élémentaire a connaissance des paramètres de mise en oeuvre de la correction inter-salves. 11. Procédé selon l'une des revendications précédentes caractérisé en ce qu'il met également en oeuvre une protection contre la perte de données 3o à l'intérieur d'une salve, ladite protection étant assurée en calculant une correction d'erreur directe intra-salve. 12. Procédé selon la revendication 5, caractérisé en ce que l'entrelacement consiste à entrelacer chaque salve d'une pluralité B+S de salves du flux élémentaire (ES) dans des Tableaux de Données d'Application (ADT) d'une pluralité B de matrices prises parmi une pluralité B+S de matrices du type MPE-FEC. 13. Procédé selon la revendication précédente, caractérisé en ce que le calcul d'erreur directe appliqué aux salves entrelacées consiste à calculer 1 o un Tableau de Données RS (RSDT) pour chacune des matrices du type MPE-FEC, à raison d'une matrice calculée par salve émise. 14. Procédé selon la revendication 8, prise en combinaison avec la revendication 13, caractérisé en ce que la dispersion de la correction 15 calculée consiste à transmettre des colonnes de FEC inter-salves dans une salve, lesdites colonnes étant choisies parmi les Fo colonnes d'une pluralité B+S desdits Tableaux de Données RS (RSDT). 15. Procédé selon la revendication 10, prise en combinaison avec les 20 revendications 11 à 14, caractérisé en ce les informations d'en tête comprennent l'indication du nombre B de salves qui sont entrelacées pour calculer la correction inter-salves, ainsi que l'indication du nombre S de salves sur lesquelles la correction inter-salves calculée est dispersée. 25 16.Procédé selon la revendication précédente, caractérisé en ce que, à la réception des sections d'une trame MPE-OFEC, les sections MPE sont entrelacées dans les Tableaux de Données d'Application (ADT) d'une pluralité B+S de matrice du type MPE-FEC, et les sections MPE-OFEC sont placées dans les Tableaux de Données RS desdites matrices du 30 type MPE-FEC, et en ce qu'en cas de perte totale ou partielle d'une salve, les sections MPE de ladite salve perdue sont recomposées à partirdes données des Tableaux de Données RS dans lesquels les sections MPE-OFEC ont été placées. 17. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le système de transmission est un système compatible DVB-H. 18. Dispositif comprenant des moyens logiciels et/ou matériels configurés pour mettre en oeuvre le procédé selon l'une quelconque des 1 o revendications précédentes.