Brevet FR2681966A1 — publié le 19930402

Procédé de compression-décompression de données textuelles dans un réseau domotique L'invention concerne un procédé qui permet d'augmenter le débit apparent des transmissions de données textuelles et de diminuer le volume global de mémoire nécessaire pour le stockage des textes et messages dans un réseau domotique. Le procédé selon l'invention permet d'obtenir un débit apparent élevé lors de la transmission de données textuelles alors que le débit réel du système de transmission est faible. Par exemple il est possible d'obtenir une vitesse moyenne de rafraîchissement d'écran sur un dispositif de visualisation proche de ce qu'il est habituel d'observer sur un terminal vidéotex en utilisant un système de transmission ayant un débit de 600 bits/S. Il s'agit d'un procédé asymétrique qui privilégie volontairement l'émetteur de texte (201), (202), (205), catégorie à laquelle appartient la plupart des appareils fournisseurs de services rencontrés dans un réseau domotique (213). L'invention permet de réduire de manière significative la taille de mémoire (203), (204), (207), (209) utilisée pour le stockage des textes. Les terminaux capables restituer les textes (208) sont en revanche légèrement pénalisés par la nécessité de contenir dans leur mémoire le lexique associé au procédé (210). Cette légère pénalisation est acceptable car ces appareils disposent généralement d'une mémoire de taille importante et ils sont peu nombreux dans un réseau domotique. Les textes comprimés reçus (206) ou stockés localement (209) sont restitués après décompression (211) au moyen d'une interface sensorielle (212), par exemple un dispositif de visualisation (215), un dispositif de restitution sonore (214) ou Braille (216). Contrairement à d'autres procédés de compression-décompression de données existants, l'invention ne s'applique qu'à des données qui représentent du texte c'est à dire des chaînes de caractères alphanumériques et des caractères de contrôle. Le procédé selon l'invention permet de comprimer du texte sans limitation de vocabulaire, quelque soit la langue utilisée dans l'ensemble des langues prévues lors de la mise en oeuvre du procédé. L'absence de limitation de vocabulaire est obtenue en combinant dans le même ensemble de données textuelles des mots qui représentent des chaînes de caractères existant dans le lexique associé au procédé et des mots qui représentent des caractères élémentaires. Le taux de compression obtenu grâce au procédé varie en fonction de la fréquence d'apparition de mots se référant au lexique à l'intérieur du flux de données à traiter et de la taille des chaînes de caractères utilisées dans le lexique. Les caractères alphanumériques et les codes de contrôle utilisés dans le système pour constituer les textes sont codés sur 7 bits par exemple en ASCII standard. Les mots qui sont gérés par le système sont des mots de 8 bits. Le procédé selon l'invention utilise le bit, qui reste libre dans un mot de 8 bits lors du codage sur 7 bits d'un caractère alphanumérique ou d'un caractère de contrôle, pour signifier si il s'agit d'un caractère élémentaire ou s'il s'agit d'un index correspondant de manière biunivoque à une chaîne de caractères contenue dans le lexique associé au procédé. Par exemple le 8ème bit d'un mot représentant du texte peut être celui dont l'état indique si il s'agit d'un caractère élémentaire, 8ème bit à 0, ou d'une référence au lexique, 8ème bit à 1, dans cet exemple les 7 autres bits représentent respectivement le code ASCII d'un caractère élémentaire ou la valeur de l'index se référant au lexique. La phase de compression de données textuelles consiste à remplacer, dans un texte (11) à stocker ou à transmettre, chaque chaîne de caractères qui figure dans le lexique (12) par un mot de 8 bits dont l'état du bit, qui reste libre lors du codage sur 7 bits d'un caractère alphanumérique ou d'un caractère de contrôle, indique qu'il s'agit d'une référence au lexique et où les 7 bits restants représentent la valeur de l'index correspondant à la chaîne de caractères à comprimer; les chaînes de caractères qui ne figurent pas dans le lexique ne sont pas comprimées; elle restent constituées d'un ensemble de mots de 8 bits dont l'état du bit, qui reste libre lors du codage sur 7 bits d'un caractère alphanumérique ou d'un caractère de contrôle, indique que les 7 bits restants représentent le code d'un caractère alphanumérique ou d'un caractère de contrôle. Le texte comprimé contient des mots (13) qui correspondent à des références au lexique ou, de manière non exclusive, des mots représentant des caractères élémentaires La phase de décompression de données textuelles (14) consiste à remplacer les mots de 8 bits dont l'état du bit qui reste libre lors du codage sur 7 bits d'un caractère alphanumérique ou d'un caractère de contrôle, indique qu'il s'agit d'une référence au lexique (15), par la chaîne de caractères extraite du lexique à partir de la valeur d'index fournie par les 7 bits restants du mot; les chaînes de caractères extraites du lexique sont encadrées par deux caractères élémentaires "espace" et sont incluses dans le flux de caractères élémentaires en respectant l'ordre d'arrivée; la phase de décompression restitue des textes (16) composés exclusivement de mots dont le 8ème bit indique qu'il s'agit de caractères élémentaires. Le lexique contient autant de tables de chaînes de caractères que de langues gérées par le système dans lequel le procédé est mis en oeuvre; à chaque valeur d'index correspond dans chaque table une chaîne de caractères équivalente sur le plan sémantique aux chaînes contenues dans les autres tables pour cette valeur d'index. Les chaînes de caractères contenues dans les tables sont par exemple les mots ou groupes de mots les plus utilisés dans l'environnement domestique. Un code représentatif de la langue utilisée par ltémetteur d'un texte est connu au moins des destinataires de ce texte dans le réseau et pendant un temps au moins égal à celui qui est nécessaire au traitement de ce texte par tous les destinataires. Ce code peut être par exemple distribué à tous les appareils du réseau en fonction du choix d'une langue par l'utilisateur sur un des appareil restituant les textes et ce code peut rester valide jusqu'à ce que l'utilisateur décide de changer de langue. Les dessins annexés illustrent l'invention: - La figure 1 représente les phases de compression et de décompression du procédé. - La figure 2 donne un exemple de réseau domotique où l'on trouve trois appareils appartenant à la catégorie fournisseurs de services et un appareil de restitution de données textuelles. - La figure 3 illustre un exemple d'application du procédé où l'on compare le nombre de mots nécessaires au codage d'un petit texte sans compression puis en comprimant les mêmes données textuelles à l'aide du procédé selon l'invention. Le lexique utilisé pour les phases de compression et de décompression (31) contient autant de tables (33), (34), (35) que de langues gérées par le système dans lequel le procédé est mis en oeuvre. Dans le lexique, chaque valeur de l'index (32) est associée à une chaîne de caractères dans chaque table et ces chaînes de caractères ont la même signification pour une valeur d'index donnée. Le nombre de valeurs possibles de l'index dépend du système dans lequel le procédé est mis en oeuvre. La langue choisie pour les textes dans l'exemple est le français, les appareils concernés ont pris connaissance de ce choix par un moyen extérieur au procédé et ils font tous référence aux tables contenant des chaînes de caractères ayant un sens en français. Dans cet exemple le texte choisi a pu être comprimé, relativement au lexique donné, dans un rapport de 1:3,5 ce qui signifie que le procédé a permis de diviser par 3,5 la taille de mémoire nécessaire au stockage de ce texte et que si ce texte doit être transmis, il le sera au moins 3,5 fois plus vite. En réalité le gain en temps de transmission est plus difficile à évaluer que le gain en volume de données car il dépend de la manière dont les données sont transportées, si elles sont fractionnées en paquets, le gain en temps de transmission ne varie pas linéairement en fonction du volume de données. Dans la plupart des cas, le gain en temps de transmission apporté par le procédé est très nettement supérieur au gain en volume correspondant toutes choses étant égales par ailleurs. REVENDICATIONS 1. Procédé de compression-décompression de données textuelles dans un réseau domotique où les données sont gérées par mots de 8 bits, les caractères alphanumériques et de contrôle sont codés sur 7 bits et où des textes sont transmis par des appareils vers d'autres appareils du réseau; le procédé de compression-décompression de données textuelles est caractérisé par le fait que le bit, qui reste libre dans un mot de 8 bits lors du codage sur 7 bits d'un caractère alphanumérique ou d'un caractère de contrôle, est utilisé pour signifier si il s'agit d'un caractère élémentaire ou s'il s'agit d'un index correspondant de manière biunivoque à une chaîne de caractères contenue dans un lexique. 2. Procédé selon la revendication précédente caractérisé en ce que la phase de compression de données textuelles consiste à remplacer, dans un texte à stocker ou à transmettre, chaque chaîne de caractères qui figure dans le lexique par un mot de 8 bits dont l'état du bit, qui reste libre lors du codage sur 7 bits d'un caractère alphanumérique ou d'un caractère de contrôle, indique qu'il s'agit d'une référence au lexique et où les 7 bits restants représentent la valeur de l'index correspondant à la chaîne de caractères à comprimer; les chaînes de caractères qui ne figurent pas dans le lexique ne sont pas comprimées, elle restent constituées d'un ensemble de mots de 8 bits dont l'état du bit, qui reste libre lors du codage sur 7 bits d'un caractère alphanumérique ou d'un caractère de contrôle, indique que les 7 bits restants représentent le code d'un caractère alphanumérique ou d'un caractère de contrôle. 3. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que la phase de décompression de données textuelles consiste à remplacer les mots de 8 bits dont l'état du bit qui reste libre lors du codage sur 7 bits d'un caractère alphanumérique ou d'un caractère de contrôle, indique qu'il s'agit d'une référence au lexique, par la chaîne de caractères extraite du lexique à partir de la valeur d'index fournie par les 7 bits restants du mot; les chaînes de caractères extraites du lexique sont encadrées par deux caractères élémentaires "espace" et sont incluses dans le flux de caractères élémentaires en respectant l'ordre d'arrivée; la phase de décompression restitue des textes composés exclusivement de mots dont le 8ème bit indique qu'il s'agit de caractères élémentaires. 4. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que le lexique contient autant de tables de chaînes de caractères que de langues gérées par le système dans lequel le procédé est mis en oeuvre; à chaque valeur d'index correspond dans chaque table une chaîne de caractères équivalente sur le plan sémantique aux chaînes contenues dans les autres tables pour cette valeur d'index. 5. Procédé selon la revendication 4 caractérisé en ce qu'un code représentatif de la langue utilisée par l'émetteur d'un texte est connu, au moins des destinataires de ce texte dans le réseau, et pendant un temps au moins égal à celui qui est nécessaire au traitement de ce texte par tous les destinataires.