Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR CORRECTING LOW-LATENCY ERRORS FOR RETRIEVING DATA PACKETS
Document Type and Number:
WIPO Patent Application WO/2018/115775
Kind Code:
A1
Abstract:
The invention relates to a method for transmitting data, comprising the steps of: encoding data to be transmitted in the form of source symbols (S) grouped into a data block (DB), distributing the source symbols of the data block among sub-blocks (SB), calculating for each sub-block a respective repair symbol (R1-R9) by means of a linear combination of source symbols of the sub-block, and transmitting the data block in a stream of data blocks, by successively transmitting each sub-block of the data block, each sub-block being transmitted by transmission of the source symbols of the sub-block, followed by the repair symbol of the sub-block.

Inventors:
TRAN THAI TUAN (FR)
BURDINAT CHRISTOPHE (FR)
THIENOT CÉDRIC (FR)
Application Number:
PCT/FR2017/053795
Publication Date:
June 28, 2018
Filing Date:
December 21, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
EXPWAY (FR)
International Classes:
H03M13/37; H03M13/23; H03M13/35
Foreign References:
US7930617B12011-04-19
Other References:
KAZUHISA MATSUZONO ET AL: "Structured random linear codes (SRLC): Bridging the gap between block and convolutional codes", 2014 IEEE GLOBAL COMMUNICATIONS CONFERENCE, December 2014 (2014-12-01), pages 1211 - 1217, XP055408141, ISBN: 978-1-4799-3512-3, DOI: 10.1109/GLOCOM.2014.7036974
ZHENGYI LUO ET AL: "Optimized nested protection for video Region of Interest with Raptor codes", VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP), 2012 IEEE, IEEE, 27 November 2012 (2012-11-27), pages 1 - 6, XP032309180, ISBN: 978-1-4673-4405-0, DOI: 10.1109/VCIP.2012.6410766
KHAN SHERAZ ALI ET AL: "Protocols and Mechanisms to Recover Failed Packets in Wireless Networks: History and Evolution", IEEE ACCESS, vol. 4, 20 July 2016 (2016-07-20), pages 4207 - 4224, XP011620953, DOI: 10.1109/ACCESS.2016.2593605
Attorney, Agent or Firm:
DE ROQUEMAUREL, Bruno et al. (FR)
Download PDF:
Claims:
REVENDICATIONS

1. Procédé de transmission de données, comprenant des étapes consistant à : encoder des données à transmettre sous la forme de symboles source (S) regroupés en blocs de données (DB),

attribuer à chaque bloc de données un nombre de symboles de réparation (R1-R9), et pour chaque bloc de données :

répartir les symboles source du bloc de données dans des sous-blocs (SB), le nombre de sous-blocs étant égal au nombre de symboles de réparation attribués au bloc de données,

attribuer un symbole de réparation à chaque sous-bloc du bloc de données, calculer le symbole de réparation de chaque sous-bloc du bloc de données par une combinaison linéaire de symboles source du sous-bloc et des symboles sources de sous-blocs précédents dans le bloc de données, et

transmettre le bloc de données dans un flux de blocs de données, en transmettant successivement chaque sous-bloc du bloc de données, chaque sous-bloc étant transmis en transmettant les symboles source du sous-bloc, suivis du symbole de réparation du sous-bloc.

2. Procédé selon la revendication 1, dans lequel chaque symbole de réparation (R1-R9) du bloc de données est calculé par une combinaison linéaire d'au moins une partie des symboles source (S) du bloc de données, de manière à ce que chaque symbole source du bloc de données soit utilisé pour calculer un même nombre, à un près, de symboles de réparation du bloc de données.

3. Procédé selon la revendication 1, dans lequel chaque symbole de réparation (R1-R9) du bloc de données (DB) est calculé par une combinaison linéaire de tous les symboles source (S) transmis précédemment du bloc de données.

4. Procédé selon l'une des revendications 1 à 3, dans lequel plusieurs symboles de réparation (R) calculés à partir d'au moins une partie des symboles source (S) du dernier sous-bloc (SB[..,49]) du bloc de données, (DB) sont transmis à la fin du bloc de données.

5. Procédé selon l'une des revendications 1 à 4, dans lequel chaque sous-bloc (SB) du bloc de données (DB) comprend un même nombre, à un près, de symboles source (S).

6. Procédé selon l'une des revendications 1 à 5, dans lequel le bloc de données (DB) comprend autant de sous-blocs (SB) que de symboles de réparation (R) transmis à la fin du bloc de données. 7. Procédé selon l'une des revendications 1 à 6, comprenant des étapes de définition d'un format du bloc de données (DB), consistant à :

définir un premier nombre (Q) de symboles de réparation (R) à transmettre à la fin du bloc de données,

déterminer un nombre (NB) de sous-blocs (SB) du bloc de données en fonction du premier nombre et d'un nombre de symboles de réparation attribués au bloc de données, ou déterminer le nombre (n-k) de symboles de réparation (R) attribués au bloc de données en fonction du nombre de sous-blocs du bloc de données et du premier nombre,

calculer un nombre minimum (KB) de symboles source (S) par sous-bloc en divisant le nombre (k) de symboles source dans le bloc de données par le nombre de sous-blocs, le nombre minimum de symboles source étant fixé égal au plus grand nombre entier inférieur ou égal au résultat obtenu de la division, et

calculer un écart (Δ) entre le nombre de symboles source du bloc de données et le produit (NB KB) du nombre de sous-blocs dans le bloc de données par le nombre minimum de symboles source par sous-bloc, l'écart définissant un nombre de symboles source à ajouter dans les sous-blocs du bloc de données.

8. Procédé selon la revendications 7, dans lequel, l'écart (Δ) définit un nombre de sous-blocs (SB) du bloc de données (DB) comportant un nombre de symboles source (S) égal au nombre minimum (KB) de symboles source par sous- bloc, augmenté de un.

9. Procédé selon l'une des revendications 1 à 8, comprenant des étapes consistant à :

recevoir d'un terminal d'utilisateur (UE) en mode point à point, un message signalant de mauvaises conditions de réception, et

transmettre au terminal en mode point à point, en réponse au message, au moins un symbole de réparation (R) pour chaque bloc de données transmis après la réception du message.

10. Procédé de réception de données transmises conformément au procédé de transmission selon l'une des revendications 1 à 9, le procédé de réception comprenant des étapes successives de réception des sous-blocs (SB) de symboles source (S) d'un bloc de données (DB), la réception de chaque sous-bloc étant suivie de la réception d'un symbole de réparation (R) associé au sous-bloc, chaque symbole de réparation correspondant à une combinaison linéaire des symboles source du sous-bloc associé au symbole de réparation. 11. Procédé selon la revendication 10, comprenant des étapes consistant à : détecter un symbole source (S) manquant ou erroné dans le bloc de données, et

à la réception d'un premier symbole de réparation (R) suivant le symbole source manquant ou erroné, calculer le symbole source manquant ou erroné en résolvant une équation résultant de l'égalité entre le premier symbole de réparation et une combinaison linéaire correspondant au premier symbole de réparation.

12. Procédé selon la revendication 10 ou 11, comprenant des étapes consistant à :

détecter de mauvaises conditions de réception de blocs de données transmis dans un mode multi diffusion,

transmettre en mode point à point, à un serveur (CNTP, MBMS), un message signalant de mauvaises conditions de réception, et

recevoir en mode point à point, pour des blocs de données (DB) reçus dans le mode multi diffusion, des symboles de réparation supplémentaires utilisables pour calculer des symboles source (S) manquants dans les blocs de données reçus.

