Code fontaine
En thĂ©orie du codage, les codes fontaine (Ă©galement appelĂ©s codes d'effacement sans rendement fixe, en anglais rateless erasure codes) sont une classe de codes d'effacement ayant la propriĂ©tĂ© qu'une sĂ©quence potentiellement illimitĂ©e de symboles encodĂ©s peut ĂȘtre gĂ©nĂ©rĂ©e Ă partir d'un ensemble donnĂ© de symboles source, de telle sorte que les symboles source originaux puissent idĂ©alement ĂȘtre reconstruits Ă partir de n'importe quel sous-ensemble de symboles encodĂ©s dont la taille est Ă©gale ou seulement lĂ©gĂšrement supĂ©rieure au nombre de symboles source. Le terme fontaine ou sans rendement fixe fait rĂ©fĂ©rence au fait que ces codes ne prĂ©sentent pas un rendement de code fixe.
Un code fontaine est optimal si les k symboles source originaux peuvent ĂȘtre reconstruits Ă partir de n'importe quels k symboles encodĂ©s reçus avec succĂšs (c'est-Ă -dire en excluant ceux qui ont Ă©tĂ© effacĂ©s). Il existe des codes fontaine dotĂ©s d'algorithmes efficaces d'encodage et de dĂ©codage, qui permettent la reconstruction des k symboles source originaux Ă partir de n'importe quels k symboles encodĂ©s avec une forte probabilitĂ©, oĂč k est seulement lĂ©gĂšrement supĂ©rieur Ă k.
Les codes LT ont été la premiÚre réalisation pratique des codes fontaine. Les codes Raptor et les codes en ligne ont été introduits par la suite et atteignent une complexité d'encodage et de décodage en temps linéaire grùce à une étape de pré-codage des symboles d'entrée. Le codage réseau triangulaire (en) permet un encodage et un décodage linéaires en utilisant un encodage non linéaire et un décodage par la méthode de substitution arriÚre.
Applications
[modifier | modifier le code]Les codes fontaine sont applicables de maniĂšre flexible Ă un rendement de code fixe, ou dans les cas oĂč un rendement fixe ne peut pas ĂȘtre dĂ©terminĂ© a priori, et oĂč un encodage et un dĂ©codage efficaces de grandes quantitĂ©s de donnĂ©es sont nĂ©cessaires.
Un premier exemple est celui d'un carrousel de donnĂ©es (en), oĂč un fichier volumineux est continuellement diffusĂ© vers un ensemble de rĂ©cepteurs[1]. En utilisant un code d'effacement Ă rendement fixe, un rĂ©cepteur qui manque un symbole source (en raison d'une erreur de transmission) est confrontĂ© au problĂšme du collectionneur de coupons : il doit recevoir avec succĂšs un symbole encodĂ© qu'il ne possĂšde pas dĂ©jĂ . Ce problĂšme devient beaucoup plus manifeste lors de l'utilisation d'un code d'effacement classique de courte longueur, car le fichier doit ĂȘtre divisĂ© en plusieurs blocs, chacun Ă©tant encodĂ© sĂ©parĂ©ment : le rĂ©cepteur doit alors collecter le nombre requis de symboles encodĂ©s manquants pour chaque bloc. En utilisant un code fontaine, il suffit au rĂ©cepteur de rĂ©cupĂ©rer n'importe quel sous-ensemble de symboles encodĂ©s dont la taille est lĂ©gĂšrement supĂ©rieure Ă l'ensemble des symboles source. (En pratique, la diffusion est gĂ©nĂ©ralement programmĂ©e pour une durĂ©e fixe par un opĂ©rateur, en fonction des caractĂ©ristiques du rĂ©seau et des rĂ©cepteurs ainsi que de la fiabilitĂ© de livraison souhaitĂ©e ; le code fontaine est ainsi utilisĂ© Ă un rendement de code dĂ©terminĂ© dynamiquement au moment oĂč la diffusion du fichier est planifiĂ©e.)
Un autre domaine d'application est celui de l'ARQ hybride dans les scĂ©narios de multidiffusion fiable : les informations de paritĂ© demandĂ©es par un rĂ©cepteur peuvent potentiellement ĂȘtre utiles Ă tous les rĂ©cepteurs du groupe de multidiffusion.
Dans les standards
[modifier | modifier le code]Les codes Raptor sont les codes fontaine les plus efficaces Ă ce jour[2], possĂ©dant des algorithmes d'encodage et de dĂ©codage trĂšs performants en temps linĂ©aire, et ne nĂ©cessitant qu'un petit nombre constant d'opĂ©rations XOR par symbole gĂ©nĂ©rĂ©, tant pour l'encodage que pour le dĂ©codage[3]. La RFC 5053[4] de l'IETF spĂ©cifie en dĂ©tail un code Raptor systĂ©matique, qui a Ă©tĂ© adoptĂ© dans de multiples standards au-delĂ de l'IETF, notamment au sein du standard MBMS du 3GPP pour la livraison de fichiers en diffusion et les services de streaming, du standard IPDC (en) de DVB-H pour la fourniture de services IP sur les rĂ©seaux DVB, et de DVB-IPTV (en) pour la fourniture de services de tĂ©lĂ©vision commerciale sur rĂ©seau IP. Ce code peut ĂȘtre utilisĂ© avec jusqu'Ă 8 192 symboles source par bloc source, et un total de jusqu'Ă 65 536 symboles encodĂ©s gĂ©nĂ©rĂ©s par bloc source. Ce code prĂ©sente un surcoĂ»t de rĂ©ception relatif moyen de 0,2 % lorsqu'il est appliquĂ© Ă des blocs source de 1 000 symboles, et un surcoĂ»t de rĂ©ception relatif infĂ©rieur Ă 2 % avec une probabilitĂ© de 99,9999 %[5]. Le surcoĂ»t de rĂ©ception relatif est dĂ©fini comme les donnĂ©es d'encodage supplĂ©mentaires nĂ©cessaires au-delĂ de la longueur des donnĂ©es source pour reconstruire les donnĂ©es source originales, exprimĂ© en pourcentage de la taille des donnĂ©es source. Par exemple, si le surcoĂ»t de rĂ©ception relatif est de 0,2 %, cela signifie que des donnĂ©es source d'une taille de 1 mĂ©gaoctet peuvent ĂȘtre reconstruites Ă partir de 1,002 mĂ©gaoctet de donnĂ©es encodĂ©es.
Un code Raptor plus avancĂ©, offrant une plus grande flexibilitĂ© et un surcoĂ»t de rĂ©ception amĂ©liorĂ©, appelĂ© RaptorQ, a Ă©tĂ© spĂ©cifiĂ© dans la RFC 6330[6] de l'IETF. Le code RaptorQ spĂ©cifiĂ© peut ĂȘtre utilisĂ© avec jusqu'Ă 56 403 symboles source par bloc source, et un total de jusqu'Ă 16 777 216 symboles encodĂ©s gĂ©nĂ©rĂ©s par bloc source. Ce code est capable de reconstruire un bloc source Ă partir de n'importe quel ensemble de symboles encodĂ©s dont le nombre est Ă©gal au nombre de symboles source du bloc source avec une forte probabilitĂ©, et dans de rares cas Ă partir d'un nombre lĂ©gĂšrement supĂ©rieur au nombre de symboles source du bloc source. Le code RaptorQ fait partie intĂ©grante de l'instanciation ROUTE spĂ©cifiĂ©e dans la norme ATSC A-331 (ATSC 3.0).
Pour le stockage de données
[modifier | modifier le code]Les codes d'effacement sont utilisĂ©s dans les applications de stockage de donnĂ©es en raison des Ă©conomies considĂ©rables sur le nombre d'unitĂ©s de stockage pour un niveau donnĂ© de redondance et de fiabilitĂ©. Les exigences de conception des codes d'effacement pour le stockage de donnĂ©es, en particulier pour les applications de stockage distribuĂ©, peuvent ĂȘtre assez diffĂ©rentes par rapport aux scĂ©narios de communication ou de diffusion de donnĂ©es en continu. L'une des exigences du codage pour les systĂšmes de stockage de donnĂ©es est la forme systĂ©matique, c'est-Ă -dire que les symboles du message original font partie des symboles codĂ©s.[rĂ©f. nĂ©cessaire] La forme systĂ©matique permet de lire les symboles du message sans dĂ©codage Ă partir d'une unitĂ© de stockage. De plus, Ă©tant donnĂ© que la bande passante et la charge de communication entre les nĆuds de stockage peuvent constituer un goulet d'Ă©tranglement, les codes permettant une communication minimale sont trĂšs bĂ©nĂ©fiques, en particulier lorsqu'un nĆud tombe en panne et qu'une reconstruction du systĂšme est nĂ©cessaire pour atteindre le niveau initial de redondance. Ă cet Ă©gard, les codes fontaine devraient permettre un processus de rĂ©paration efficace en cas de dĂ©faillance : lorsqu'un seul symbole encodĂ© est perdu, la reconstruction de ce symbole ne devrait pas nĂ©cessiter trop de communication et de calcul entre les autres symboles encodĂ©s. En fait, la latence de rĂ©paration peut parfois ĂȘtre plus importante que les Ă©conomies d'espace de stockage. Les codes fontaine rĂ©parables[7] visent Ă rĂ©pondre aux objectifs de conception des codes fontaine pour les systĂšmes de stockage. Une Ă©tude dĂ©taillĂ©e sur les codes fontaine et leurs applications est disponible dans[8].
Une approche diffĂ©rente du stockage distribuĂ© utilisant les codes fontaine a Ă©tĂ© proposĂ©e dans Liquid Cloud Storage[9],[10]. Liquid Cloud Storage repose sur l'utilisation d'un grand code d'effacement tel que le code RaptorQ spĂ©cifiĂ© dans la RFC 6330[6] de l'IETF (qui offre une protection des donnĂ©es significativement meilleure que d'autres systĂšmes), sur l'utilisation d'un processus de rĂ©paration en arriĂšre-plan (qui rĂ©duit significativement les besoins en bande passante de rĂ©paration par rapport Ă d'autres systĂšmes), et sur l'utilisation d'une organisation des donnĂ©es en flux (qui permet un accĂšs rapide aux donnĂ©es mĂȘme lorsque tous les symboles encodĂ©s ne sont pas disponibles).
Voir aussi
[modifier | modifier le code]- Code en ligne
- Codage réseau linéaire
- Partage de secret
- Codes Tornado, le précurseur des codes fontaine
Notes et références
[modifier | modifier le code]- â J. Byers, M. Luby, M. Mitzenmacher, A. Rege, « A Digital Fountain Approach to Reliable Distribution of Bulk Data »,
- â « Qualcomm Raptor Technology - Forward Error Correction » [archive du ], (consultĂ© le )
- â (Shokrollahi 2006)
- â (en) Request for comments no 5053
- â T. Stockhammer, A. Shokrollahi, M. Watson, M. Luby, T. Gasiba, « Application Layer Forward Error Correction for Mobile Multimedia Broadcasting », CRC Press,â
- 1 2 (en) Request for comments no 6330
- â Megasthenis Asteris et Alexandros G. Dimakis, « Repairable Fountain Codes », IEEE Journal on Selected Areas in Communications, vol. 32, no 5,â , p. 1037â1047 (DOI 10.1109/JSAC.2014.140522, arXiv 1401.0734, S2CID 1300984)
- â (en) Suayb S. Arslan, « Incremental Redundancy, Fountain Codes and Advanced Topics », .
- â Michael Luby, Roberto Padovani, Thomas J. Richardson, Lorenz Minder et Pooja Aggarwal, « Liquid Cloud Storage », ACM Transactions on Storage, vol. 15,â , p. 1â49 (DOI 10.1145/3281276, arXiv 1705.07983, S2CID 738764)
- â (en) M. Luby, R. Padovani, T. Richardson, L. Minder et P. Aggarwal, « Liquid Cloud Storage », .
Bibliographie
[modifier | modifier le code]- Amin Shokrollahi and Michael Luby, « Raptor Codes », Now Publishers, vol. 6, nos 3â4,â , p. 213â322 (DOI 10.1561/0100000060, S2CID 1731099)
- Michael Luby, The 43rd Annual IEEE Symposium on Foundations of Computer Science, 2002. Proceedings., , 271â282 p. (ISBN 0-7695-1822-2, DOI 10.1109/sfcs.2002.1181950, S2CID 1861068), « LT codes »
- A. Shokrollahi, Raptor Codes, vol. 52, , 2551â2567 p. (DOI 10.1109/tit.2006.874390, Bibcode 2006ITIT...52.2551S, S2CID 61814971), chap. 6.
- P. Maymounkov, « Online Codes », (Technical Report),â (lire en ligne)
- David J. C. MacKay, Information Theory, Inference, and Learning Algorithms, Cambridge University Press, (ISBN 0-521-64298-1, Bibcode 2003itil.book.....M, lire en ligne)
- M. Luby, A. Shokrollahi, M. Watson, T. Stockhammer, Raptor Forward Error Correction Scheme for Object Delivery, .
- M. Luby, A. Shokrollahi, M. Watson, T. Stockhammer, L. Minder, RaptorQ Forward Error Correction Scheme for Object Delivery, .