Brevet FR3027756A1 — publié le 20160429

I Procédé et système de traitement de données dans un système de télécommunications pour une adaptation dynamique à la quantité de données à transmettre La présente invention concerne un procédé et un système de transmission de données. Elle est utilisable en particulier dans le domaine des télécommunications satellitaires mais elle est également adaptable dans le domaine des télécommunications terrestres. Dans le domaine des télécommunications satellitaire, en particulier pour la voie retour (la voie retour correspond aux transmissions entre le terminal utilisateur et une passerelle au sol via le satellite) ou pour une communication directe entre des terminaux via le satellite, la transmission de données sporadiques provoque une perte d'efficacité d'utilisation des ressources. En effet, cette transmission sporadique depuis un terminal utilisateur implique une agrégation faible des données sur ce terminal. Le débit de transmission est alors inférieur au débit maximal atteignable. Ceci est provoqué par la segmentation des paquets de données en un ensemble de fragments dans le but de s'adapter à la taille des conteneurs que la couche physique du satellite peut traiter. Un fragment est un sous ensemble d'un message de niveau supérieur (dans le cas où le protocole de communication utilise un modèle en couches). L'utilisation de fragments résulte du fait que la taille d'un message peut être supérieure à la taille maximale d'un conteneur. Dans ce cas, afin de transmettre le message, plusieurs fragments devront être constitués afin d'être transmis indépendamment les uns des autres. Une fois les fragments reçus, l'activité qui consiste à reconstituer le message original à partir de ces fragments est le réassemblage. Un conteneur est un réceptacle virtuel ayant une taille définie (en bits) pouvant accueillir des données dans le but de les transporter. Si la taille des paquets de données est différente de la taille de ces conteneurs ou qu'elle n'est pas un multiple de la taille de ces conteneurs (ce qui peut être fréquent), la segmentation des paquets nécessite l'ajout de symboles de bourrage ou « padding » en anglais. L'inefficacité de l'utilisation de la ressource introduite par l'ajout de ces symboles de bourrage peut atteindre près de 50 % (dans le cas d'un paquet de données ayant une taille tout juste supérieure à celle du conteneur). La taille fixe de ces conteneurs est généralement imposée par la couche physique appliquant un code correcteur d'erreurs. Il est connu de l'état de la technique l'utilisation de codes correcteurs en bloc, dont les performances sont meilleures que celles des codes convolutifs. L'application d'un code correcteur d'erreurs en bloc est optimisée pour une taille de bloc donnée. Un bloc de données est l'ensemble des données qui ont été incluses dans le conteneur par la couche supérieure (complémenté par un en-tête ou un enfin éventuel). Il est connu des modèles de communication et des procédés de transmission des données qui sont organisés en plusieurs couches. Par exemple le modèle OSI qui présente en particulier les couches réseau, liaison de données et physique. Dans ces systèmes, la taille des blocs de 15 données gérés par la couche physique est fixée par les contraintes liées au codage, les contraintes du protocole d'accès au canal de communication et potentiellement à d'autres contraintes (plusieurs tailles discrètes peuvent cependant coexister dans un standard donné). Cependant la taille des paquets de la couche réseau et la taille des blocs de données de la couche 20 physique ne sont pas forcément identiques ni même multiple l'une de l'autre du fait de la possible disparité de volume des informations à transporter. Cette différence de taille entre les paquets de la couche réseau et les blocs de données traités par la couche physique oblige la couche liaison de données à réaliser une segmentation qui peut nécessiter un fort taux d'ajout 25 de symboles de bourrage entraînant une perte d'efficacité d'utilisation de la ressource (proche de 50% dans le pire cas). Il est connu dans l'état de la technique des procédés et des systèmes dans lesquels la couche physique propose une pluralité de tailles 30 de conteneurs différentes. La couche physique utilise donc un certain nombre de tailles de conteneurs prédéfinis dans lesquelles les données reçues des couches supérieures doivent être encapsulées. L'encapsulation consiste à intégrer le message de niveau supérieur au sein d'une entité de données du niveau concerné par l'ajout d'informations de contrôle 35 (généralement par le biais d'un en-tête et potentiellement d'un enfin). Le processus inverse, permettant d'extraire le message en enlevant les informations de contrôle dans le but de le passer au niveau supérieur, s'appelle la désencapsulation. Une ou plusieurs tailles de conteneurs physiques peuvent être utilisées permettant ainsi : - de s'adapter par exemple aux conditions de propagation du canal de transmission, dans le cas où un code correcteur d'erreurs n'est pas utilisé, ou - de s'adapter aux contraintes d'accès à la ressource et aux performances de la forme d'onde dans le cas ou plusieurs débits symboles 10 ou une forme d'onde adaptative sont utilisés. Cependant ces différentes tailles de conteneurs (associés à des blocs codeurs) sont généralement en nombre limité (tailles disponibles non continues) et potentiellement décolérées de la taille des paquets gérés par les couches supérieures, ce qui ne permet donc pas de résoudre 15 complètement le problème de la perte d'efficacité liée aux ajouts de symboles de bourrage lors de la segmentation de ces paquets. Il est connu dans l'état de la technique un procédé connu sous le nom de VSP pour « Variable Size Packet » en anglais ou Paquet de taille 20 variable en français qui utilise les différentes tailles de blocs définis dans la norme DVB-RCS pour améliorer l'efficacité d'encapsulation du niveau réseau vers le niveau physique. Cette solution, en plus de la complexité d'implémentation du codeur (plus de 10 entrelaceurs à stocker en mémoire du réseau de portes programmables in situ connu aussi sous le terme 25 anglais de FPGA pour « field programmable gate array »), ne résout pas le problème de l'effet de seuil de l'encapsulation et de l'efficacité associée. Elle permet d'améliorer partiellement l'efficacité d'utilisation mais pas de supprimer complètement le bourrage comme la solution envisagée le propose. 30 La présente invention vise à remédier à ces problèmes en proposant un procédé de transmission des données évitant une perte d'efficacité provoquée en particulier par les ajouts de symboles de bourrage liés à la segmentation et à l'encapsulation des paquets. 35 Il est proposé, selon un aspect de l'invention un procédé de traitement de données dans un système de télécommunications satellitaires permettant une adaptation dynamique à la quantité de données à transmettre. Les données sont organisées en un ensemble de paquets 5 contenus dans une première couche d'un modèle de communication. Le procédé comporte une première étape de passage d'une information, indiquant la taille de chaque paquet ou représentative de cette taille, entre la première couche et une deuxième couche. Il comporte aussi une deuxième étape d'encapsulation du paquet et de passage du paquet entre la première io couche et la deuxième couche dans un conteneur, dont la taille est adaptée à l'information indiquant la taille d'un paquet ou représentative de cette taille. Le procédé comporte enfin une troisième étape d'application d'un code correcteur d'erreurs en bloc, sur les données contenues dans le conteneur, le code correcteur adaptant dynamiquement sa taille à la taille du conteneur. 15 La solution proposée permet donc de supprimer totalement l'ajout de symboles de bourrage lié à des segmentations de différentes tailles de paquets fournis par les niveaux supérieurs du processus de transmission. 20 Pour ce faire l'invention propose de supprimer l'étape de segmentation et de modifier le code correcteur d'erreurs en bloc afin que celui-ci s'adapte à la taille des paquets de niveau supérieur qui ont été encapsulés précédemment. Ceci implique donc que le code s'adapte également dynamiquement à la taille de ces paquets qui lui sont fournis en entrée. 25 Avantageusement la troisième étape est adaptée pour utiliser un code correcteur d'erreurs quasi-cyclique à protographes. Pour ceci la taille d'une matrice de base associée au code quasi cyclique à protographe est adaptée dynamiquement à l'information indiquant la taille du paquet ou 30 représentative de cette taille. Cette adaptation est réalisée en changeant un facteur d'extension associé à la matrice de base. Ainsi la taille de la matrice du code quasi cyclique à protographe sera adaptée à la taille du conteneur en changeant le facteur d'extension de la matrice de base de manière adéquate. 35 Un code quasi cyclique à protographe correspond à une version particulière des codes LDPC (Low Density Parity Check en Anglais). Un code LDPC est défini par une matrice de parité (creuse) H. La version quasi-cyclique, correspond à une forme particulière de la matrice de parité B (de taille M x iv) dans laquelle une sous matrice Hb (matrice de base) de taille p x p est répétée dans la matrice H. La matrice H a donc des dimensions correspondant à un multiple des dimensions de la matrice de base tel que M = p* Z et AT = p * Z, Z io correspondant au facteur d'extension. Ces codes ont la particularité de pouvoir être caractérisé uniquement par la sous-matrice Hb (ou matrice de base), ce qui entraine un gain de place dans le réseau de portes programmables d'un facteur z2. 15 De plus, en stockant uniquement la matrice de base Hib, il sera possible de modifier la taille de la matrice H en changeant le facteur Z d'extension de la matrice de base. Cela permet donc d'encoder des blocs de données de tailles différentes sans avoir à stocker un grand nombre de 20 données sur un réseau de portes programmables mais uniquement la matrice de base. La notion de protographe, connu de l'homme du métier, correspond à une représentation particulière simplifiée de la matrice de base 25 définissant un motif de base permettant de générer cette matrice Rb. L'utilisation de codes quasi-cycliques à protographes permet, par rapport à d'autres codes, d'obtenir une meilleure efficacité pour une pluralité de taille de paquets conteneurs ou fragments et ainsi une meilleure 30 adaptabilité dynamique des codes. De plus la grande flexibilité de ces codes n'entraine pas une complexité calculatoire élevée, un besoin de ressources mémoires élevé et/ou un nombre de portes élevé dans le cadre d'une implémentation sur un réseau de portes programmables. Il est connu de l'homme du métier les codes quasi-cycliques basés sur des protographes 35 ARA (pour Acumulate Repeat Acumulate en Anglais), ARJA (pour Accumulate Repeat Jagged Accumulate en anglais), IRA (pour lrregular Repeat Accumulate en anglais), E2RC (pour Efficiently-Encodable Rate-Compatible en anglais), G-LDPC (pour Generalized LDPC codes), etc. Ces codes permettent d'obtenir des taux d'erreurs paquets très faibles ( Avantageusement la première et/ou la deuxième étape sont réalisées par la couche réseau. Avantageusement le procédé comporte en outre une quatrième étape de segmentation réalisée dans la première couche. Avantageusement le système de transmission de données comporte au moins un émetteur/récepteur caractérisé en ce que ledit 10 émetteur/récepteur comporte des moyens pour exécuter les étapes du procédé décrit ci-dessus. L'invention sera mieux comprise et d'autres avantages apparaîtront à la lecture de la description détaillée faite à titre d'exemple non 15 limitatif et à l'aide des figures parmi lesquelles : - La figure 1 présente un mode de réalisation du procédé suivant un aspect de l'invention. - La figure 2 présente un autre mode de réalisation du procédé suivant un aspect de l'invention. 20 Le procédé présenté figure 1 traite des données qui sont organisées en différents paquets de taille pouvant être variable. Le procédé utilise des données qui sont utilisées par une première couche d'un modèle de communication. La première étape 101 consiste au passage d'une 25 information représentative de la taille du paquet à traiter entre la première couche et une deuxième couche. Ensuite l'étape 102 consiste au passage de ce paquet entre la première couche et la deuxième couche. Cette étape permet aussi l'encapsulation des données contenues dans le paquet dans un conteneur. La taille du conteneur est adaptée à l'information représentative 30 de la taille d'un paquet, Cette étape est réalisée dans la deuxième couche du modèle de communication. Ensuite l'étape 103 permet l'application d'un code correcteur d'erreurs en bloc sur les données contenues dans le conteneur. Les paramètres de dimensionnement utilisés pour l'application de ce code correcteur d'erreurs en bloc sont choisis en fonction de la taille du conteneur. Ces paramètres varient au cours du temps afin de s'adapter en permanence à la taille des conteneurs. La figure 2 présente un mode de réalisation de l'invention dans le 5 cas où le modèle de communication utilisé correspond à la pile protocolaire TCP/IP et que le procédé utilise au niveau de la couche physique un code quasi cyclique à protographes. Dans cette figure, un paquet IP est encapsulé sans fragmentation dans un paquet de niveau MAC (pour Medium Access Control en anglais), 10 comprenant un en-tête (ou « header » en anglais) et un enfin (ici un motif de CRC, pour Control de Redondance Cyclique). Le paquet MAC est ensuite directement encapsulé dans une trame physique, contenant un en-tête (« header » en anglais) et un enfin (« trailer » en anglais). Le codeur adapte sa taille directement à la taille de la 15 trame physique. Dans un mode de réalisation du procédé le code correcteur utilisé est basé sur un code quasi-cyclique à protographes. L'utilisation de ces codes permet d'obtenir les meilleures performances car ces codes 20 permettent une adaptation facile du code à la taille des paquets/conteneurs sur lesquels appliquer le code correcteur. La flexibilité de ce type de code, permet de réaliser cette extension matricielle en temps réel sans complexité supplémentaire ni besoins importants en espace mémoire ou en nombre de portes dans le cas de la réalisation du procédé sur un réseau de portes 25 programmables in situ. Il est connu de l'homme du métier les codes quasi-cycliques basés sur des protographes (ARA, ARJA , IRA, E2RC, G-LDPC, etc.). Ces codes permettent d'obtenir des taux d'erreurs paquets très faibles ( Dans un autre mode de réalisation le procédé et le système respectent la norme DVB-S2 (acronyme anglais désignant l'évolution du standard DVB-S : Digital Video Broadcasting - Satellite). Dans ce cas, les codes utilisés sont des codes quasi-cycliques à protographes de type extended-IRA. Cependant dans le système ou procédé connu seulement trois tailles sont envisagées pour les paquets traités par la couche physique. Dans un mode de réalisation, il est possible de modifier la couche physique afin de rendre flexible la taille des paquets utilisés en modifiant les facteurs d'extension afin d'obtenir la taille de paquet souhaité. Il faudrait pour cela changer la matrice du code LDPC par une matrice quasi-cyclique et jouer sur le facteur d'extension. Dans un autre mode de réalisation le procédé et le système respectent une norme de télécommunication terrestre WiMAX. Dans cette norme le code correcteur d'erreurs utilisé par défaut est un turbo code, qui n'est pas flexible en terme de taille des paquets. Dans un mode de réalisation il est donc possible de modifier ce code correcteur d'erreurs afin par exemple de le remplacer par un code quasi-cyclique à protographes utilisant les paramètres suivant qui est un code optionnel pouvant être utilisé par la norme. 10 Dans l'ensemble des modes de réalisation présentés dans les trois paragraphes précédents la couche liaison de données n'a plus besoin d'effectuer une segmentation des paquets reçus, lors de l'encapsulation des données dans les conteneurs physiques. Ces paquets reçus des couches 15 supérieures sont donc directement traités et l'application du code correcteur d'erreurs est réalisée directement sur ces paquets. Dans un mode de réalisation un ou plusieurs émetteurs/récepteurs terrestres ainsi qu'un satellite permettent d'utiliser le procédé tel que décrit 20 dans les différents modes de réalisation, dans les paragraphes ci-dessus. Les différentes étapes du procédé peuvent être réalisées par exemples sur un processeur générique, un processeur spécifique, un circuit intégré propre à une application (connu aussi sous le nom anglais d'ASIC pour « Application-Specific Integrated Circuit ») ou un réseau de portes 25 programmables in situ. REVENDICATIONS1. Procédé de traitement de données dans un système de télécommunications, lesdites données étant organisées en un ensemble de paquets contenus dans une première couche d'un modèle de communication, ledit procédé étant caractérisé par : - une première étape (101) de passage d'une information indiquant la taille d'un paquet ou représentative de cette taille d'un paquet entre ladite première couche et une deuxième couche, - une deuxième étape (102) de passage dudit paquet entre ladite première couche et ladite deuxième couche et d'encapsulation dudit paquet dans un conteneur, dont la taille est adaptée à ladite information indiquant la taille d'un paquet ou représentative de cette taille, ledit conteneur appartenant à ladite deuxième couche, - une troisième étape (103) d'application d'un code correcteur d'erreurs en bloc sur les données contenues dans ledit conteneur, le dimensionnement du 15 code correcteur étant adapté pour traiter des blocs de la taille du conteneur. 2. Procédé selon la revendication 1 dans lequel ladite troisième étape utilise un code correcteur d'erreurs en bloc de type code quasi-cyclique à protographes, de plus ladite troisième étape est adaptée pour modifier 20 dynamiquement une taille d'une matrice de base associée audit code quasi cyclique à protographes à partir de la taille du conteneur, cette modification dynamique de la taille de la matrice étant réalisée en changeant un facteur d'extension associé à ladite matrice. 25 3. Procédé selon la revendication 1 dans lequel ladite troisième étape est adaptée pour utiliser un turbo-code. 4. Procédé selon l'une des revendications précédentes dans lequel le dimensionnement du code correcteur d'erreurs réalisé lors de la troisième 30 étape (103) d'adaptation du code correcteur d'erreurs correspond exactement à la taille dudit conteneur. 5. Procédé selon l'une des revendications précédentes dans lequel le dimensionnement du code correcteur d'erreurs réalisé lors de la troisièmeétape (103) d'adaptation du code correcteur d'erreurs est effectué pour un rendement donné. 6. Procédé selon l'une des revendications précédentes dans lequel ladite s troisième étape est réalisée par la couche physique. 7. Procédé selon l'une des revendications précédentes dans lequel ladite première étape et/ou ladite deuxième étape sont réalisées par la couche liaison de données. 10 8. Procédé selon l'une des revendications 1 à 6 dans lequel ladite première étape et/ou ladite deuxième étape sont réalisées par la couche réseau. 9. Procédé selon l'une des revendications précédentes comportant en outre 15 une quatrième étape de segmentation réalisée dans ladite première couche. 10. Système de transmission de données comportant au moins un émetteur/récepteur caractérisé en ce que ledit émetteur/récepteur comporte des moyens pour exécuter les étapes du procédé selon au moins une des 20 revendications 1 à 9.