13. Dispositif d'émission de données configuré pour mettre en œuvre le procédé selon l'une des revendications 1 à 9.

14. Dispositif de réception de données configuré pour mettre en œuvre le procédé selon l'une des revendications 10 à 12.

Description:
PROCÉDÉ ET DISPOSITIF DE CORRECTION D'ERREURS À FAIBLE LATENCE POUR RECOUVREMENT DE PAQUETS DE DONNÉES

La présente invention concerne la transmission de données dans un canal de communication entre un dispositif émetteur et un dispositif récepteur, et en particulier, la mise en œuvre d'un mécanisme de correction d'erreur ou de perte de données.

De nombreux codes de correction d'erreur ont été proposés pour assurer la fiabilité de transmissions de fichiers ou de flux de données par des canaux de transmission introduisant des pertes ou des corruptions de données.

Dans le domaine des réseaux mobiles, et en particulier dans les communications point à multipoint et en mode diffusion, la correction d'erreur directe de la couche applicative AL-FEC (Applicative Layer - Forward Error Correction) joue un rôle clé pour assurer une distribution fiable de contenus à grande échelle. AL-FEC a même été défini comme obligatoire par le projet 3GGP (3rd Génération Partnership Project) pour les services eMBMS (extended Multimedia Broadcast Services). Parmi les codes utilisés pour la correction d'erreur AL-FEC, le codage Reed-Solomon (RS) est couramment utilisé. Ce codage appartient à la catégorie des codes MDS (Maximum Distance Separable) qui permettent de reconstituer k symboles source parmi n symboles transmis incluant n-k symboles de réparation. Dans le cas d'un protocole de transmission à base de paquets de données, des fichiers, des flux de données, ou des blocs de données sont transmis sous la forme de paquets de données divisés en symboles qui peuvent être ou non de même taille. La taille d'un symbole peut s'exprimer en nombre de bits. Les symboles de réparation RS sont obtenus par des opérations réalisées sur un corps de Galois GF (Galois Field) tel que GF(2 m ). Ainsi, les symboles de réparation sont calculés par une combinaison linéaire des symboles source en utilisant des coefficients appartenant au corps GF(2 m ). Généralement, les calculs de symbole de réparation sont effectués sur le corps GF(2 8 ), ce qui limite la taille n des blocs de données traités à moins de 256 symboles.

Les codages AL-FEC par bloc présentent l'inconvénient de nécessiter d'attendre les symboles de réparation transmis à la fin d'un bloc de données pour pouvoir restaurer un symbole perdu ou erroné dans le bloc de données. Le temps de latence de restauration d'un symbole source peut donc atteindre la durée de réception d'un bloc de donnée, si l'erreur se produit sur le premier symbole source du bloc de données. De même, le temps d'accès à un flux de blocs de données peut atteindre la durée de réception d'un bloc si l'instant d'accès au flux se produit entre les instants de début de réception des premier et second symboles source. En revanche, tous les symboles source d'un bloc de donnée bénéficient d'un même niveau élevé de protection, puisque tous les symboles de réparation sont calculés à partir de tous les symboles source du bloc.

II existe d'autres codages tels que LDPC (Low Density Parity Check),

Raptor/RaptorQ qui supportent des tailles de bloc plus grandes. Cependant, dans les applications temps réel, les contraintes de latence limitent la taille des blocs de données. Les codages AL-FEC à base de bloc sont largement utilisés en raison de leurs multiples avantages relatifs à leurs performances notamment en termes de capacité de réparation, de complexité et de flexibilité. En revanche, les codages AL- FEC à base de bloc présentent une importante latence de réparation. Si l'un des premiers symboles d'un bloc de données est erroné ou perdu, il ne peut être restauré qu'à la réception des symboles de réparation figurant à la fin du bloc.

On a également proposé des codages convolutifs, appliquant un mécanisme de fenêtre glissante. Selon un tel codage, les symboles de réparation sont calculés à la volée, sur les symboles source appartenant à la fenêtre glissante, et envoyés à la suite des symboles source de la fenêtre. Par exemple, un symbole de réparation est calculé sur au plus W symboles source et envoyé tous les k symboles source, k < W. La restauration d'un symbole source perdu ou erroné peut donc être effectuée dès la réception d'un symbole de réparation, avant que tous les symboles source soient reçus. En contrepartie, ce type de codage soulève un problème de latence d'accès, lorsqu'un terminal accède à un flux de données d'une transmission en mode diffusion ou point à multipoint, après le début de la transmission. En effet, le terminal doit attendre au moins W symboles source avant de recevoir le premier symbole de réparation exploitable. En outre, chaque perte de symbole source augmente le temps d'accès au flux de données de k+1 symboles source. Un effet de dérive (drifting effect) se produit lorsque le taux de perte de symboles approche le rapport du nombre de symboles de réparation sur le nombre de symboles source, transmis. Dans ce cas, il n'est pas possible de restaurer des symboles perdus ou erronés.

Il est donc souhaitable de proposer un type de codage présentant une faible latence de restauration d'un symbole source perdu ou erroné, tout en offrant une faible latence d'accès, et un niveau de protection suffisant pour chaque symbole source.

Des modes de réalisation concernent un Procédé de transmission de données, comprenant des étapes consistant à : encoder des données à transmettre sous la forme de symboles source regroupés en blocs de données, attribuer à chaque bloc de données un nombre de symboles de réparation, et pour chaque bloc de données : répartir les symboles source du bloc de données dans des sous-blocs, le nombre de sous-blocs étant égal au nombre de symboles de réparation attribués au bloc de données, attribuer un symbole de réparation à chaque sous-bloc du bloc de données, calculer le symbole de réparation de chaque sous-bloc du bloc de données par une combinaison linéaire de symboles source du sous-bloc et des symboles sources de sous-blocs précédents dans le bloc de données, et transmettre le bloc de données dans un flux de blocs de données, en transmettant successivement chaque sous-bloc du bloc de données, chaque sous-bloc étant transmis en transmettant les symboles source du sous-bloc, suivis du symbole de réparation du sous-bloc.

Selon un mode de réalisation, chaque symbole de réparation du bloc de données est calculé par une combinaison linéaire d'au moins une partie des symboles source du bloc de données, de manière à ce que chaque symbole source du bloc de données soit utilisé pour calculer un même nombre, à un près, de symboles de réparation du bloc de données.

Selon un mode de réalisation, chaque symbole de réparation du bloc de données est calculé par une combinaison linéaire de tous les symboles source transmis précédemment du bloc de données.

Selon un mode de réalisation, plusieurs symboles de réparation calculés à partir d'au moins une partie des symboles source du dernier sous-bloc du bloc de données, sont transmis à la fin du bloc de données.

Selon un mode de réalisation, chaque sous-bloc du bloc de données comprend un même nombre, à un près, de symboles source.

Selon un mode de réalisation, le bloc de données comprend autant de sous- blocs que de symboles de réparation transmis à la fin du bloc de données.

Selon un mode de réalisation, le procédé comprend des étapes de définition d'un format du bloc de données, consistant à : définir un premier nombre de symboles de réparation à transmettre à la fin du bloc de données, déterminer un nombre de sous-blocs du bloc de données en fonction du premier nombre et d'un nombre de symboles de réparation attribués au bloc de données, ou déterminer le nombre de symboles de réparation attribués au bloc de données en fonction du nombre de sous-blocs du bloc de données et du premier nombre, calculer un nombre minimum de symboles source par sous-bloc en divisant le nombre de symboles source dans le bloc de données par le nombre de sous-blocs, le nombre minimum de symboles source étant fixé égal au plus grand nombre entier inférieur ou égal au résultat obtenu de la division, et calculer un écart entre le nombre de symboles source du bloc de données et le produit du nombre de sous-blocs dans le bloc de données par le nombre minimum de symboles source par sous-bloc, l'écart définissant un nombre de symboles source à ajouter dans les sous-blocs du bloc de données. Selon un mode de réalisation, l'écart définit un nombre de sous-blocs du bloc de données comportant un nombre de symboles source égal au nombre minimum de symboles source par sous-bloc, augmenté de un.

