Brevet FR3015156A1 — publié le 20150619

Procédé d'encodage et procédé de décodage d'une liste d'identifiants, produits programme d'ordinateur associés, émetteur et récepteur mettant en oeuvre lesdits procédés La présente invention concerne un procédé d'encodage d'une liste d'identifiants utilisable dans un réseau informatique, le réseau informatique comportant au moins un émetteur et au moins un récepteur, le ou chaque émetteur et le ou chaque récepteur comportant une même liste globale d'identifiants différents, chaque identifiant présentant une caractéristique technique, le ou chaque émetteur étant apte à émettre un paquet de données à destination d'une ou plusieurs récepteurs différents, chaque paquet de données comportant au moins un code correspondant à une liste d'identifiants codée, dans laquelle chaque identifiant n'est présent au plus qu'une fois. Dans le domaine de la télécommunication ou de l'informatique, il est souvent nécessaire de transmettre une liste d'identifiants tous différents appartenant à un ensemble plus grand d'identifiants connus. Une telle transmission est par exemple nécessaire, lorsqu'un émetteur transmet un paquet de données commun pour une pluralité de récepteurs. Dans ce cas, la liste d'identifiants de ces récepteurs est généralement incluse en entête du paquet de donnés à transmettre et cet entête est transmis ensuite à l'ensemble de récepteurs du réseau informatique. A la réception de cet entête, chaque récepteur en extrait la liste d'identifiants et si son identifiant est dans la liste, ce récepteur continue à recevoir le paquet de données entièrement. Dans le cas contraire, le récepteur ignore la réception du paquet ou le transmet à un autre récepteur sans l'avoir lu. Dans des réseaux informatiques de grandes dimensions, l'identifiant d'un récepteur est représenté généralement par un nombre de longueur importante ou par une combinaison complexe de chiffres et de lettres ou d'autres symboles. La taille de l'entête d'un paquet de données comportant une liste de tels identifiants dévient donc très importante et dépasse parfois la taille du reste du paquet. Ceci conduit notamment à une surcharge du réseau informatique. Différents techniques de transmission permettant de diminuer la taille d'une telle liste d'identifiants existent dans l'état de la technique. Notamment, il est commun d'encoder une liste d'identifiants tous différents appartenant à un ensemble plus grand d'identifiants connus. La théorie de codage montre par ailleurs que le nombre minimal de bits nécessitant pour transmettre une liste d'identifiants appartenant à un ensemble plus grand d'identifiants est égal à l'expression suivante : NB = [10g2 CNR avec [.1 désignant la partie entière par excès, NB désignant le nombre de bits, P désignant le nombre de destinataires, N désignant le nombre total de récepteurs, et CN désignant le nombre de sous-ensembles de cardinal P, dans un ensemble de cardinal N. Un encodage optimal est un encodage permettant d'obtenir une longueur de code de cette taille. Un encodage optimal donne donc un code de taille théorique minimale pour une liste d'identifiants appartenant à un ensemble plus grand d'identifiants. Cette taille théorique minimale permet en particulier de transmettre efficacement une liste d'identifiants même dans un réseau informatique de grande dimension. Toutefois, cette solution n'est pas complétement satisfaisante. Notamment, l'utilisation d'un encodage optimal nécessite généralement de maintenir dans la mémoire de l'émetteur et de chaque récepteur une table de codage comportant toutes les correspondances entre les codes et les identifiants. La taille de cette table est très importante même pour un réseau informatique de dimension raisonnable. La présente invention a pour but de proposer un procédé d'encodage optimal sans nécessiter de maintenir une table de codage dans la mémoire. A cet effet, l'invention a pour objet un procédé d'encodage d'une liste d'identifiants utilisable dans un réseau informatique, comprenant les étapes suivantes : - associer à chaque identifiant un nombre ordinal compris entre un et le nombre total d'identifiants dans la liste globale d'identifiants, le nombre étant différent pour des identifiants différents ; - ordonner selon une relation d'ordre strict prédéterminée, la liste d'identifiant suivant le nombre ordinal associé à chaque identifiant pour obtenir une liste triée d'identifiants ; - définir une première variable entière égale au nombre d'identifiants dans la liste d'identifiants à transmettre, initialiser une liste triée d'identifiants précédente par la liste triée d'identifiants ; - tant que la première variable est supérieure à zéro, coder le premier identifiant de la liste triée d'identifiants précédente par un code élémentaire correspondant au nombre de sous-ensembles de la liste globale d'identifiants de cardinal égal au nombre d'identifiants de la liste triée d'identifiants précédente et comportant au moins un identifiant dont le nombre ordinal associé est en relation d'ordre strict prédéterminée avec le nombre ordinal associé au premier identifiant de la liste triée d'identifiants précédente, enlever cet identifiant de la liste triée d'identifiants précédente pour obtenir une liste triée d'identifiants suivante, et décrémenter d'un la première variable ; - coder la liste d'identifiants par un code correspondant à la somme de tous les codes élémentaires obtenus. Suivant d'autres aspects avantageux de l'invention, le procédé d'encodage d'une liste d'identifiants comprend une caractéristique suivante : - un premier nombre ordinal est en relation d'ordre strict prédéterminée avec un deuxième nombre ordinal lorsque le premier nombre ordinal est strictement supérieur au deuxième nombre ordinal ; - il comporte en outre les étapes suivantes : + définir une valeur maximale intermédiaire égale au nombre total d'identifiants dans la liste globale d'identifiants ; + varier une deuxième variable entière entre le nombre ordinal du premier identifiant de la liste triée d'identifiants précédente et la valeur maximale intermédiaire décrémentée d'un ; + pour chaque valeur de la deuxième variable, calculer le nombre de sous-ensembles de cardinal égal à la première variable décrémentée d'un, dans un ensemble de cardinal égal à la deuxième variable ; + calculer un code élémentaire correspondant au premier identifiant de la liste triée d'identifiants précédente comme la somme desdits nombres de sous-ensembles, c'est-à-dire : max-1 ej = CI-1 i=k1 avec k1 désignant le nombre associé audit premier identifiant, i désignant ladite deuxième variable, max désignant ladite valeur maximale, CL-1 désignant ledit nombre de sous-ensembles, et Ci désignant ledit code élémentaire. + mettre la valeur maximale intermédiaire égale au nombre associé au premier identifiant décrémentée d'un. L'invention a également pour objet un produit programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont mises en oeuvre par un calculateur, mettent en oeuvre le procédé d'encodage tel que défini ci-dessus. L'invention a également pour objet un émetteur pour un réseau informatique, le réseau informatique comportant au moins un récepteur, l'émetteur et le ou chaque récepteur comportant une même liste global d'identifiants différents, chaque identifiant présentant une caractéristique technique, l'émetteur étant apte à émettre un paquet de données à destination d'une ou plusieurs récepteurs différents, chaque paquet de données comportant au moins un code correspondant à une liste d'identifiants codée, dans laquelle chaque identifiant n'est présent au plus qu'une fois, l'émetteur comportant un module d'encodage apte à : - associer à chaque identifiant un nombre ordinal compris entre un et le nombre total d'identifiants dans la liste globale d'identifiants, le nombre étant différent pour des identifiants différents ; - ordonner selon une relation d'ordre strict prédéterminée, la liste d'identifiant suivant le nombre ordinal associé à chaque identifiant pour obtenir une liste triée d'identifiants ; - définir une première variable entière égale au nombre d'identifiants dans la liste d'identifiants à transmettre, initialiser une liste triée d'identifiants précédente par la liste triée d'identifiants ; - tant que la première variable est supérieure à zéro, coder le premier identifiant de la liste triée d'identifiants précédente par un code élémentaire correspondant au nombre de sous-ensembles de la liste globale d'identifiants de cardinal égal au nombre d'identifiants de la liste triée d'identifiants précédente et comportant au moins un identifiant dont le nombre ordinal associé est en relation d'ordre strict prédéterminée avec le nombre ordinal associé au premier identifiant de la liste triée d'identifiants précédente, enlever cet identifiant de la liste triée d'identifiants précédente pour obtenir une liste triée d'identifiants suivante, et décrémenter d'un la première variable ; - coder la liste d'identifiants par un code correspondant à la somme de tous les codes élémentaires obtenus. L'invention a également pour objet un procédé de décodage d'une liste d'identifiants utilisable dans un réseau informatique, le réseau informatique comportant au moins un émetteur et au moins un récepteur, le ou chaque émetteur et le ou chaque récepteur comportant une même liste global d'identifiants différents, chaque identifiant présentant une caractéristique technique, le ou chaque émetteur étant apte à émettre un paquet de données à destination d'une ou plusieurs récepteurs différents, chaque paquet de données comportant au moins un code correspondant à une liste d'identifiants codée, dans laquelle chaque identifiant n'est présent au plus qu'une fois, le procédé comportant les étapes suivantes : - associer à chaque identifiant un nombre ordinal compris entre un et le nombre d'identifiants dans la liste globale d'identifiants, le nombre étant différent pour des identifiants différents ; - recevoir un nombre correspondant au nombre d'identifiants dans la liste d'identifiants à décoder, et un code correspondant à cette liste d'identifiants; - définir une valeur maximale intermédiaire égale au nombre total de récepteurs et une première variable entière égale au nombre d'identifiants dans la liste d'identifiants à décoder ; - calculer le nombre de sous-ensembles de cardinal égal à la première variable décrémentée d'un, dans un ensemble de cardinal égal à la valeur maximale intermédiaire décrémentée d'un ; - si la valeur du code est inférieure audit nombre de sous-ensembles, ajouter dans la liste d'identifiants l'identifiant avec un nombre ordinal égal à la valeur maximale intermédiaire, décrémenter la valeur maximale intermédiaire et la première variable d'un ; - si la valeur du code est supérieure ou égale audit nombre de sous-ensembles, décrémenter la valeur maximale intermédiaire d'un et calculer une nouvelle valeur du code égale à la différence entre la valeur actuelle du code et ledit nombre de sous-ensembles. L'invention a également pour objet un produit programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont mises en oeuvre par un calculateur, mettent en oeuvre le procédé de décodage tel que défini ci-dessus. L'invention a également pour objet un récepteur pour un réseau informatique, le réseau informatique comportant au moins un émetteur, le ou chaque émetteur et le récepteur comportant une même liste global d'identifiants différents, chaque identifiant présentant une caractéristique technique, le ou chaque émetteur étant apte à émettre un paquet de données à destination d'une ou plusieurs récepteurs différents, chaque paquet de données comportant au moins un code correspondant à une liste d'identifiants codée, dans laquelle chaque identifiant n'est présent au plus qu'une fois, le récepteur comportant un module de décodage apte à : - associer à chaque identifiant un nombre ordinal compris entre un et le nombre d'identifiants dans la liste globale d'identifiants, le nombre étant différent pour des identifiants différents ; - recevoir un nombre correspondant au nombre d'identifiants dans la liste d'identifiants à décoder, et un code correspondant à cette liste d'identifiants; - définir une valeur maximale intermédiaire égale au nombre total de récepteurs et une première variable entière égale au nombre d'identifiants dans la liste d'identifiants à décoder ; - calculer le nombre de sous-ensembles de cardinal égal à la première variable décrémentée d'un, dans un ensemble de cardinal égal à la valeur maximale intermédiaire décrémentée d'un ; - si la valeur du code est inférieure audit nombre de sous-ensembles, ajouter dans la liste d'identifiants l'identifiant avec un nombre ordinal égal à la valeur maximale intermédiaire, décrémenter la valeur maximale intermédiaire et la première variable d'un ; - si la valeur du code est supérieure ou égale audit nombre de sous-ensembles, décrémenter la valeur maximale intermédiaire d'un et calculer une nouvelle valeur du code égale à la différence entre la valeur actuelle du code et ledit nombre de sous-ensembles. Ces caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels : - la figure 1 est une vue schématique d'un réseau informatique comportant un émetteur selon l'invention et une pluralité de récepteurs selon l'invention ; - la figure 2 est une vue schématique de l'émetteur de la figure 1 ; - la figure 3 est une vue schématique d'un récepteur de la figure 1 ; - la figure 4 est une vue schématique d'un paquet de données apte à être produit par l'émetteur de la figure 2 à être transmis au récepteur de la figure 3 ; - la figure 5 est une vue schématique d'une table de codage selon l'invention comportant 3 colonnes et 35 lignes ; - la figure 6 est un organigramme d'un procédé d'encodage selon l'invention, mis en oeuvre par un logiciel d'encodage faisant partie de l'émetteur de la figure 2 ; et - la figure 7 est un organigramme d'un procédé de décodage selon l'invention mis en oeuvre par un logiciel de décodage faisant partie du récepteur de la figure 3. Un réseau 10 informatique est illustré sur la figure 1. Le réseau informatique 10 comporte un émetteur E selon l'invention et une pluralité de récepteurs R1 à RN selon l'invention, le nombre total de récepteurs R1 à RN étant égal à N. En variante, le réseau informatique 10 comporte plusieurs émetteurs E. Le ou chaque émetteur E est par exemple par un équipement électronique tel qu'un ordinateur, un téléphone portable ou tout autre moyen apte à envoyer un paquet 12 de données numériques à destination d'un ou plusieurs récepteurs R1 à RN. Dans la suite de la description, on désignera par P le nombre de destinataires correspondant au nombre des récepteurs R1 à RN auxquels le paquet 12 est destiné. L'architecture de l'émetteur E est illustrée sur la figure 2. Ainsi, comme illustré sur cette figure 2, le récepteur E comporte une unité 20 de traitement de données. L'unité de traitement de données 20 est formée par exemple d'un processeur 22 et d'une mémoire 24 associée à ce processeur 22. Le processeur 22 est apte à exécuter une pluralité de logiciels que la mémoire 24 est apte à stocker. Ainsi, par exemple, la mémoire 24 est apte à stocker un logiciel 26 de génération de données. Un tel logiciel 26 est apte par exemple à générer des données numériques à destination de P récepteurs R1 à RN. L'émetteur E comporte en outre une unité 28 d'émission reliée à l'unité de traitement de données 20. L'unité d'émission 28 est apte à former un paquet de données 12 correspondant aux données numériques générées par le logiciel 26 et à émettre ce paquet 12 dans le réseau informatique 10. Chaque récepteur R1 à RN est par exemple un équipement électronique tel qu'un ordinateur, un téléphone portable ou tout autre moyen apte à recevoir un paquet de données 12 en provenance du ou de chaque émetteur E. L'architecture d'un récepteur Ri est illustrée sur la figure 3. Ainsi, comme illustré sur cette figure 3, le récepteur Ri comporte une unité 30 de traitement de données. L'unité 30 est formée par exemple d'un processeur 32 et d'une mémoire 34 associée à ce processeur 32. Le processeur 32 est apte à exécuter une pluralité de logiciels que la mémoire 34 est apte à stocker. Ainsi, par exemple, la mémoire 34 est apte à stocker un logiciel 36 de consommation de données. Le récepteur Ri comporte en outre une unité 38 de réception reliée à l'unité de traitement de données 30. L'unité de réception 38 est apte à recevoir chaque paquet de données 12 émis dans le réseau informatique 10 par le ou chaque émetteur E et de transmettre les données numériques correspondantes vers le logiciel 36 qui est alors apte à consommer ces données 12 reçues. L'architecture de tous les autres récepteurs R1 à RN est semblable à celle du récepteur R. Chaque récepteur R1 à RN comporte un identifiant Idk unique dans le réseau informatique 10, les identifiants dk sont tous différents. Cet identifiant Idk permet de distinguer de manière unique et certaine chaque récepteur R1 à RN. Chaque identifiant Idk est par exemple un nombre entier positif. En variante, chaque identifiant Idk est une succession de chiffres et/ou de lettres ou d'autres symboles acceptables par le réseau informatique 10. Dans les deux cas, chaque identifiant Idk est apte à être associé à un nombre entier k compris entre 1 et N, le nombre k étant différent pour des identifiants Idk différents. Ainsi, par exemple, le nombre k est le numéro de l'identifiant Idk dans une liste ordonnée comportant l'ensemble des identifiants Idk du réseau informatique 10. Une telle association est apte à être connue par le ou chaque émetteur E et l'ensemble des récepteurs R1 à RN avant toute transmission. En variante, cette association est apte à être définie dans une phase de construction du réseau 10. La structure du paquet de données 12 est illustrée en détail sur la figure 4. Ainsi, comme illustré sur cette figure 4, le paquet de données 12 est formé d'un message applicatif 42 et d'un entête 44. Un tel paquet de données 12 est apte à être généré par l'unité d'émission 28 du ou de chaque émetteur E et être reçu par l'unité de réception 38 de chaque récepteur R1 à RN. Le message applicatif 42 comprend les données numériques générées par le logiciel de génération de données 26 et destinées à un ou plusieurs récepteurs R1 à RN. L'entête 44 comprend toute information auxiliaire permettant de transmettre le paquet 12 au destinataire correspondant via le réseau informatique 10. Ainsi, dans l'exemple de réalisation illustré sur la figure 4, l'entête 44 inclut le nombre P de destinataires et une liste codée L d'identifiants de récepteurs R1 à RN auxquels ce paquet 12 est destiné. Une telle liste d'identifiants L permet par exemple à l'émetteur E d'émettre le paquet 12 dans le réseau informatique 10 sans précision explicite de cheminement. Chaque récepteur R1 à RN est donc apte à recevoir au moins l'entête 44 de chaque paquet 12 émis. Ainsi, l'unité de réception 38 du récepteur correspondant est apte à lire la liste d'identifiants L et, si son identifiant Idk est dans la liste, à continuer la réception du paquet 12. Dans le cas contraire, le récepteur est apte à ignorer la réception du paquet 12 ou à le transmettre vers un autre récepteur R1 à RN. La liste d'identifiants L est encodée par un code C afin de minimiser sa taille. La taille de la liste d'identifiants L est mesurée en nombre NB de bits que cette liste occupe dans l'entête 44. A cet effet, la mémoire 24 de l'émetteur E est apte à stocker en outre un logiciel 46 d'encodage permettant d'encoder la liste d'identifiants L pour chaque paquet 12 émis par cet émetteur E. En variante, un tel encodage est assuré par un module d'encodage indépendant faisant partie du ou de chaque émetteur E. De manière analogue, la mémoire 34 de chaque récepteur R1 à RN est apte à stocker en outre un logiciel 56 de décodage permettant de décoder le code C de chaque paquet 12 reçu par l'unité de réception 38 de ce récepteur R1 à RN pour obtenir la liste d'identifiants L correspondante. En variante, un tel décodage est assuré par un module de décodage indépendant faisant partie de chaque récepteur R1 à RN. Le fonctionnement du logiciel d'encodage 46 de l'émetteur E va désormais être expliqué. Le logiciel d'encodage 46 est mis en oeuvre par un procédé 100 d'encodage d'une liste d'identifiants selon l'invention. Ce procédé d'encodage est basé sur une table Tp de codage pour chaque nombre P d'identifiants de la liste d'identifiants L. Ainsi, pour un paquet de données 12 considéré, une telle table de codage Tp est formée par une pluralité de colonnes au nombre de P et une pluralité de lignes au nombre égal au nombre de sous-ensembles de cardinal P dans un ensemble de cardinal N, c'est- à-dire : [Tp] = CN x P où [Tp] désigne les dimensions de la table Tp. Chaque ligne de la table Tp est numéroté de 0 à a; - 1 et est formée par une liste d'identifiants L comportant P identifiants Idk différents. Chaque identifiant Idk correspond ainsi à une colonne. Dans la suite de la description, on désignera par LG une liste globale ordonnée d'identifiants comportant l'ensemble des identifiants Idk du réseau informatique 10 triés par l'ordre décroissant du nombre k associé à chaque identifiant Idk. La table de codage Tp est construite de façon unique pour N récepteurs et P destinataires d'après une loi décrite ci-dessous. Cette loi utilise certaines propriétés du triangle de Pascal. En particulier, la relation suivante : N-1 CP P-1 = r 1'9 ' cp=P-1 permet de construire la première colonne de la table Tp avec N -P +1 d'identifiants différents. Plus particulièrement, les C/A',11 premières lignes de la première colonne de la table Tp sont remplies par le premier identifiant Idk de la liste globale d'identifiants LG. Les «11 lignes suivantes de la première colonne sont remplies par le deuxième identifiant Idk de la liste globale d'identifiants LG. Finalement, la dernière ligne de la première colonne correspondant au nombre el est remplie par l'identifiant Idk ayant la position N -P + 1 dans liste globale d'identifiants LG. Ainsi, toutes les CIA, lignes de la table sont remplies avec N -P + 1 d'identifiants différents. La deuxième colonne de la table Tp est construite analogiquement en retirant le premier identifiant Idk de la liste globale d'identifiants LG et en décrémentant d'un les nombres N et P. Les autres colonnes sont obtenues en appliquant la même règle récursive. En utilisant l'analyse combinatoire, il est possible de démontrer que la table de codage Tp ainsi construite comporte toutes les listes L différentes possibles comportant P identifiants différents parmi N identifiants du réseau 10. Ainsi, le numéro de chaque ligne détermine de façon unique la liste d'identifiants L correspondante. Le logiciel d'encodage 46 associe alors un code C égal au numéro de la ligne à chaque liste d'identifiants L comportant P identifiants. En conséquence, le nombre de bits NB nécessaires pour transmettre ce code C dans l'entête 44 est égal à la partie entière par excès du logarithme de base deux du nombre de sous-ensembles de cardinal égal au nombre de destinataires P, dans un ensemble de cardinal égal au nombre total de récepteurs N, c'est-à-dire, NB = [10g2 e]. Ceci signifie notamment que l'encodage par la table de codage Tp est un encodage optimal et qu'il n'existe pas d'autres encodages permettant d'obtenir un code C de taille inférieure. Un exemple d'une table de codage Tp pour N = 7 et P = 3 est représenté sur la figure 5. Dans cet exemple, chaque identifiant Idk correspond à un nombre enter allant de 1 à 7. Chaque nombre k associé est simplement égal à l'identifiant Id!, correspondant. Ainsi, dans l'exemple de la figure 5, le code C pour une liste d'identifiants comportant les identifiants « 5 », « 3 » et « 1 » est égal à « 29 ». Le nombre de bits NB nécessaires pour transmettre ce code C est égal à 6 bits. Le procédé d'encodage 100 permet d'obtenir un code C d'une liste d'identifiants L comportant P identifiants correspondant au numéro de la ligne comportant cette liste L dans la table de codage Tp correspondante, ceci étant réalisé sans construction explicite de la table Tp et sans nécessité de la maintenir dans la mémoire. L'organigramme du procédé d'encodage 100 mis en oeuvre par l'unité de traitement 30, est représenté sur la figure 6. Il est mise en oeuvre, à la volée, pendant chaque transmission d'un paquet 12. Lors d'une étape préliminaire 105, le logiciel d'encodage 46 associe à chaque identifiant Idk un nombre k entier compris entre un et le nombre total de récepteurs N, le nombre k étant différent pour des identifiants Idk différents. Cette étape 105 est effectuée par exemple dans la phase de construction du réseau informatique 10. Les résultats de cette association sont ensuite transmis à l'ensemble des récepteur R1 à RN du réseau informatique 10. Lors de l'étape 110, le logiciel d'encodage 46 reçoit du logiciel de génération de données 26, une liste d'identifiants L comportant P indentifiants Idk. Lors de l'étape 115, le logiciel d'encodage 46 trie la liste d'identifiants L par ordre décroissant du nombre k associé à chaque identifiant Id), pour obtenir une liste LT triée d'identifiants. Cette liste triée d'identifiants LT est donc ordonnée et a une forme suivante : LT = (11,12, ...,1p) où chaque correspond à un identifiant Idk de la liste d'identifiants L ordonné selon l'ordre décroissant du nombre k. Lors de l'étape 120, le logiciel d'encodage 46 définit une première variable j entière égale au nombre de destinataires P, une valeur maximale intermédiaire max égale au nombre total de récepteurs N, c'est-à-dire : j = P, max = N. Dans la même étape, le logiciel d'encodage 46 initialise le code C par zéro. Tant que la première variable j est supérieure à zéro lors de l'étape 125, le logiciel d'encodage 46 passe à l'étape 130. Lors de l'étape 130, le logiciel d'encodage 46 varie une deuxième variable i entière entre le nombre k1 associé au premier identifiant 11 de la liste triée d'identifiants LT et la valeur maximale intermédiaire max décrémentée d'un. Dans cette étape 130, le logiciel d'encodage 46 pour chaque valeur de la deuxième variable i, calcule le nombre de sous-ensembles de cardinal égal à la première variable j décrémentée d'un, dans un ensemble de cardinal égal à la deuxième variable i. Le logiciel d'encodage 46 calcule par ailleurs un code élémentaire Ci correspondant au premier identifiant /1 de la liste triée d'identifiants LT comme la somme des nombres de sous-ensembles, c'est-à-dire : max-1 cl 1 i=k1 Lors de l'étape 135, le logiciel d'encodage 46 met la valeur maximale intermédiaire max égale au nombre k1 associé au premier identifiant 11 décrémentée d'un, c'est-à-dire : max = k1 - 1. Lors de l'étape 140, le logiciel d'encodage 46 enlève l'identifiant 11 de la liste triée d'identifiants LT et décrémente d'un la première variable j, c'est-à-dire : LT1 = LT\li = (12,..1i), = j - 1. Le logiciel d'encodage 46 change les noms de variables dans la liste LT' sans permutation de celles-ci, de façon à obtenir une liste suivante : LT' = (11,..li_1). Le logiciel d'encodage 46 actualise la liste LT et la variable j' comme ceci : LT = LT', j Puis, le logiciel d'encodage 46 retourne à l'étape 125. Si lors de l'étape 125, la première variable j est égale à zéro, le logiciel d'encodage 46 passe à l'étape 145. Autrement dit, lors des étapes précédentes, tant que la première variable j est supérieure à zéro, le logiciel d'encodage code le premier identifiant 11 de la liste triée d'identifiants LT par un code élémentaire Ci correspondant au nombre de sous-ensembles de la liste globale LG d'identifiants de cardinal égal au nombre d'identifiants Idk de la liste triée d'identifiants LT, chaque sous-ensemble étant trié par ordre décroissant du nombre k associé à chaque identifiant Idk et comportant dans la première position un identifiant Idk avec un nombre k associé supérieur au nombre k associé au premier identifiant 11 de la liste triée d'identifiants LT, enlève cet identifiant /1 de la liste triée d'identifiants LT et décrémenter d'un la première variable j. Lors de l'étape 145, le logiciel d'encodage 46 calcule le code C en faisant la somme de tous les codes élémentaires Ci obtenus, c'est-à-dire : C =1Ci. j=1 Lors de l'étape 150, le logiciel d'encodage 46 transmet le code C obtenu à l'unité d'émission 28. Le fonctionnement du logiciel de décodage 56 mis en oeuvre par l'unité de traitement 30 de chaque récepteur R1 à RN, mis en oeuvre par un procédé 200 de décodage d'une liste d'identifiants selon l'invention va désormais être expliqué. L'organigramme du procédé de décodage 200 est représenté sur la figure 7. Ce procédé 200 est mise en oeuvre à chaque réception. Lors d'une étape 205 préliminaire, le logiciel de décodage 56 reçoit une liste comportant pour chaque identifiant Idk un nombre k associé à cet identifiant. Cette étape 205 est effectuée par exemple dans la phase de construction du réseau informatique 10. Lors de l'étape 210, le logiciel de décodage 56 reçoit le nombre d'identifiants P et le code C de la part de l'unité de réception 38. Lors de l'étape 215, le logiciel de décodage 56 définit une valeur maximale intermédiaire max égale au nombre total de récepteurs N et une première variable j entière égale au nombre de destinataires P, c'est-à-dire : max = N, j = P. Le logiciel de décodage 56 initialise en outre une liste d'identifiants L par une liste vide, c'est-à-dire : L = (0). Lors de l'étape 220, le logiciel de décodage 56 calcule le nombre F de sous- ensembles de cardinal égal à la première variable j décrémentée d'un, dans un ensemble de cardinal égal à la valeur maximale intermédiaire max décrémentée d'un, c'est-à-dire : F = Ci-1 max-1. Si lors de l'étape 225 la valeur du code C est inférieure audit nombre de sous-ensembles, lors de l'étape 230 le logiciel de décodage 56 ajoute dans la liste d'identifiants L l'identifiant Idk avec un nombre k associé égal à la valeur maximale intermédiaire max, décrémente la valeur maximale intermédiaire max et la première variable j d'un, c'est-à-dire : L = L u tldmaxl, max' = max -1, j' = j -1 max = max', j = j'. Si lors de l'étape 235, la première variable j est supérieure à zéro, le logiciel de décodage 56 retourne à l'étape 225. Si lors de l'étape 225 la valeur du code C est supérieure ou égale audit nombre de sous-ensembles, lors de l'étape 240 le logiciel de décodage 56 décrémente la valeur maximale intermédiaire max d'un et calcule une nouvelle valeur du code égale à la différence entre la valeur actuelle du code C et ledit nombre de sous-ensembles F, c'est-à-dire : max' = max - 1, C' = C - F max = max', C = C'. Le logiciel de décodage 56 retourne ensuite à l'étape 220. Si lors de l'étape 235, la première variable j est égale à zéro, lors de l'étape 245 le logiciel de décodage 56 transmet la liste d'identifiants L obtenue à l'unité de réception 38. Le fonctionnement du réseau informatique 10 comportant un émetteur E selon l'invention et N récepteurs R1 à RN selon l'invention, va désormais être expliqué. Le logiciel de génération de données 26 de l'émetteur E génère des données numériques à destination de P récepteurs R1 à RN. Le logiciel 26 génère par ailleurs une liste d'identifiants L comportant les P identifiants Idk des récepteurs R1 à RN auxquels ces données sont destinées. Puis, le logiciel d'encodage 46 encode cette liste d'identifiants L par un code C selon le procédé d'encodage d'une liste d'identifiants 100. L'unité d'émission 28 forme ensuite un paquet de données 12 en y incluant un message applicatif 42 correspondant aux données numériques générées par le logiciel 26 et un entête 44. L'entête 44 comporte le nombre P et le code C. Le paquet de données 12 est ensuite émis dans le réseau informatique 10 par l'unité d'émission. Puis, ce paquet de données 12 ou au moins son entête 44 est reçu par l'unité de réception 38 de chaque récepteur R1 à RN. L'unité 38 en extrait le nombre P et le code C. Le logiciel de décodage 56 décode ensuite le code C selon le procédé de décodage d'une liste d'identifiants 200, pour obtenir la liste d'identifiants L correspondante. Si l'identifiant Idk d'un récepteur R1 à RN est dans la liste L, l'unité de réception 38 de ce récepteur R1 à RN continue à recevoir le paquet de données 12 et transmet le message applicatif 42 correspondant au logiciel de consommation de données 36. Dans le cas contraire, l'unité de réception 38 ignore la réception du paquet 12 et/ou le transmets vers un autre récepteur R1 à RN. Le procédé d'encodage 100 et le procédé de décodage 200 permettent alors d'encoder et de décoder une liste d'identifiants L en utilisant un code C optimal sans nécessité de maintenir une table de codage Tp dans la mémoire du ou de chaque émetteur E et de l'ensemble des récepteurs Ri à RN. Ceci permet en particulier de réduire considérablement la taille de l'entête 44 pour chaque paquet de données à destination de P récepteurs R1 à RN. Bien entendu, nombreux autres modes de réalisation des procédés d'encodage et de décodage sont également possible. Ainsi, par exemple, dans l'étape 115 du procédé d'encodage 100, il est possible de trier chaque liste d'identifiant L à transmettre par ordre croissant du nombre k associé. Les autres étapes du procédé d'encodage 100 et du procédé de décodage 200 sont modifiées en récurrence. L'utilisation des procédés d'encodage 100 et de décodage 200 selon l'invention n'est pas restreinte uniquement par encodage et décodage d'une liste d'identifiants L dans l'entête d'un paquet de données. De manière générale, ces procédés sont applicables pour encodage et décodage d'une liste quelconque d'éléments comportant des éléments d'un ensemble connu. REVENDICATIONS1.- Procédé (100) d'encodage d'une liste d'identifiants (L) utilisable dans un réseau (10) informatique, le réseau informatique (10) comportant au moins un émetteur (E) et au moins un récepteur (R1, ..., RN), le ou chaque émetteur et le ou chaque récepteur comportant une même liste globale (LG) d'identifiants (Idk) différents, chaque identifiant (Idk) présentant une caractéristique technique, le ou chaque émetteur (E) étant apte à émettre un paquet (12) de données à destination d'une ou plusieurs récepteurs (R1, ..., RN) différents, chaque paquet de données (12) comportant au moins un code (C) correspondant à une liste d'identifiants (L) codée, dans laquelle chaque identifiant (Idk) n'est présent au plus qu'une fois, caractérisé en ce que le procédé d'encodage (100) comprend les étapes suivantes : - associer (105) à chaque identifiant (Idk) un nombre ordinal (k) compris entre un et le nombre total (N) d'identifiants (Idk) dans la liste globale d'identifiants (LG), le nombre (k) étant différent pour des identifiants (Idk) différents ; - ordonner selon une relation d'ordre strict prédéterminée, la liste d'identifiant (L) suivant le nombre ordinal (k) associé à chaque identifiant (Idk) pour obtenir une liste triée (LT) d'identifiants ; - définir (120) une première variable (j) entière égale au nombre (P) d'identifiants dans la liste d'identifiants (L) à transmettre, initialiser une liste triée d'identifiants précédente (LT') par la liste triée d'identifiants (LT) ; - tant que la première variable (j) est supérieure à zéro (125), coder (130, 135) le premier identifiant (11) de la liste triée d'identifiants précédente (LT') par un code élémentaire (CI) correspondant au nombre de sous-ensembles de la liste globale d'identifiants (LG) de cardinal égal au nombre d'identifiants (Idk) de la liste triée d'identifiants précédente (LT') et comportant au moins un identifiant (Idk) dont le nombre ordinal (k) associé est en relation d'ordre strict prédéterminée avec le nombre ordinal (k) associé au premier identifiant (11) de la liste triée d'identifiants précédente (LT'), enlever (140) cet identifiant (11) de la liste triée d'identifiants précédente (LT') pour obtenir une liste triée d'identifiants suivante, et décrémenter d'un la première variable (j) ; - coder (145) la liste d'identifiants par un code (C) correspondant à la somme de tous les codes élémentaires (CI) obtenus. 2.- Procédé (100) selon la revendication 1, caractérisé en ce qu'un premier nombre ordinal est en relation d'ordre strict prédéterminée avec un deuxième nombre ordinal lorsque le premier nombre ordinal est strictement supérieur au deuxième nombre ordinal. 3.- Procédé (100) selon la revendication 2, caractérisé en ce qu'il comporte en outre les étapes suivantes : - définir (120) une valeur maximale intermédiaire (max) égale au nombre total (N) d'identifiants (Idk) dans la liste globale (LG) d'identifiants ; - varier (130) une deuxième variable (i) entière entre le nombre ordinal (k1) du premier identifiant (11) de la liste triée d'identifiants précédente (LT') et la valeur maximale intermédiaire (max) décrémentée d'un ; - pour chaque valeur de la deuxième variable (i), calculer le nombre de sous-ensembles de cardinal égal à la première variable (j) décrémentée d'un, dans un ensemble de cardinal égal à la deuxième variable (i) ; - calculer (130) un code élémentaire (Ci) correspondant au premier identifiant (11) de la liste triée d'identifiants précédente (LT') comme la somme desdits nombres de sous-ensembles, c'est-à-dire : max-1 = ctj-1 i=k1 avec k1 désignant le nombre associé audit premier identifiant, i désignant ladite deuxième variable, max désignant ladite valeur maximale, CI-1 désignant ledit nombre de sous-ensembles, et Ci désignant ledit code élémentaire. - mettre (140) la valeur maximale intermédiaire (max) égale au nombre (k1) associé au premier identifiant (11) décrémentée d'un. 4.- Produit programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont mises en oeuvre par un calculateur, mettent en oeuvre le procédé d'encodage (100) selon l'une quelconque des revendications précédentes. 5.- Émetteur (E) pour un réseau (10) informatique, le réseau informatique (10) comportant au moins un récepteur (R1, RN),l'émetteur et le ou chaque récepteur comportant une même liste globale (LG) d'identifiants (Idk) différents, chaque identifiant (Idk) présentant une caractéristique technique, l'émetteur (E) étant apte à émettre un paquet (12) de données à destination d'une ou plusieurs récepteurs (R1, ..., RN) différents, chaque paquet de données (12) comportant au moins un code (C) correspondant à une liste d'identifiants (L) codée, dans laquelle chaque identifiant (Idk) n'est présent au plus qu'une fois, caractérisé en ce qu'il comporte un module (46) d'encodage apte à : - associer (105) à chaque identifiant (Idk) un nombre ordinal (k) compris entre un et le nombre total (N) d'identifiants (Idk) dans la liste globale d'identifiants (LG), le nombre (k) étant différent pour des identifiants (Idk) différents ; - ordonner selon une relation d'ordre strict prédéterminée, la liste d'identifiants (L) suivant le nombre ordinal (k) associé à chaque identifiant (Idk) pour obtenir une liste triée (LT) d'identifiants ; - définir (120) une première variable (j) entière égale au nombre (P) d'identifiants dans la liste d'identifiants (L) à transmettre, initialiser une liste triée d'identifiants précédente (LT') par la liste triée d'identifiants (LT) ; - tant que la première variable (j) est supérieure à zéro (125), coder (130, 135) le premier identifiant (11) de la liste triée d'identifiants précédente (LT') par un code élémentaire (Ci) correspondant au nombre de sous-ensembles de la liste globale d'identifiants (LG) de cardinal égal au nombre d'identifiants (Idk) de la liste triée d'identifiants précédente (LT') et comportant au moins un identifiant (Idk) dont le nombre ordinal (k) associé est en relation d'ordre strict prédéterminée avec le nombre ordinal (k) associé au premier identifiant (11) de la liste triée d'identifiants précédente (LT'), enlever (140) cet identifiant (11) de la liste triée d'identifiants précédente (LT') pour obtenir une liste triée d'identifiants suivante, et décrémenter d'un la première variable (j) ; - coder (145) la liste d'identifiants par un code (C) correspondant à la somme de tous les codes élémentaires (Ci) obtenus. 6.- Procédé (200) de décodage d'une liste d'identifiants (L) utilisable dans un réseau (10) informatique, le réseau informatique (10) comportant au moins un émetteur (E) et au moins un récepteur (R1, ..., RN), le ou chaque émetteur et le ou chaque récepteur comportant une même liste globale (LG) d'identifiants (Idk) différents, chaque identifiant (Idk) présentant une caractéristique technique,le ou chaque émetteur (E) étant apte à émettre un paquet (12) de données à destination d'une ou plusieurs récepteurs (R1, ..., RN) différents, chaque paquet de données (12) comportant au moins un code (C) correspondant à une liste d'identifiants (L) codée, dans laquelle chaque identifiant (Idk) n'est présent au plus qu'une fois, caractérisé en ce que le procédé (200) comprend les étapes suivantes : - associer (205) à chaque identifiant (Idk) un nombre ordinal (k) compris entre un et le nombre (N) d'identifiants dans la liste globale d'identifiants (LG), le nombre (k) étant différent pour des identifiants (Idk) différents ; - recevoir (210) un nombre (P) correspondant au nombre d'identifiants (Idk) dans la liste d'identifiants (L) à décoder, et un code (C) correspondant à cette liste d'identifiants; - définir (215) une valeur maximale intermédiaire (max) égale au nombre total de récepteurs (N) et une première variable (j) entière égale au nombre d'identifiants (P ) dans la liste d'identifiants (L) à décoder ; - calculer (220) le nombre (F) de sous-ensembles de cardinal égal à la première variable (j) décrémentée d'un, dans un ensemble de cardinal égal à la valeur maximale intermédiaire (max) décrémentée d'un ; - si la valeur du code est inférieure audit nombre (F) de sous-ensembles, ajouter (230) dans la liste d'identifiants (L) l'identifiant (Idk) avec un nombre ordinal (k) égal à la valeur maximale intermédiaire (max), décrémenter la valeur maximale intermédiaire (max) et la première variable (j) d'un ; - si la valeur du code est supérieure ou égale audit nombre (F) de sous-ensembles, décrémenter (240) la valeur maximale intermédiaire (max) d'un et calculer une nouvelle valeur du code égale à la différence entre la valeur actuelle du code (C) et ledit nombre (F) de sous-ensembles. 7.- Produit programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont mises en oeuvre par un calculateur, mettent en oeuvre le procédé (200) de décodage selon la revendication 6. 8.- Récepteur (R1, ..., RN) pour un réseau (10) informatique, le réseau informatique (10) comportant au moins un émetteur (E), le ou chaque émetteur et le récepteur comportant une même liste globale (LG) d'identifiants (Idk) différents, chaque identifiant (Idk) présentant une caractéristique technique, le ou chaque émetteur (E) étant apte à émettre un paquet (12) de données à destination d'une ou plusieurs récepteurs (R1, ..., RN) différents,chaque paquet de données (12) comportant au moins un code (C) correspondant à une liste d'identifiants (L) codée, dans laquelle chaque identifiant (Idk) n'est présent au plus qu'une fois, caractérisé en ce qu'il comporte un module (56) de décodage apte à : - associer (205) à chaque identifiant (Idk) un nombre ordinal (k) compris entre un et le nombre (N) d'identifiants dans la liste globale d'identifiants (LG), le nombre (k) étant différent pour des identifiants (Idk) différents ; - recevoir (210) un nombre (P) correspondant au nombre d'identifiants (Idk) dans la liste d'identifiants (L) à décoder, et un code (C) correspondant à cette liste d'identifiants; - définir (215) une valeur maximale intermédiaire (max) égale au nombre total de récepteurs (N) et une première variable (j) entière égale au nombre d'identifiants (P ) dans la liste d'identifiants (L) à décoder ; - calculer (220) le nombre (F) de sous-ensembles de cardinal égal à la première variable (j) décrémentée d'un, dans un ensemble de cardinal égal à la valeur maximale intermédiaire (max) décrémentée d'un ; - si la valeur du code est inférieure audit nombre (F) de sous-ensembles, ajouter (230) dans la liste d'identifiants (L) l'identifiant (Idk) avec un nombre ordinal (k) égal à la valeur maximale intermédiaire (max), décrémenter la valeur maximale intermédiaire (max) et la première variable (j) d'un ; - si la valeur du code est supérieure ou égale audit nombre (F) de sous- ensembles, décrémenter (240) la valeur maximale intermédiaire (max) d'un et calculer une nouvelle valeur du code égale à la différence entre la valeur actuelle du code (C) et ledit nombre (F) de sous-ensembles.