Selon un mode de réalisation, le procédé comprend des étapes consistant à : recevoir d'un terminal d'utilisateur en mode point à point, un message signalant de mauvaises conditions de réception, et transmettre au terminal en mode point à point, en réponse au message, au moins un symbole de réparation pour chaque bloc de données transmis après la réception du message.

Des modes de réalisation peuvent également concerner un procédé de réception de données transmises conformément au procédé de transmission défini précédemment, le procédé de réception comprenant des étapes successives de réception des sous-blocs de symboles source d'un bloc de données, la réception de chaque sous-bloc étant suivie de la réception d'un symbole de réparation associé au sous-bloc, chaque symbole de réparation correspondant à une combinaison linéaire des symboles source du sous-bloc associé au symbole de réparation.

Selon un mode de réalisation, le procédé de réception comprend des étapes consistant à : détecter un symbole source manquant ou erroné dans le bloc de données, et à la réception d'un premier symbole de réparation suivant le symbole source manquant ou erroné, calculer le symbole source manquant ou erroné en résolvant une équation résultant de l'égalité entre le premier symbole de réparation et une combinaison linéaire correspondant au premier symbole de réparation.

Selon un mode de réalisation, le procédé de réception comprend des étapes consistant à : détecter de mauvaises conditions de réception de blocs de données transmis dans un mode multi diffusion,

transmettre en mode point à point, à un serveur, un message signalant de mauvaises conditions de réception, et recevoir en mode point à point, pour des blocs de données reçus dans le mode multi diffusion, des symboles de réparation supplémentaires utilisables pour calculer des symboles source manquants dans les blocs de données reçus.

Des modes de réalisation peuvent également concerner un dispositif d'émission de données configuré pour mettre en œuvre le procédé de transmission défini précédemment.

Des modes de réalisation peuvent également concerner un dispositif de réception de données configuré pour mettre en œuvre le procédé de réception défini précédemment.

Des exemples de réalisation de l'invention seront décrits dans ce qui suit, à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente schématiquement un système de transmission de données,

la figure 2 représente schématiquement un format classique de transmission de données générées dans un dispositif d'émission du système de transmission,

la figure 3 illustre un mode de calcul de symboles de réparation du format représenté sur la figure 2,

la figure 4 représente schématiquement un autre format classique de transmission de données générées dans le dispositif d'émission du système de transmission,

la figure 5 illustre un format de transmission de données et un mode de calcul de symboles de réparation du format représenté sur la figure 4,

la figure 6 représente des étapes d'une procédure de détermination d'un format de transmission de données, selon un mode de réalisation,

la figure 7 illustre un exemple de format de transmission de données obtenu à l'aide de la procédure représentée sur la figure 6,

la figure 8 représente des étapes d'une procédure de détermination d'un format de transmission de données, selon un autre mode de réalisation,

les figures 9 à 14 illustrent des exemples de formats de transmission de données obtenus à l'aide de la procédure illustrée par la figure 8, et des exemples de modes de calcul des symboles de réparation,

les figures 15 à 23 représentent des courbes illustrant les performances obtenues à l'aide des formats de transmission de données, présentés précédemment, la figure 24 représente schématiquement un système de diffusion de contenu à plusieurs terminaux mobiles.

La figure 1 représente schématiquement un système de transmission de données. Un fichier ou un flux de données d'entrée IDT est fourni à un dispositif émetteur TDV configuré pour transmettre les données d'entrée IDT à un dispositif récepteur RDV par un canal de communication CH. Le dispositif récepteur est configuré pour fournir des données de sortie ODT correspondant aux données d'entrée. Le dispositif émetteur TDV comprend un générateur de symboles ISG, un module d'encodage ENC, et un module de transmission XMT. Le générateur de symboles ISG est configuré pour générer des symboles source représentant les données d'entrée IDT, sous la forme de mots binaires à M bits. Ainsi les données d'entrée peuvent être représentées sous la forme de 2 M symboles source différents. La valeur du paramètre M est adaptée au système de communication. Les symboles source produits par le générateur de symboles ISG sont fournis au module d'encodage ENC pour être encodées, puis fournis au module de transmission XMT. Le module d'encodage ENC est configuré pour assembler les symboles source en blocs de données incluant des symboles de réparation. Le module de transmission XMT est configuré pour mettre les données des blocs de données reçus du module d'encodage ENC, dans un format de transmission adapté au canal de transmission CH. Le canal de transmission CH peut être un canal temps réel, par exemple une liaison formée à travers le réseau Internet, ou une liaison de diffusion de contenus à une multiplicité de terminaux, ou encore une liaison point à point pour transmettre de la voix ou de l'image.

Le dispositif récepteur RDV comprend un module de réception REC, un module de décodage DEC, et un module d'assemblage DASM pour restaurer les données transmises IDT dans leur format initial. Le module de réception REC convertit les signaux transmis par le canal de transmission CH en symboles comprenant des symboles source et des symboles de réparation. Le module de décodage DEC détecte des erreurs ou l'absence éventuelle de symboles dans les symboles produits par le module de réception REC, et tente de reconstituer les éventuels symboles source manquant ou erronés à l'aide des symboles de réparation reçus. Les erreurs peuvent par exemple être détectées à l'aide de bits de parité figurant dans les symboles transmis. Le module d'assemblage DASM assemble les symboles source fournis par le module de décodage DEC pour générer des données de sortie ODT correspondant aux données d'entrée transmises IDT.

La figure 2 représente un format classique d'un bloc de données DB[k,k+r] susceptible d'être fourni par le module d'encodage ENC. Le bloc de données DB comprend k symboles source S[l] à S[k], suivis de r (= n-k) symboles de réparation Rl [l,k] à Rr[l,k]. La figure 3 illustre le mode de calcul des symboles de réparation Rl [l,k] à Rr[l,k] dans le cas d'un format de bloc de données à k = 49 symboles source S[l]-S[49], et r = 9 symboles de réparation. Sur la figure 3, chaque symbole de réparation Rl [l,k] à Rr[l,k] est représenté par une flèche s'étendant sur tous les symboles source à partir desquels il est calculé. Ainsi, chacun des symboles de réparation RI [1,49] à R9[l,49] est calculé à partir des 49 symboles source du bloc de données DB[49,58]. Les symboles de réparation Rp[i,j] peuvent être calculés par une combinaison linéaire respective des symboles sources, par l'équation suivante : p[i. j] =∑ a p ,S[l] (1) l=i

dans laquelle a p! représente des coefficients choisis aléatoirement dans le corps

GF(2 m ), avec m = 8, par exemple, et p est compris entre 1 et (n-k). Les coefficients α,ρ ΐ peuvent être rassemblés dans une matrice de taille k x (n-k), les coefficients a p! des symboles source S[l] non pris en compte dans le calcul du symbole de réparation Rp étant nuls. Dans ce cas, les symboles de réparation peuvent être obtenus par l'équation suivante : Rp =∑ a p |S[l] (2)

1=1

La matrice des coefficients α ρ! et des paramètres définissant le format des blocs de données transmis peuvent être transmis au module de décodage DEC.

Dans l'exemple de la figure 3, si l'un des premiers symboles source S[i] est perdu ou erroné, il faut attendre la réception d'au moins le premier symbole de réparation RI [1,49] (si le bloc de données DB reçu ne comporte pas d'autres erreurs), pour pouvoir restaurer le symbole source perdu ou erroné. En effet, il faut disposer d'au moins un symbole de réparation pour chaque symbole source à restaurer, pour qu'une telle restauration soit possible par la résolution d'un système de x équations à x inconnues (x étant le nombre de symboles source à restaurer). Ainsi, le format de codage illustré par les figures 2 et 3 permet de restaurer au plus 9 symboles source erronés ou perdus dans un bloc de données de 49 symboles source. Par ailleurs, le temps d'accès à un flux de blocs de données B[49,58] peut avoisiner le temps de transmission de deux blocs de données si l'instant d'accès au flux implique un nombre de symboles source manqués ou erronés supérieur à r = 9 dans un premier bloc de données reçu, et si au moins une erreur est détectée dans un second bloc de données reçu.

La figure 4 représente un autre format classique d'un flux de symboles SST[k,w] susceptibles d'être fournis par le module d'encodage ENC. Le flux de symboles comprend une succession de groupes de k symboles source S[l]-S[k], S[k+1]-S[2k], S[n-k+l]-S[n-k], chaque groupe étant suivi d'un symbole de réparation R[k-w,k], R[2k-w,2k], Rl [n-k-w,n-k], calculé sur les w symboles source précédents dans le flux de données, avec w > k.

La figure 5 illustre le mode de calcul des symboles de réparation Rl [n k- w,n-k] (avec n = 1, 2, ...), pour un flux de données SST[3,15], c'est-à-dire, lorsque les symboles de réparation sont calculés à partir des symboles source appartenant à une fenêtre glissante de w (= 15) symboles source S et où un symbole de réparation est émis après un groupe SB[n-k-2,n-k] de k (= 3) symboles source. Sur la figure 5, chaque symbole de réparation R[x-w,x] est représenté par une flèche s 'étendant sur les w symboles source à partir desquels ils sont calculés. Ainsi, le symbole de réparation R[7,21] est transmis après le groupe de symboles source SB[ 18,21] et est calculé à partir des 15 symboles source S [7] à S [21]. Le symbole de réparation R[10,24] suivant dans le flux SST[3,15] est transmis après le groupe de symboles source SB [21,24] et est calculé à partir des symboles source S[10] à S [24]. Les symboles de réparation R[i,j] peuvent également être calculés par l'équation (1) ou (2)· Dans l'exemple de la figure 5, il est possible de restaurer un symbole source perdu ou erroné à la réception du symbole de réparation suivant. La latence de restauration d'un symbole source est donc inférieure à la durée de réception de k = 3 symboles source. Le temps d'accès à un premier symbole source d'un flux SST[3,15] est au minimum égal à la durée de réception de w = 15 symboles, s'il manque un symbole source dans le premier groupe de 3 symboles source reçus. Par ailleurs, le temps d'accès à un symbole source du flux peut être infini, si la transmission du flux produit au moins une erreur dans chacun des groupes SB[n-k-2,n-k] successifs de 3 symboles source sur lesquels sont calculés les symboles de réparation.

Selon un mode de réalisation, les latences de restauration et d'accès sont réduites en divisant le flux de données en bloc de données et en divisant chaque bloc de données transmis en sous-blocs et en attribuant à chaque sous-bloc d'un bloc de données, un symbole de réparation qui est transmis immédiatement à la suite du dernier symbole source du sous-bloc. Les éventuels symboles de réparation restants sont transmis à la suite du dernier sous-bloc du bloc de données.

La figure 6 représente des étapes SI à S4 d'une procédure PI permettant de définir un format de bloc de données, selon un mode de réalisation. En particulier, la procédure PI permet de déterminer un nombre de sous-blocs NB et un nombre de symboles source KB par sous-bloc. La procédure PI peut être mise en œuvre dans le module d'encodage ENC. La procédure PI se base sur une division d'un bloc de données en un nombre de sous-blocs égal au nombre de symboles de réparation attribué au bloc de données. La procédure PI reçoit en entrée le nombre de symboles source k présents dans le bloc de données et le nombre total n de symboles figurant dans le bloc de données, incluant des symboles de réparation. A l'étape SI, le nombre de sous-blocs NB est fixé égal au nombre de symboles de réparation attribué au bloc de données, soit n - k. A l'étape S2, le nombre KB de symboles source par sous-bloc du bloc de données est calculé, par l'équation suivante :

KB = FL(k/(n-k)) (3) dans laquelle la fonction FL(x) fournit le grand nombre entier inférieur ou égal au nombre x. A l'étape S3, un écart Δ entre le nombre k de symboles source dans le bloc de données et le produit des nombres KB est NB est calculé. Le nombre Δ représente le nombre de symboles source restants, non affectés à l'un des sous-blocs du bloc de données, si tous les sous-blocs du bloc de données comprend KB symboles source. Le nombre Δ est utilisé pour spécifier que la division du bloc de données en sous- blocs comprend Δ sous-blocs de (KB + 1) symboles sources et (NB - Δ) sous-blocs de KB symboles sources. Les Δ sous-blocs de (KB + 1) symboles sources peuvent être indifféremment positionnés au début ou à la fin du bloc de données. Alternativement, Δ symboles source peuvent être retirés de l'un des sous-blocs, par exemple le premier ou le dernier sous-bloc du bloc de données. A l'étape S4, la procédure PI se termine en fournissant les nombres KB, NB et Δ. La procédure PI aboutit donc à une division de chaque bloc de données en Δ sous-blocs de (KB + 1) symboles sources et (NB -Δ) sous-blocs SB de KB symboles source.

Par exemple, le bloc de données comprend NB - Δ premiers sous-blocs SB rassemblant chacun KB symboles source de (b-KB+1) à ((b+l)-KB), b variant de 0 à (ΝΒ-Δ-2), et Δ derniers sous-blocs SB rassemblant chacun (KB + 1) symboles source de (b-KB + b - NB + A - l) à ((b+l)-KB + b - NB + Δ), b variant de (ΝΒ-Δ- 1) à (NB-1).

Ainsi, la latence de réparation ou d'accès au flux de données, en cas de perte de p symboles source (p < n-k) dans un bloc de données, est inférieure au temps de réception des p symboles de réparation R[i,j] suivants du bloc de données. Bien entendu, si le nombre de symboles sources perdus dans un bloc de données est supérieur au nombre (n - k) de symboles de réparation par bloc de données, le bloc de données en cours de réception n'est pas réparable ; il est donc nécessaire d'attendre la réception du bloc de données suivant.

La figure 7 représente un exemple de format d'un bloc de données DB défini par la procédure PI et un mode de calcul des symboles de réparation. Dans cet exemple, le bloc de données comprend k = 49 symboles source pour un total de n = 58 symboles, soit n - k = 9 symboles de réparation RI à R9. La procédure PI permet de définir une division du bloc de données DB en NB = 9 sous-blocs comprenant chacun KB = 5 symboles source, avec un écart de Δ = 4 symboles source à répartir dans certains des sous-blocs. Les Δ (=4) symboles source à répartir dans les sous-blocs, peuvent être ajoutés par exemple aux 4 derniers sous-blocs du bloc de données DB. Il en résulte que le bloc de données DB comprend les sous-blocs SB[1- 5] (incluant les symboles source de 1 à 5 du bloc de données DB), SB[6-10], SB[11- 15], SB[16-20], SB[21-25], comprenant chacun 5 symboles source, et les sous-blocs SB[26-31], SB[32-37], SB[38-43] et SB[44-49] comprenant chacun 6 symboles source. Le premier symbole de réparation Rl [l,5], obtenu par une combinaison linéaire des symboles source S[l] à S [5], est transmis immédiatement après le premier sous-bloc SB [1-5], soit à la suite du symbole source S [5]. Le second symbole de réparation Rl [l,10], obtenu par une combinaison linéaire des symboles source S[l] à S[10], est transmis immédiatement après le second sous-bloc SB [6- 10], et ainsi de suite.

Dans l'exemple de la figure 7, la latence de réparation ou d'accès au flux de données, en cas de perte d'un symbole source, est inférieure au temps de réception de 5 symboles source et du symbole de réparation qui suit.

Il est à noter que dans l'exemple de la figure 7, les symboles source S[l] à S[5] du premier sous-bloc SB[1,5] sont protégés par tous les symboles de réparation R1-R9 attribués au bloc de données DB. En revanche, les symboles source S[44] à S[49] du dernier sous-bloc SB[44,49] ne sont protégés que par le seul dernier symbole de réparation R9. Il peut donc être souhaitable d'augmenter le nombre de symboles de réparation des symboles source protégeant le dernier sous-bloc SB[44,49] du bloc de données DB. A cet effet, la figure 8 représente des étapes S 10 à S 13 d'une procédure P2 permettant de déterminer un format de bloc de données, selon un autre mode de réalisation. En particulier, la procédure P2 permet de déterminer le nombre NB de sous-blocs SB par bloc de données et le nombre de symboles source KB par sous-bloc à partir du nombre k de symboles source par bloc de données, du nombre total n de symbole par bloc de données et d'un nombre Q de symboles de réparation à attribuer au dernier sous-bloc de chaque bloc de données. Les paramètres KB et NB fournis par la procédure PI (figure 6) sont alors considérées comme des valeurs minimum pour le nombre KB et maximum pour le nombre NB. Dans la procédure PI, le nombre Q de symboles de réparation attribués au dernier sous-bloc est fixé à 1.

A l'étape S10, le nombre NB de sous-blocs est calculé en retranchant la quantité Q - 1 du nombre n - k de symboles de réparation par bloc de données. A l'étape SI 1 , le nombre KB de symboles source est calculé en divisant le nombre k de symboles source par bloc de données par le nombre NB de sous-blocs obtenus à l'étape S 10. Le nombre KB est fixé égal au plus grand nombre entier inférieur au résultat de la division k/NB. Ainsi, les nombres NB et KB sont obtenus par les équations suivantes :

NB = n - k - Q + 1, KB = FL(k/NB) (4) A l'étape S 12, on calcule l'écart Δ entre le nombre k de symboles source dans le bloc de données et le produit des nombres KB est NB. Ainsi, le nombre Δ est égal à k - NB x KB. A l'étape S13, la procédure P2 retourne les nombres KB, NB et Δ ainsi calculés. Ainsi, la procédure P2 permet de définir une division d'un bloc de données de k symboles source et (n-k) symboles de réparation, comprenant par exemple (NB - Δ) sous-blocs regroupant KB symboles source et Δ sous-blocs comprenant (KB + 1) symboles source, chaque sous-bloc étant suivi d'un symbole de réparation R[i,j] calculé sur au moins une partie des symboles source précédents dans le bloc de données, par exemple par l'équation (1) ou (2). Les paramètres KB, NB et Δ ainsi calculés peuvent être transmis au module de décodage DEC, afin qu'il puisse repérer les sous-blocs et les symboles de réparation dans les blocs de données transmis.

Si l'on fixe le paramètre Q à 1, la procédure P2 fournit un nombre NB de sous-blocs NB égal à n - k (nombre de symboles de réparation dans un bloc de données), et un nombre KB de symboles source par sous-bloc égal à FL(k/(n - k)), conformément au format défini par la procédure Pl . Dans l'exemple avec k = 49 et n = 58, la procédure P2 fournit un nombre NB de sous-blocs égal à 9, et un nombre KB de symboles source par sous-bloc égal à 5 avec un écart Δ égal à 4. On retrouve ainsi le format de bloc de données de la figure 7. Si l'on fixe le paramètre Q à n-k, la procédure P2 fournit un nombre NB de sous-blocs SB égal à 1 , et donc un nombre KB de symboles source par sous-bloc égal au nombre k de symboles source dans le bloc de données. On retrouve ainsi le format de la figure 3, sans division du bloc de données en sous-blocs.

Bien entendu, il peut être prévu que le nombre NB de sous-blocs dans chaque bloc de données soit fixé, et donc fourni en entrée de la procédure P2. Dans ce cas, l'étape S 10 est remplacée par une étape de calcul du nombre r de symboles de réparation par bloc de données, ou du nombre total n de symboles par bloc de données. Ainsi, le nombre r de symboles de réparation par bloc de données est égal au nombre NB de sous-blocs par bloc de données augmenté du nombre Q-l de symboles de réparation à ajouter à la fin du bloc de données, sans compter le symbole de réparation attribué au dernier sous-bloc du bloc de données. A l'étape S 13, la procédure P2 fournit alors le nombre r de symboles de réparation ou le nombre total n de symboles par bloc de données, à la place du nombre NB de sous- blocs par bloc de données. Il peut être également prévu de fixer le nombre r de symboles de réparation par bloc de données et de déterminer le nombre Q de symboles de réparation à la fin du bloc de données, en fonction du nombre r et du nombre NB de sous-blocs par bloc de données.

La figure 9 représente un exemple de format d'un bloc de données DB à 49 symboles source et 9 symboles de réparation, obtenu par la procédure P2. Dans cet exemple, le nombre Q de symboles de réparation figurant à la fin du bloc de données DB est choisi égal à 3. La procédure P2 permet de définir une division du bloc de données DB en NB = 7 sous-blocs comprenant chacun KB = 7 symboles source, l'écart Δ étant nul. Le bloc de données DB de la figure 9 comprend donc des sous- blocs SB[1 ,7], SB[8,14], SB[15,21], SB[22,28], SB[29,35], SB[36,42] et SB[42,49], chaque sous-bloc étant immédiatement suivi d'un symbole de réparation, respectivement Rl [l ,7], R2[l,14], R3[l,21], R4[l ,28], R5[l,35], R6[l,42] et R7[l ,49]. Le dernier sous-bloc SB[42,49] est suivi de trois symboles de réparation R7[l,49], R8[l,49] et R9[l,49], conformément au paramètre Q choisi égal à 3.

Ainsi, la latence de réparation ou d'accès à un tel bloc de données, en cas de perte d'un symbole source est inférieure ou égale à la durée de réception 7 symboles source plus un symbole de réparation.

Il est à noter dans les exemples des figures 7 et 9 que les symboles source du premier sous-bloc SB[1,5], SB[1,7] sont protégés par tous les symboles de réparation attribués au bloc de données DB. En revanche, le dernier sous-bloc SB [44 ,49], SB[43,49] du bloc de données DB n'est protégé que par un seul symbole de réparation R9[l,49] dans l'exemple de la figure 7, et par les trois symboles de réparation R7[l,49], R8[l ,49] et R9[l,49] dans l'exemple de la figure 9. Il en résulte que si le nombre de symboles source perdus en début de bloc est supérieur au nombre de symboles de réparation, il n'est pas possible de restaurer les symboles sources perdus du bloc de données DB, ce qui nécessite d'attendre la réception des symboles source du bloc de données suivant.

II peut être souhaitable d'uniformiser le nombre de symboles de réparation protégeant chaque symbole source, dans le bloc de données. A cet effet, considérons par exemple le cas où le bloc de données est divisé en NB sous-blocs avec les NB - Δ premiers sous-blocs SB comprenant chacun KB symboles source de (b-KB+1) à ((b+l)-KB), b variant de 0 à (ΝΒ-Δ-2), et les Δ derniers sous-blocs SB comprenant chacun (KB+1) symboles source de (b-KB + b - NB + Δ - 1) à ((b+l)-KB + b - NB + Δ), b variant de (ΝΒ-Δ-l) à (NB-1). Les NB-1 derniers symboles de réparation peuvent être calculés en fonction des symboles source de (b-KB+1) à k, lorsque b est inférieur à (ΝΒ-Δ-l), et de (b-KB + b - NB + Δ - 1) à k, lorsque b est supérieur à (ΝΒ-Δ-2). Comme on diminue le nombre de symboles sources à partir duquel certains symboles de réparation sont calculés, on simplifie le calcul des symboles de réparation, ainsi que les calculs de restauration d'un symbole source.

Ainsi, la figure 10 représente un exemple de format d'un bloc de données DB à 49 symboles source et 9 symboles de réparation, dérivé du format de la figure 9, et dans lequel chaque symbole source est protégé par Q (= 3) symboles de réparation. La taille et la répartition des sous-blocs dans le bloc de données DB est inchangée par rapport au format présenté sur la figure 9. Les symboles de réparation RI à R3 sont toujours calculés à partir du premier symbole source S[l] du bloc de données DB. En revanche, les symboles de réparation R4[8,28], R5[15,35], R6[22, 42] et R7[29,49] sont calculés à partir des 21 symboles source précédents, le symbole de réparation R8[36,49] est calculé à partir des 14 derniers symboles source S[36] à S[49] du bloc de données DB, et le symbole de réparation R9[43,49] est calculé à partir des 7 derniers symboles source S[43] à S[49] du bloc de données DB.

Dans l'exemple de la figure 10, si plus de trois symboles source sont perdus dans le premier sous-bloc SB[1,7] du bloc de données DB, il n'est pas possible de restaurer les symboles source perdus. En revanche, il est possible de restaurer un symbole source perdu dans les trois sous-blocs suivants SB[8,14], SB[15,21], SB[22,28] dès la réception du symbole de réparation R4[8,28] qui ne nécessite pas la connaissance des symboles du premier sous-bloc considéré alors comme perdu.

La figure 11 représente un exemple de format d'un bloc de données DB à 49 symboles source et 9 symboles de réparation, obtenu par la procédure P2. Dans cet exemple, le nombre Q de symboles de réparation figurant à la fin du bloc de données DB est choisi égal à CL((n - k)/2), soit 5, la fonction CL(x) représentant le plus petit nombre entier supérieur ou égal au nombre x. La procédure P2 permet de définir une division du bloc de données DB en NB = 5 sous-blocs comprenant chacun KB = 9 symboles source, l'écart Δ étant égal à 4. Il en résulte que le choix de Q fixé à 5 conduit à une division du bloc de données DB en un sous-bloc de 9 symboles source et 4 sous-blocs de 10 symboles source. Ainsi, le bloc de données DB de la figure 11 comprend 4 sous-blocs SB[1,10], SB[11,20], SB[21,30], SB[31,40] comprenant 10 symboles source et un sous-bloc SB[41,49] de 9 symboles source, chaque sous-bloc étant immédiatement suivi d'un symbole de réparation Rl [l,10], R2[l,20], R3[l,30], R4[l,40] et R5[l,49]. Le dernier sous-bloc SB [41 ,49] est suivi de cinq symboles de réparation R5[l,49], R6[l,49], R7[l,49], R8[l,49] et R9[l,49], conformément au paramètre Q choisi égal à 5.

Comme précédemment, il est possible dans ce format d'uniformiser le nombre de symboles de réparation par symbole source. Ainsi, la figure 12 représente un exemple de format d'un bloc de données DB à 49 symboles source et 9 symboles de réparation, dérivé du format de la figure 11 , et dans lequel chaque symbole source est protégé par cinq symboles de réparation. La taille et la répartition des sous-blocs dans le bloc de données DB est inchangée par rapport au format présenté sur la figure 11. Les symboles de réparation RI à R5 sont tous calculés à partir du premier symbole source S[l] du bloc de données DB. En revanche, les autres symboles de réparation R6[l l,49], R7[21,49], R8[31, 49] et R9[41,49] sont calculés respectivement à partir des symboles source S[l 1], S[21], S [31] et S [41].

La figure 13 représente un exemple de format d'un bloc de données DB à 49 symboles source et 9 symboles de réparation, obtenu par la procédure P2, lorsque le nombre Q de symboles de réparation figurant à la fin du bloc de données DB est choisi égal à 6. La procédure P2 permet de définir une division du bloc de données DB en NB = 4 sous-blocs comprenant chacun KB = 12 symboles source, le nombre Δ étant égal à 1. Cette répartition implique donc d'ajouter un symbole source dans l'un des sous-blocs, par exemple le dernier sous-bloc. Le bloc de données DB de la figure 13 comprend donc 3 sous-blocs SB[1,12], SB[13,24] et SB[25,36] comprenant 12 symboles source et un sous-bloc SB[37,49] de 13 symboles source, chaque sous- bloc étant immédiatement suivi d'un symbole de réparation RI [1,12], R2[l,24], R3[l,36] et R4[l,49]. Le dernier sous-bloc SB[37,49] est suivi de six symboles de réparation R4[l ,49], R5[l,49], R6[l,49], R7[l,49], R8[l,49] et R9[l,49], conformément au paramètre Q choisi égal à 6.

Comme précédemment, il est possible dans ce format d'uniformiser le nombre de symboles de réparation par symbole source. Ainsi, la figure 14 représente un exemple de format d'un bloc de données DB à 49 symboles source et 9 symboles de réparation, dérivé du format de la figure 13, et dans lequel chaque symbole source est protégé par six symboles de réparation. La taille et la répartition des sous-blocs dans le bloc de données DB est inchangée par rapport au format présenté sur la figure 13. Les symboles de réparation RI à R6 sont toujours calculés à partir du premier symbole source S[l] du bloc de données DB. En revanche, les autres symboles de réparation R7[13,49], R8 [25,49] et R9[37,49] sont calculés à partir des symboles source S[13], S[25] et S[37], respectivement.

Les figures 15 à 18 représentent des courbes de variation de la probabilité de temps de réparation RT de symboles perdus, pour différents formats de bloc de données. Ces courbes ont été obtenues en simulant une transmission de blocs de 100 symboles source et 125 symboles au total, avec un débit de 1 Mb/s. Le temps de transmission a été fixé à 100 ms. Chaque mesure a été obtenue en simulant la transmission de 10 7 symboles sources, soit 10 5 blocs de données. Les pertes de symboles sont obtenues à partir d'un modèle de perte de Bernouilli. Le temps de réparation d'un symbole source correspond au temps entre l'instant où le symbole source aurait dû être reçu en l'absence d'erreur et l'instant où le symbole source est restauré.

La figure 15 représente des courbes Cl à C5 de variation de la probabilité de réparation en fonction du temps de réparation, lorsque tous les symboles de réparation sont transmis à la fin du bloc de données (figure 3). Les courbes Cl à C5 ont été obtenues avec des taux de perte de symbole à 1, 5, 10, 15 et 20%, respectivement. D'après la courbe Cl, la probabilité de réparation atteint 0,4 et 1, pour des temps de réparation d'environ 50 ms et 90 ms, respectivement. Le temps de réparation des symboles perdus augmente progressivement lorsque le taux de perte de symbole augmente. Ainsi, d'après la courbe C2, le temps de réparation passe à environ 820 ms et 92 ms avec des probabilités de 0,4 et 1, respectivement. D'après la courbe C3, le temps de réparation passe à environ 91 ms et 96 ms, avec des probabilités de 0,4 et 1, respectivement. D'après la courbe C4, le temps de réparation passe à environ 94 ms et 98 ms, avec des probabilités de 0,4 et de 1, respectivement. D'après la courbe C5, le temps de réparation passe à environ 96 ms et 100 ms avec des probabilités de 0,4 de 1, respectivement.

La figure 16 représente des courbes Ci l à C15 de variation de la probabilité de réparation de symboles perdus en fonction du temps de réparation, lorsque le format des blocs de données transmis comprend autant de sous-blocs que de symboles de réparation à la fin du bloc de données, et lorsque tous les sous-blocs sont protégés sensiblement par un même nombre de symboles de réparation (figure 12). Les courbes Ci l à C15 ont été obtenues avec des taux de perte de symbole à 1 , 5, 10, 15 et 20%, respectivement. D'après les courbes Ci l à C15, le temps de réparation des symboles perdus se situe entre environ 3 et 7 ms, avec une probabilité de 0,4. D'après la courbe Ci l, la probabilité de réparation atteint 1 pour un temps de réparation de symboles perdus à environ 16 ms. Ce temps de réparation augmente progressivement lorsque le taux de perte de symbole augmente. Ainsi, d'après la courbe C12, le temps de réparation de symboles perdus atteint environ 50 ms avec une probabilité voisine de 1. D'après la courbe Cl 3, ce temps de réparation passe à environ 50 ms et 96 ms avec des probabilités de 0,9 et de 1, respectivement. D'après la courbe C14, le temps de réparation de symboles perdus passe à environ 74 ms et 98 ms avec des probabilités de 0,8 et de 1, respectivement. D'après la courbe C15, le temps de réparation de symboles perdus passe à environ 84 ms et 98 ms avec des probabilités de 0,8 et de 1, respectivement. Le format de la figure 12 affiche donc de bien meilleures performances en termes de latence de réparation de symboles perdus que le format classique de la figure 3.

La figure 17 représente des courbes C21 à C25 de variation de la probabilité de réparation de symboles perdus en fonction du temps de réparation, lorsque le format des blocs de données transmis comprend deux ou trois symboles de réparation à la fin du bloc de données (figures 9 ou 10). Les courbes C21 à C25 ont été obtenues avec des taux de perte de symbole, respectivement à 1, 5, 10, 15 et 20%. D'après les courbes C21 à C25, le temps de réparation est inférieur à environ 7 ms, avec une probabilité de 0,6. D'après la courbe C21, la probabilité de réparation atteint 1 à environ 10 ms. Le temps de réparation augmente progressivement lorsque le taux de perte de symbole augmente. D'après la courbe C22, le temps de réparation atteint environ 20 ms avec une probabilité voisine de 1. D'après la courbe C23, le temps de réparation passe à environ 46 ms avec une probabilité de 1. D'après la courbe C24, le temps de réparation passe à environ 80 ms avec une probabilité de 1. D'après la courbe C25, le temps de réparation est inférieur à 70 ms lorsque la probabilité est supérieure à 0,95, et atteint 98 ms avec une probabilité de 1. Le format de la figure 9 ou 10 présente donc de meilleures performances en termes de latence de réparation que le format de la figure 12.

La figure 18 représente des courbes C31 à C35 de variation de la probabilité de réparation de symboles perdus en fonction du temps de réparation, lorsque le format des blocs de données transmis comprend autant de sous-blocs que de symboles de réparation (figure 7). Les courbes C31 à C35 ont été obtenues avec des taux de perte de symbole, à 1 , 5, 10, 15 et 20%, respectivement. D'après les courbes C31 à C35, le temps de réparation est inférieur à environ 10 ms, avec une probabilité de 0,8. D'après la courbe C31, la probabilité de réparation atteint 1 à environ 7 ms. Le temps de réparation augmente progressivement lorsque le taux de perte de symbole augmente. D'après la courbe C32, le temps de réparation de symboles perdus atteint environ 20 ms avec une probabilité voisine de 1. D'après la courbe C33, ce temps de réparation passe à environ 34 ms avec une probabilité de 1. D'après la courbe C34, ce temps de réparation passe à environ 56 ms avec une probabilité de 1. D'après la courbe C35, ce temps de réparation est inférieur à 30 ms lorsque la probabilité est supérieure à 0,95, et atteint 74 ms avec une probabilité de 1. Le format de la figure 7 présente donc de meilleures performances en termes de latence de réparation que le format de la figure 9 ou 10.

Les figures 19 à 23 représentent des courbes de variation de la probabilité de temps d'accès à un flux de données, pour différents formats de bloc de données. Ces courbes ont également été obtenues en simulant une transmission de blocs de 100 symboles source et 125 symboles au total, avec un débit de 1 Mb/s. Le temps de transmission a été fixé à 100 ms. Chaque mesure a été obtenue en simulant la transmission de 10 7 symboles sources, soit 10 5 blocs de données. Les pertes de symboles sont obtenues à partir d'un modèle de perte de Bernouilli. Le temps d'accès au flux de données est calculé en considérant que l'instant d'accès au flux se produit au 50 ieme symbole source du second bloc de données transmis. En l'absence de perte de symbole entre l'instant d'accès au flux de données et l'instant de réception du dernier symbole du premier bloc de données reçu, ou de la fenêtre glissante, le temps d'accès au flux est fixé à 0 ms. La figure 19 représente des courbes C41 à C45 de variation de la probabilité de de temps d'accès au flux de données, lorsque le format des blocs de données transmis comprend un seul sous- bloc, tous les symboles de réparation étant transmis à la fin du bloc de données (figure 3). Les courbes C41 à C45 ont été obtenues avec des taux de perte de symbole à 1, 5, 10, 15 et 20%, respectivement. Les courbes C41 à C45 montrent que le temps d'accès ne dépasse pas 150 ms environ (atteint avec une probabilité de 1). D'après la courbe C41, le temps d'accès est nul avec une probabilité légèrement supérieure à 0,6. Le temps d'accès atteint 50 ms avec une probabilité d'environ 0,75, et atteint 150 ms avec une probabilité supérieure à 0,85. D'après la courbe C42, le temps d'accès au flux de données est inférieur à 150 ms avec une probabilité inférieure à 0,12 environ. D'après les courbes C43 à C45, le temps d'accès est inférieur à 150 ms avec une probabilité voisine de 0.

La figure 20 représente des courbes C51 à C55 de variation de la probabilité de temps d'accès, lorsque le format des blocs de données transmis comprend autant de sous-blocs que de symboles de réparation regroupés en fin du bloc de données (figure 1 1 ou 12). Les courbes C51 à C55 ont été obtenues avec des taux de perte de symbole à 1, 5, 10, 15 et 20%, respectivement. D'après les courbes C51 à C55, le temps d'accès est inférieur à environ 50 ms, avec une probabilité supérieure à 0,75. D'après la courbe C51, le temps d'accès est nul avec une probabilité voisine de 0,6. D'après les courbes C51, C52, le temps d'accès à 50 ms est atteint avec une probabilité voisine de 1. D'après la courbe C53, la probabilité de 1 est atteinte avec un temps d'accès à environ 100 ms. D'après les courbes C54 et C55, la probabilité de 1 est atteinte avec un temps d'accès à environ 150 ms. D'après la courbe C54, le temps d'accès est situé entre 50 et 150 ms avec une probabilité supérieure à 0,9. D'après la courbe C55, le temps d'accès est situé entre 50 et 150 ms avec une probabilité supérieure à 0,75. Le format de la figure 9 ou 10 présente donc de meilleures performances en termes de latence d'accès que le format de la figure 3.

La figure 21 représente des courbes C61 à C65 de variation de la probabilité de temps d'accès, lorsque le format des blocs de données transmis comprend deux ou trois symboles de réparation à la fin du bloc de données (figures 9 ou 10). Les courbes C61 à C65 ont été obtenues avec des taux de perte de symbole à 1, 5, 10, 15 et 20%, respectivement. D'après les courbes C61 à C65, le temps d'accès est inférieur à environ 50 ms, avec une probabilité supérieure à 0,9. D'après la courbe C61, le temps d'accès est nul avec une probabilité voisine de 0,6. D'après les courbes C61, C62, C63, le temps d'accès à 50 ms est atteint avec une probabilité voisine de 1. D'après la courbe C64, la probabilité de 1 est atteinte avec un temps d'accès à environ 130 ms. D'après la courbe C65, le temps d'accès passe à environ 150 ms avec une probabilité supérieure à 0,95. Le format de la figure 9 ou 10 présente donc de meilleures performances en termes de latence d'accès que le format de la figure 11 ou 12.

La figure 22 représente des courbes C71 à C75 de variation de la probabilité de temps d'accès, lorsque le format des blocs de données transmis comprend autant de sous-blocs que de symboles de réparation (figure 7). Les courbes C71 à C75 ont été obtenues avec des taux de perte de symbole à 1, 5, 10, 15 et 20%, respectivement. D'après les courbes C71 à C75, le temps d'accès est inférieur à environ 50 ms, avec une probabilité supérieure à 0,95. D'après la courbe C71, le temps d'accès est nul avec une probabilité voisine de 0,6. D'après les courbes C71, C72, le temps d'accès à 50 ms est atteint avec une probabilité voisine de 1. D'après la courbe C73, la probabilité de 1 est atteinte avec un temps d'accès à environ 70 ms. D'après les courbes C74, C75, la probabilité de 1 est atteinte avec un temps d'accès à environ 150 ms. D'après la courbe C74, le temps d'accès est situé entre 50 et 150 ms avec une probabilité supérieure à 0,9. D'après la courbe C75, le temps d'accès est situé entre 50 et 150 ms avec une probabilité supérieure à 0,8. Le format de la figure 7 présente donc de meilleures performances en termes de latence d'accès que le format de la figure 9 ou 10.

D'après les courbes des figures 19 à 22, le temps d'accès JT à un flux de données est limité à une valeur inférieure à environ 150 ms dans le cas où les données sont organisées en blocs de données.

La figure 23 représente des courbes C81 à C84 de variation de la probabilité de temps d'accès, lorsque le format des blocs de données transmis est de la forme de celui de la figure 5 avec une fenêtre w de 50 symboles source. Les courbes C81 à C84 ont été obtenues avec des taux de perte de symbole à 1, 5, 10 et 15%, respectivement. A des taux de perte de symbole de 20% et plus, le temps d'accès au flux de données tend vers l'infini. D'après la courbe C81, le temps d'accès est nul avec une probabilité voisine de 0,6, et légèrement supérieure à 50 ms avec une probabilité de 1. La courbe C82 atteint une probabilité voisine de 1, avec un temps d'accès à environ 80 ms. D'après la courbe C83, une probabilité voisine de 1 est atteinte avec un temps d'accès à environ 150 ms. D'après la courbe C84, une probabilité voisine de 1 est atteinte avec un temps d'accès à environ 500 ms. Le format de la figure 5 présente donc de moins bonnes performances en termes de latence d'accès que les autres formats étudiés.

Selon un mode de réalisation, un serveur de contenu comprenant ou couplé au dispositif émetteur TDV, diffuse un contenu en mode multi-diffusion (multicast) à un ensemble de terminaux tels que des terminaux mobiles, comprenant le dispositif récepteur RDV. Ainsi la figure 24 représente un exemple d'un tel serveur de contenu CNTP connecté à un réseau IPN, tel que le réseau Internet, par l'intermédiaire d'un serveur MBMS mettant en œuvre un service MBMS (Multimedia Broadcast Multicast Service) ou eMBMS (enhanced MBMS). Les terminaux UE sont connectés chacun des réseaux mobiles UTRN qui sont reliés au réseau IPN par l'intermédiaire de passerelles MGW, Le contenu fourni par le serveur CNTP est diffusé conformément à l'un des formats décrits précédemment. Certains des terminaux UE ayant de mauvaises conditions de réception peuvent envoyer sur un canal de retour un message de retour signalant de mauvaises conditions de réception, à destination du serveur de contenu CNTP. Ainsi, le message de retour peut indiquer un taux de perte de paquets, un taux de perte résiduel après exploitation des symboles de réparation, des caractéristiques relatives à la qualité du signal reçu.

En réponse, le serveur de contenu CNTP envoie aux terminaux ayant signalé de mauvaises conditions de réception, sur des canaux point à point (unicast) un ou plusieurs symboles de réparation supplémentaires pour chaque bloc de données émis par le dispositif émetteur TDV du serveur de contenu CNTP, pendant une certaine période. Ainsi, le serveur de contenu CNTP peut transmettre le contenu en mode multi diffusion à plusieurs dizaines de milliers de terminaux UE, et transmettre en mode point à point des symboles de réparation supplémentaires à plusieurs centaines de terminaux UE ayant signalé des conditions de réception de mauvaise qualité. Ces dispositions permettent d'assurer un service de multi diffusion de contenu, tout en garantissant une qualité de réception, sans pour autant utiliser une grande bande passante sur des canaux point à point, puisque seuls des symboles de réparation sont transmis par ces canaux.

L'envoi au serveur par un terminal d'un message de retour signalant de bonnes conditions de réception, peut mettre fin à l'envoi de symboles de réparation supplémentaires pour ce terminal. Outre que cet envoi est arrêté à la fin de la transmission du contenu diffusé, il peut être également mis fin à cet envoi à l'échéance d'un certain délai. Les terminaux ont alors toujours la possibilité d'émettre de nouveaux messages de retour signalant de mauvaises conditions de réception, pour déclencher à nouveau l'envoi de symboles de réparation supplémentaires en mode de diffusion point à point.

A noter que le traitement des messages de signalement de bonnes ou mauvaises conditions de réception, et la transmission des symboles de réparation supplémentaires, peuvent être réalisés par un autre serveur que le serveur de contenu CNTP, par exemple un serveur tel que le serveur MBMS, assurant la diffusion du contenu à des terminaux UE. Par ailleurs, le service de multi diffusion peut être mis en œuvre par d'autres moyens et d'autres protocoles que ceux illustrés à titre d'exemple par la figure 24. Par exemple, le service de multi diffusion peut être mis en œuvre dans un réseau WiFi.

Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de diverses variantes de réalisation et diverses applications. En particulier, il peut être prévu d'attribuer deux (ou davantage) symboles de réparation à chaque sous-blocs. Cependant, cette solution peut être considérée comme non optimum en terme de latence de correction, par rapport à la solution consistant à doubler le nombre de sous-blocs par bloc de données et à attribuer un seul symbole de réparation à chaque sous-bloc.

Par ailleurs, les symboles source à partir desquels sont calculés chacun des symboles de réparation ne sont pas nécessairement consécutifs dans le bloc de données, et ne comprennent pas nécessairement le symbole source transmis immédiatement avant le symbole de réparation.