Brevet FR2554995A1 — publié le 19850517

PROCEDE DE COMPRESSION D'UNE SUCCESSION D'INFORMATIONS NUMERIQUES ET DISPOSITIF METTANT EN OEUVRE CE PROCEDE L'invention concerne un procédé de compression d'une succes- sion d'informations numériques binaires, notamment représentatives des pixels d'une image numérisée; l'invention a aussi pour objet un dispositif mettant en oeuvre un tel procédé. Dans un système numérique d'acquisition d'images, les valeurs des différentes zones élémentaires de l'image ou pixels sont trans- crites en mots. La valeur de chaque mot représente la "luminance" du pixel considéré. Par exemple, dans le domaine de la radiologie numérique, l'image radiologique est visualisée par un amplificateur de luminance, captée par une caméra et le signal de cette caméra est échantillonné. La suite d'échantillons ainsi élaborée représente par exemple une lecture ligne par ligne par "balayage" des différents pixels de ces lignes. Cette suite d'échantillons est numérisée, c'est- à-dire transformée en une suite de mots. Si par exemple, chaque mot est codé sur 8 bits, ce qui représente une gradation de 0 à 255 du noir au blanc et si on se définit une image de 512 X 512 pixels, la capacité mémoire est importante, soit 2.097.152 bits à mémoriser. Lorsque de nombreuses images doivent être mémorisées, une mémoire de masse est indispensable. On utilise souvent un stockage sur disque magnétique. Généralement, une mémoire tampon de capacité limitée est couplée à la mémoire de masse, pour le transfert des informations. La mémoire de masse est donc "alimentée" par lectures successives des informations contenues dans la mémoire tampon. Les contraintes technologiques actuelles font que le transfert du contenu de la mémoire tampon vers la mémoire de masse est une opération qui demande du temps et qui limite les performances du système à un rythme d'images insuffisant dans certains cas, par exemple si on veut observer des phénomènes rapides comme l'évolution d'un produit de contraste dans le système sanguin ou le coeur. Il y a donc intérêt à comprimer les informations représentatives d'une image en exploitant les redondances spatiales et/ou temporelles inhérentes à celle-ci. Le taux de compression définit le gain réalisé après traitement. Ainsi, un taux de compres- sion de 2 signifie qu'une mémoire tampon ayant la capacité néces- saire pour mémoriser une image normale complète, peut aussi accueillir les informations représentatives de deux images, après compression. Comme le temps de transfert entre la mémoire tampon et la mémoire de masse est invariable, cela revient à dire que le rythme d'acquisition des images peut être doublé. Une façon connue de comprimer une succession d'informations numériques résulte de la constatation que deux pixels voisins sont rarement très différents. Par conséquent, il est avantageux de mémoriser, non pas les pixels Xi, mais les différences Xi - Xi1. En effet, si les pixels Xi sont codés sur 8 bits, soit 256 valeurs i possibles, la différence de deux pixels voisins sera dans la grande majorité des cas codable sur un nombre de bits inférieur à 5. Cependant, si on s'impose un codage sans perte d'information, il faut pouvoir aussi mémoriser les différences importantes entre pixels voisins, dont la probabilité d'apparition est faible mais qui se produisent néanmoins pour des détails aux transitions très contras- tées. Pour résoudre ce problème, on a déjà proposé des codes à longueur variable, par exemple les codes de Huffman. Un tel code se traduit par un tableau de conversion o chaque valeur possible de différence (entre - 255 et + 255 pour l'exemple évoqué ci-dessus) reçoit un code binaire de longueur inversement proportionnelle à sa fréquence d'apparition. Ainsi, les valeurs de différence qui ap- paraissent le plus souvent au codage pendant l'exploration de l'image, pixel par pixel, reçoivent les codes les plus courts. L'invention vise plusieurs perfectionnements de ce type de codage. En premier lieu, l'invention concerne donc un procédé de compression d'une succession d'informations numériques binaires se présentant sous la forme de mots de format fixe représentant des nombres entiers positifs de l'intervalle [O,N] consistant à soustraire chaque - mot du précédent de façon à obtenir chaque fois une différence de format variable comportant un bit de signe, caracté- risé en ce qu'il consiste, pour au moins certaines valeurs absolues de différences, à supprimer ledit bit de signe de ladite différence: - si la valeur absolue de celle-ci est supérieure à la valeur du mot précédent lorsque celui-ci est compris dans la première moitié dudit intervalle, ou, - si la valeur absolue de ladite différence est supérieure à la valeur de la différence entre le nombre N et la valeur du mot précédent lorsque celui-ci est compris dans la seconde moitié dudit intervalle, et - à transférer les informations ainsi comprimées, par exemple vers une mémoire. Une autre caractéristique importante de l'invention consiste à coder directement la valeur du pixel dès que la différence dépasse, en valeur absolue, un nombre choisi. En effet, si on considère des pixels codés sur 8 bits, par exemple, une valeur de différence importante nécessite 9 bits pour être codée, en raison du signe de cette différence. Il devient alors avantageux de coder directement le pixel sur 8 bits, puisque c'est obligatoirement un nombre positif. Dans l'exemple qui sera décrit plus loin, on code directement le pixel (sur 8 bits) dès que la différence dépasse 31 en valeur absolue. Enfin, une autre particularité notable de l'invention consiste à définir des intervalles donnés de différences possibles et à identifier chaque intervalle par un préfixe donné. Un suffixe comportant un nombre de bits suffisant pour représenter toutes les valeurs absolues de différences possibles dans l'intervalle considéré, suit directement le préfixe et un bit supplémentaire indique le signe. Ce mode d'identification des valeurs de différence a l'avantage de réduire "l'arborescence" des circuits électroniques de décodage, c'est-à-dire le nombre de tests logiques à effectuer avant de reconnaître complètement un mot. Ainsi, par exemple, la reconnaissance du préfixe pourra être exploitée pour adresser une table (mémoire morte) contenant directement toutes les valeurs possibles de diffé- rences dans l'intervalle correspondant au préfixe. L'invention concerne aussi un dispositif de compression d'une succession d'informations numériques binaires se présentant sous forme de mots de format fixe représentant des nombres entiers positifs de l'intervalle L0, N] comportant une entrée de mot o sont appliqués lesdits mots, un registre formant mémoire relié à ladite entrée pour mémoriser à chaque instant la valeur du mot précédant celui qui est appliqué à ladite entrée, et une mémoire pour recevoir une succession d'informations numériques de longueurs variables représentatives de la succession desdits mots de format fixe, caractérisé en ce qu'il comporte: des moyens pour transférer vers ladite mémoire tampon - soit la valeur absolue de la différence entre le mot appliqué à ladite entrée et ledit mot précédent si la valeur absolue de ladite différence est supérieure à la valeur du mot précédent lorsque celui- ci est compris dans la première moitié dudit intervalle ou si la valeur absolue de ladite différence est supérieure à la valeur de la différence entre le nombre N et la valeur du mot précédent lorsque celui-ci est compris dans la seconde moitié dudit intervalle, - soit la valeur de cette différence et de son signe dans le cas contraire. L'invention sera mieux comprise et d'autres avantages de celle-ci apparaîtront mieux à la lumière de la description qui va suivre d'un mode de réalisation particulier d'un dispositif de com- pression conforme à son principe, donnée uniquement à titre d'exemple et faite en référence aux dessins annexés dans lesquels: - la figure 1 est un schéma bloc d'un dispositif de compression conforme à l'invention; - la figure 2 est un schéma de principe d'un séquenceur du dispositif de la figure I; - la figure 3 est un schéma de principe d'un circuit de traitement de la figure 1 pour le codage des informations; et - la figure 4 illustre le principe du décodage. La figure 1 représente le schéma bloc d'un circuit de compres- sion d'une succession de mots représentant les pixels d'une image. Les mots de 8 bits se présentent sous forme parallèle et sont appliqués à une entrée E pour subir une compression tandis que les informations numériques résultant de cette compression sont inscrits en série dans une mémoire tampon 7. Cette dernière est couplée à une mémoire de masse 8 (système à disque magnétique par exemple) et des lectures répétées de la mém oire tampon permettent "d'alimenter" la mémoire de masse 8. Le but de la compression est d'augmenter la cadence d'acquisition des images malgré un rythme de transfert relativement lent entre les mémoires 7 et 8. Comme mentionné précédemment, le procédé de compression consiste pour l'essentiel à mémoriser, non les mots de 8 bits représentant les pixels mais la différence entre deux pixels succes- sifs, en utilisant un code de longueur variable. L'entrée E est donc reliée à une entrée Xn d'un circuit de traitement 2 qui sera décrit plus loin et à un registre 1 formant mémoire dont la sortie est reliée à une entrée Xn1 du circuit de traitement 2. Ce dernier reçoit donc à tout moment sur ses deux entrées la valeur d'un pixel et celle du pixel précédent. Les entrées E, Xn, Xn_1 sont des entrées parallèles de 8 bits (c'est-à-dire présentant chacune 8 bornes d'accès) et le registre 1 est à entrée parallèle et sortie parallèle, également sur 8 bits. Sur les dessins, chaque liaison parallèle est conventionnelle- ment représentée par un seul fil coupé par un trait oblique auprès duquel figure le nombre de bits de ladite liaison. Le circuit 2 comporte une sortie parallèle C (de 16 bits) délivrant l'information (le code) à enregistrer, codée et "formatée", ainsi qu'une sortie parallèle L (de 4 bits) délivrant une information représentative de la longueur du code apparaissant simultanément à la sortie C. La sortie L est appliquée à une entrée d'un séquenceur 4 comportant 3 sorties d'horloge S1,S2 et S3 connectées respectivement pour piloter trois registres de 8 bits, 3,5 et 6. L'agencement du séquenceur 4 sera décrit plus loin. La sortie C du circuit de traitement 2 est reliée à l'entrée du registre 3 qui est du type à chargement parallèle et sortie série. Le séquenceur décode la longueur utile du code C "formatée" à 16 bits, à transférer en série vers le registre 5 ou le registre 6. Plus précisément, la sortie SI délivre chaque fois un nombre d'impulsions égal à la longueur L et ce signal d'horloge appliqué au registre 3 pilote le transfert des bits de poids fort correspondants vers le registre 5 ou 6 qui se trouve validé par l'horloge S2 ou S3 correspondante. Par exemple, si le mot représentatif d'une différence Xn - Xn- 1 est égal à + 2, ce qui peut se transcrire en code comprimé binaire: l100 lOavec L = 4 le code C "formaté" à 16 bits sera: Mais la sortie L programme le séquenceur pour que celui-ci ne génère que 4 impulsions d'horloge à la sortie SI de sorte que seul le mot 1100 s'inscrit dans l'un des registres 5 ou 6. Le format adopté de 16 bits, pour le code C correspond à la longueur maximum des mots à transférer dans la mémoire 7. La sortie série 54 du registre 3 est reliée aux entrées E1 et E2 des registres 5 et 6, respectivement. Ces registres sont du type entrée série - sortie parallèle. Les deux sorties S5, S6 de ces registres sont reliées à une entrée parallèle E3 de la mémoire 7 qui comporte en outre une entrée d'adressage Ad pilotée par le séquen- ceur 4. La présence des deux registres 5 et 6 se justifie par le fait que la mémoire 7 est classiquement agencée en mots adressables de 8 bits. Ainsi, les horloges disponibles aux sorties S2 et S3 valident alternativement les registres 5 et 6. Chaque fois qu'un registre 5 (ou 6) a reçu 8 bits en provenance du registre 3, le séquenceur commute la suite du déchargement du registre 3 vers l'autre registre 6 (ou 5). Dans le même temps il génère l'adresse de la mémoire 7 à laquelle doit être déchargé le registre 5 (ou 6). Le séquenceur est représenté à la figure 2. Il comporte un générateur d'horloge H qui: -pilote un décompteur 9 à entrée de consigne parallèle, connectée-à la sortie L du circuit 2 et recevant par conséquent un mot représentatif de la longueur du code. Le générateur d'horloge H est également relié à une entrée d'une porte ET,10 à deux entrées dont la sortie constitue la sortie SI pilotant le registre 3. Le décompteur 9 comporte une sortie S9 dite "d'état zéro" qui change d'état lorsque l'horloge H a remis le décompteur à zéro, c'est-à-dire lorsqu'elle a délivré un nombre d'impulsions cor- respondant à la longueur L affichée à l'entrée de consigne. Cette sortie S9 est connectée à l'autre entrée de la porte 10. Son change- ment d'état bloque la porte 10 et interrompt donc la transmission des impulsions d'horloge à la sortie S$' La sortie de la porte ET,10 est aussi reliée à l'entrée d'un compteur 11. Il s'agit d'un compteur par huit qui pilote une bascule bistable 12 et un compteur d'adres- ses 13. La sortie de ce dernier constitue la sortie Ad qui pilote la mémoire 7. La sortie Q de la bascule 12 est reliée à une entrée d'une porte ET,14, à deux entrées tandis que sa sortie Q est reliée à une entrée d'une porte ETi1S, à deux entrées. Les deux autres entrées des portes 14 et 15 sont connectées à la sortie Si. Les sorties des portes 14 et 15 constituent les sorties S2 et S3 mentionnées ci- dessus. Ainsi, chaque fois que le compteur 11 a enregistré 8 impul- sions d'horloge H transmises par la porte 10, il pilote le changement d'état de la bascule 12, ce qui inverse la validation des registres 5 et 6 pour le chargement des informations délivrées par le compteur 3. Dans le même temps, le compteur 11 incrémente le compteur d'adresses 13 d'une unité, pour le transfert des informations con- tenues dans le registre qui vient d'être "rempli" à une nouvelle adresse de la mémoire 7. Avant d'aborder la description du circuit de traitement 2 qui effectue l'essentiel des opérations de compression des informations représentatives des pixels Xi, il faut expliciter le processus de codage choisi. Soit Dn, la différence entre deux pixels consécutifs: Dn = Xn - Xn_- comme Xn et XnI sont des nombres entiers compris dans un intervalle positif donné [O à 255], Dn est compris dans l'intervalle ?554995 [-255 + 255]. A titre d'exemple non limitatif, la conversion des valeurs D possibles en code binaire peut être conforme au tableau suivant: n Différence Code (C) Longueur (L) 0 0 1 +1 105 3 +2 1105 4 +3 111005S 6 +4 111015 6 +5 liIO00S 7 +6 11110105 B +7 lillOliS 8 +8 à +15 111110XYZS 10 +16 à +31 l11111O0XYZTS 12 +32 à +255 111111ABCDEFGH 15 On vérifie que Dn = 0, c'est-à-dire la valeur de différence statistiquement la plus fréquente dans la succession des pixels de l'image, est codée avec le mot de longueur minimum, c'est-à-dire sur un bit. Les autres valeurs de différences assez probables, comme par exemple + 1, + 2, ne nécessitent que trois ou quatre bits. Les valeurs de différences plus importantes (comme par exemple l'intervalle + 16 à + 31) nécessitent jusqu'à 12 bits mais leur probabilité d'appari- tion est très faible de sorte que cela joue peu sur le taux de compression obtenu. Dans le code, le dernier bit S représente le signe. Par exemple, S = 0 si la différence Dn est positive et S = 1 si Dn est négative. Comme on le verra plus loin, le bit de signe peut dans certains cas être supprimé. Par ailleurs, selon un aspect avantageux de l'invention et à partir d'une valeur absolue de différence supérieure à 7, les mots de code sont agencés avec un préfixe d'identification et un suffixe ainsi que (éventuellement) le bit de signe S. Le préfixe d'identification désigne un intervalle donné de valeurs absolues de différences. Par exemple, pour l'intervalle double de différences[+ 8 à + 15 on définit un premier préfixe 111110, pour l'intervalle double de différences[+ 16 à + 3 1, on définit un second préfixe 1111110, et pour l'intervalle double de différences [+ 32 à + 255 on définit un troisième préfixe 1111111. On notera que le suffixe XYZ comporte un nombre de bits suffisant (trois) pour représenter toutes les valeurs absolues de différences possibles dans l'intervalle + 8 à + 15], puisque 3 bits permettent 8 combinaisons binaires. Il en est de même pour l'intervalle[+ 16 à + 31, dont le suffixe comporte 4 bits: XYZT. En revanche, selon une particularité avantageuse de l'inven- tion, on transfère directement le mot de format fixe représentant le pixel vers la mémoire tampon 7 lorsque la valeur absolue de la différence entre ce mot et le précédent dépasse un nombre choisi. Selon l'exemple, ce nombre choisi est 31 de sorte que pour l'inter- valle double de différences _+ 32 à + 255], le suffixe ABCDEFGH représente la valeur même du pixel. En effet, au-delà de 31, le codage de la différence nécessiterait plus de bits, compte tenu de la nécessité de coder le signe S, que le codage du pixel lui-même (toujours positif). On associe à ce suffixe, un troisième préfixe d'identification, à savoir 1111111. Selon une caractéristique importante de l'invention, le bit de signe S est supprimé au codage chaque fois que c'est possible. Il est à noter que les conditions de suppression du bit de signe S, telles qu'elles vont être exposées ci-dessous, peuvent s'appliquer en théorie sur tout l'intervalle des valeurs de différences possibles (c'est-à-dire [-255 à +255] dans le cas décrit) mais que, en raison de la particu- larité de codage direct du pixel dans l'intervalle double [+ 32 à +255], ces conditions n'ont de sens que pour l'intervalle complémentaire f- 31 à + 317 non compris le zéro. Les exemples qui suivent permettent de comprendre les conditions de suppression du bit de signe S. On a toujours 04 donc supprimer le signe S de Dn dans tous les cas. b) supposons Xn_1 = 1, la seule différence négative possible est- 1, il faut alors coder + 1 sur 3 bits en conservant le bit de signe. Pour toutes les autres valeurs de différences, Dn peut être amputé du bit de signe S. c) supposons Xn=1 = 2, les seules différences négatives possi- bles sont - 1 et- 2. Pour lever l'indétermination, il faut donc coder + 1 et + 2 en conservant le bit de signe S. Pour toutes les autres valeurs de différences Dn peut être amputé du bit de signe S. On peut continuer ce raisonnement pour toutes les valeurs de l'avant dernier pixel Xn _1, comprises dans la première moitié de l'intervalle de variation des pixels Xi. Autrement dit, on supprime le bit de signe S si la valeur absolue de la différence Dn est supérieure à l'avant dernier mot lorsque celui-ci est compris dans la première moitié de l'intervalle des Xi. En fait, pour la raison indiquée précédemment, ce genre de test sera arrêté lorsque la valeur absolue de la différence sera supérieure à 31. d) supposons maintenant Xn = N = 255 Quelle que soit la n-i valeur du pixel suivant Xn, la différence Dn = Xn-Xn= 1 est forcé- ment négative. On peut donc aussi supprimer le signe S de Dn dans tous les cas. e) supposons Xn_1 = 254, la seule différence positive possible est + I si Xn = 255. Pour lever l'indétermination on code les diffé- rences Dn = +1 sur 3 bits en conservant le bit de signe. Pour toutes les autres valeurs de différences, Dn peut être amputé du bit de signe S. f) supposons Xnl = 253, les seules différences positives pos- sibles sont + 1 et + 2, correspondant à Xn = 254 ou Xn = 255. On code alors les différences + i et + 2 en conservant le bit de signe S. Pour toutes les autres valeurs de différences, Dn peut être amputé du bit de signe S. Il On peut continuer ce raisonnement pour toutes les valeurs de l'avant dernier pixel Xn-1 comprises dans la seconde moitié de l'intervalle de variation des pixels Xi. Autrement dit, on supprime le bit de signe S si la valeur absolue de la différence Dn est supérieure à la valeur de la différence entre le nombre N (N = 255) et la valeur de l'avant dernier pixel Xn_1' lorsque celui-ci est compris dans la seconde moitié de l'intervalle de variation des pixels Xi. Là encore, cependant, ce genre de test est abandonné lorsque la valeur absolue de la différence devient supérieure à 31. On va maintenant décrire en référence à la figure 3 un mode de réalisation possible du circuit de traitement 2. Les entrées Xn et Xn! 1sont directement reliées aux entrées d'un soustracteur numé- rique 20 dont la sortie parallèle Dn (sur 9 bits) délivre à chaque instant la valeur de la différence: Dn = Xn - Xn-l On peut par exemple utiliser un circuit intégré du commerce de type ALU 4 bits (TTL 181) proposé par les principaux construc- teurs de semi-conducteurs. Comme la représentation binaire utilisée dans le soustracteur est une représentation en complément à deux, on utilise une mémoire morte 21 (PROM) pour extraire la valeur absolue de la différence. La valeur absolue apparaît codée sur 8 bits, à une sortie S5 parallèle de la mémoire 21 et le bit de signe apparaît à une sortie S6 du soustracteur 20. La mémoire morte 21 est adres- sée directement par la sortie Dn, c'est-à-dire que la sortie paral- lèle Dn du soustracteur 20 est reliée à une entrée d'adressage de la mémoire morte, chaque valeur de Dn constituant une adresse de la mémoire 21 o se trouve inscrite la valeur absolue correspondante. La capacité de la mémoire 21 est réduite puisqu'elle doit conte- nir 512 mots de 8 bits. On peut par exemple utiliser un circuit intégré du type 82S1 15 proposé par les principaux constructeurs de semi-conducteurs; un seul boitier suffit pour réaliser la mé- moire 21. La programmation de cette dernière est à la portée de l'homme du métier. La sortie S5 et l'entrée Xn_1 sont également reliées aux deux entrées (de type parallèle, 8 bits) d'un additionneur numérique 22 et aux deux entrées d'un soustracteur numérique 23, de façon à réaliser les deux opérations suivantes Xn-1 +l Dn| Xn_1 -!Dni Les circuits 22 et 23 peuvent être réalisés à partir du même type de circuit intégré que le soustracteur 20. La sortie "report" S8 de l'additionneur 22 et la sortie "report" S9 du soustracteur 23 sont reliées respectivement aux deux entrées d'une porte 25 du type OU Exclusif. Autrement dit, la sortie S8 affiche la valeur du bit de report de l'opération Xnl+ IDnJ tandis que la sortie 59 affiche la valeur du bit de report de l'opération Xn l-IDnI. L'ensemble (22,23,25) qui vient d'être décrit réalise de façon simple l'ensemble des tests (définis ci-dessus) permettant de déterminer si le bit de signe peut être supprimé ou non. On vérifie en effet que si les deux valeurs: XniDn I et Xni-Dni sont dans l'intervalle [0,N], cela signifie qu'il faut tenir compte du signe dans la transmission du code C vers la mémoire tampon. Si au contraire une valeur se trouver à l'extérieur de l'intervalle [0,N1, cela signifie qu'on peut supprimer le bit de signe. Or, ces conditions s'expriment par la table de la vérité de la porte 25, puisque, si la sortie de cette porte est à 1, cela signifie que l'un seulement des bits de report a la valeur 1, c'est-à- dire que le résultat de l'une seulement des opérations est en dehors de l'intervalle [0,N1 Par ailleurs, la sortie S5 est reliée à un comparateur 26 qui permet de déterminer si la valeur absolue de la différence Dn est supérieure ou inférieure à 31. Pratiquement, ce comparateur peut être une simple porte OU à trois entrées auxquelles on relie les trois dernières bornes de la sortie 55 (sur lesquelles apparaissent les bits de poids fort). Comme le nombre 31 s'exprime par: 00011111 en binaire, un nombre supérieur aura forcément au moins l'un de ses trois bits de poids forts égal à 1. La sortie de cette porte est reliée à une entrée de pilotage e5 d'un multiplexeur 27 dont les sorties L et C sont les sorties représentées à la figure 2. Ce multiplexeur comporte deux groupes d'entrées Li, C1 et L2, C2, respectivement, et son rôle consiste simplement à faire correspondre les entrées L1, C1 ou L2, C2 avec les sorties L,C en fonction de la commande appliquée à l'entrée e5. L'entrée L1 est fixe et exprime le nombre 15 en binaire, les 8 bornes correspondant aux bits de poids faibles de l'entrée C1 reçoivent directement le mot Xn tandis que les 7 bornes correspon- dant aux bits de poids forts de cette même entrée C1 sont toutes à I. Ainsi se trouve simplement réalisée la double transcription Longueur, Code, dans le cas o la valeur de la différence appartient à l'intervalle double+ 32 à + 255] identifié par le comparateur 26. Le multiplexeur 27 peut par exemple être réalisé à partir d'un circuit intégré du type 74244. La sortie S5 de la mémoire morte 21 est elle-même reliée à l'entrée d'adressage d'une mémoire morte 29 dans laquelle sont inscrites les 256 possibilités pour la longueur L et la valeur du code C, sans le signe S, notées respectivement Li et C* corres- pondant aux différentes valeurs possibles de la sortie 55. Comme le code CX nécessite 1 bits et la longueur LE en nécessite 4, la mémoire morte 29 ne nécessitera que 3 boitiers de type 82S115. Sa programmation d'adressage correspond au tableau de correspondance décrit ci-dessus, sauf en ce qui concerne l'intervalle doublel+ 32 à + 255] et le bit de signe S qui n'apparaît pas. Les sorties CX et L sont reliées à des entrées correspondantes d'un multiplexeur 30 du même type que le multiplexeur 27. Les sorties du multiplexeur 30 sont reliées aux entrées L2,C2 du multiplexeur 27. Le rôle du multiplexeur 30 est donc de relier soit le groupe d'entrées Lo, Co soit le groupe d'entrées L 0, C0o aux entrées correspondantes L2,C2. L'entrée de pilotage e6 du multiplexeur 30 est reliée à la sortie de la porte 25 de type OU Exclusif. L'entrée L0 X est reliée à la sortie LX de la mémoire morte 29 par l'intermédiaire d'un opérateur binaire 32 qui réalise l'opération suivante: L0 = L+ 1 cette incrémentation permet donc de calculer la nouvelle longueur du code lorsqu'on réintroduit le signe S. L'entrée C0 x est reliée à la sortie CX de la mémoire 29 et comporte une borne supplémen- taire reliée à la sortie S6 du soustracteur 20. Le signal de pilotage appliqué à l'entrée e6 permet donc de sélectionner les entrées L0, C0 lorsque le bit de signe S peut être supprimé ou les entrées L0t C0 3 lorsqu'il doit être conservé. On peut prévoir un regis- C0 tre 33 entre le multiplexeur 30 et l'entrée C2 du multiplexeur 27 pour "formater" l'information de code à 15 bits, le registre étant I0 pilotépar l'information de longueur transmise simultanément à l'entrée L2. Le fonctionnement du circuit de traitement de la figure 3 résulte avec évidence de sa description. On voit que pour tout couple de pixels Xn, Xnl' on effectue systématiquement la diffé- rence Dn (soustracteur 20) puis on classe la valeur absolue de Dn par rapport audit "nombre choisi", c'est-à-dire 31, grâce au compara- teur 26. Cette classification permet de positionner le multiple- xeur 27, c'est-à-dire de transmettre éventuellement le mot X et sa longueur vers les sorties L et C du multiplexeur27 si IDnI) 31. Dans le cas contraire, on supprime le signe de la différence lorsque c'est possible, ce qui se traduit par le positionnement du multi- plexeur 30 sous le contrôle de la porte 25. Si le signe peut être supprimé, les sorties Lt CX de la mémoire 29 deviennent les sorties L,C du système. Dans le cas contraire, on les complète pour réintroduire le signe disponible à la sortie S6. Bien entendu, le circuit 2 qui vient d'être décrit, admet de nombreuses variantes. Parmi celles-ci, il est d'ores et déjà avan- tageux, compte tenu des capacités des mémoires mortes proposées dans le commerce, de remplacer l'ensemble de ce circuit par une unique mémoire morte (PROM) adressée directement par les valeurs Xn et Xn_1 Autrement dit, en se reportant à nouveau à la figure 1, le bloc 2 peut être une simple mémoire morte. Si les entrées Xn et Xn_1 sont codées chacune sur 8 bits, ce qui est assimilable à une entrée d'adressage parallèle de 16 bits pour la mémoire morte, on a donc 65536 combinaisons possibles ce qui se traduit par 64 K mots de 15 bits pour le code C et 64 K mots de 4 bits pour le code L. Si on utilise par exemple des circuits intégrés du type 27128, qui ont chacun une capacité mémoire de 16 K octets, il suffira de huit boitiers pour enregistrer une fois pour toutes les 64 K valeurs possibles du code C et de quatre boitiers pour enregistrer les 64 K valeurs possibles de la longueur L, soit un total de douze boitiers seulement. La programmation de cette mémoire morte est à la portée de l'homme du métier. On pourra par exemple simuler le système de la figure 3 sur ordinateur en générant successivement toutes les valeurs possibles pour Xn et Xn_1 On peut aussi construire le système de la figure 3 pour l'utiliser en tant que programmateur des boitiers. Par conséquent, l'invention vise aussi tout procédé de com- pression dans lequel les résultats du codage des mots L et C ne résultent que d'une simple opération de lecture dans une mémoire, dès lors que cette dernière a été programmée en mettant en oeuvre les opérations et tests définis ci-dessus. Le décodage va maintenant être brièvement explicité. Chaque point de "l'arborescence" de la figure 4 symbolise un test logique entre 0 et 1. La suite des bits représentant les informations après compression est appliquée à l'entrée E0, le premier pixel ayant été codé en tant que tel. Par conséquent, si le bit suivant est zéro, on l'interprète comme Dn = 0. L'arrivée d'un 1 implique en revanche un test supplémentaire. Si le bit suivant est un zéro, on aboutit àDn |= I. Au contraire, si le bit suivant est encore I on progresse à nouveau dans l'arborescence pour pouvoir reconnaître Dnl = 2 si le bit suivant est zéro et ainsi de suite.... Au delà de IDnj = 7, l'arborescence est limitée grâce à l'emploi de tables (mémoires mortes) contenant toutes les combinaisons possibles des valeurs absolues de différences comprises dans les intervalles L8 à 1J, 16 à 31] et f32 à 255]. Ainsi, la reconnaissance de cinq 1 consécutifs suivis d'un zéro provoque l'adressage de la mémoire M1 (correspon- dant au premier intervalle) par les trois bits suivants. La reconnais- sance de six 1 consécutifs suivis d'un zéro provoque Pl'adressage de la mémoire M2 (correspondant au second intervalle) par les quatre bits suivants et la reconnaissance de sept I consécutifs provoque Padres- sage de la mémoire M3 (correspondant au troisième intervalle) par les huit bits suivants. Un circuit mettant en oeuvre l'arborescence de la figure 3 est aisément réalisable à partir de bascules bistables et desdites mé- moires mortes M!,M2et M3. On conçoit que la succession des bits à l'entrée E0 conditionne ainsi la reconnaissance de la valeur absolue de la différence I Dnj. Si on mémorise la valeur du pixel précédent, il est facile de refaire les opérations: R +=Xn_1 +l Dni R-= Xn_1 - IDnl en s'inspirant de ce qui a été décrit en référence à la figure 3. Dès lors qu'on possède les résultats R + et R - de ces deux opérations, il suffit de vérifier si R + et/ou R tombent dans l'intervalle [0,NI Si une seule valeur est dans l'intervalle[0,N], il suffit de prendre cette valeur en tant que Xn. Si au contraire les deux valeurs R + et R - sont dans l'intervalle [O,N1 il faut "appeler" le bit suivant qui se présente à l'entrée E0 pour lever l'indétermination et compléter | Dn par son signe. La valeur même du signe S permet de choisir la valeur correcte de Xn entre R + et R -. Si S = 0, cela implique que la différence Dn est positive et la bonne valeur de Xn est R +. Si S = 1, cela implique que la différence Dn est négative et la bonne valeur de Xn est R-. REVENDICATIONS 1. Procédé de compression d'une succession d'informations numériques binaires se presentant sous forme de mots de format fixe représentant des nombres entiers positifs de l'intervalle[0,N], consistant à soustraire chaque mot du précédent de façon à obtenir chaque fois une différence de format variable comportant un bit de signe, caractérisé en ce qu'il consiste, pour au moins certaines valeurs absolues de différences (21,S5), à supprimer ledit bit de signe de ladite différence (29-LX,Ct) - si la valeur absolue de celle-ci est supérieure à la valeur du mot précédent lorsque celui-ci est compris dans la première moitié dudit intervalle - ou si la valeur absolue de ladite différence est supérieure à la valeur de la différence entre le nombre N et la valeur du mot précédent lorsque celui-ci est compris dans la seconde moitié dudit intervalle (22,23,25) et à transférer (27-L,C) les informations ainsi comprimées (3,5,6) vers une mémoire (7). 2. Procédé de compression selon la revendication 1, caracté- risée en ce qu'il consiste à transférer directement le mot de format fixe (Xn) lorsque la valeur absolue de la différence entre ce mot et le précédent dépasse un nombre choisi (26,E5). 3. Procédé de compression selon la revendication 1 ou 2 caractérisé en ce qu'il consiste, pour une partie desdites différences possibles, à coder celles-ci en mots comprenant: - un préfixe d'identification désignant un intervalle donné de valeurs absolues de telles différences - un suffixe comportant un nombre de bits suffisant pour représenter toutes les valeurs absolues de différences possibles dans cet inter- valle donné, et - éventuellement un bit de signe. 1E 4. Procédé selon la revendication 3 caractérisé en ce que les différences comprises entre -7 et +7, non compris une différence nulle, sont codées sur trois à huit bits dont un bit de signe, sans préfixe, une différence nulle étant codée sur un bit, en ce que les différences comprises entre 8 et 15 en valeur absolue sont codées sur quatre bits dont un bit de signe et associées à un premier préfixe et en ce que les différences comprises entre 16 et 31 en valeur absolue sont codées sur cinq bits dont un bit de signe et associées à un second préfixe. 5. Procédé selon l'ensemble des revendications 2 et 4, carac- térisé en ce que, N étant égal à 255, chaque mot de format fixe pour lequel la valeur absolue de la différence entre ce mot et le précédent dépasse ledit nombre choisi est transmis tel quel et associé à un troisième préfixe, ledit nombre choisi étant égal à 31. 6. Procédé selon la revendication 5, caractérisé en ce que ledit premier préfixe est 111110, en ce que ledit second préfixe est 1111110 et en ce que ledit troisième préfixe est 1111111. 7. Procédé selon l'une des revendications 2 à 6, caractérisé en ce qu'il consiste: - à effectuer systématiquement la différence entre chaque mot de format fixe et le précédent (20), - à classer la valeur absolue de cette différence (26) par rapport au nombre choisi précité, et - a supprimer le signe de ladite différence (29) lorsque c'est possible si ladite valeur absolue de la différence est inférieure ou égale audit nombre choisi avant de transmettre ladite différence ou à trans- mettre directement ledit mot de format fixe si ladite valeur absolue de la différence est supérieure audit nombre choisi. 8. Procédé selon l'une des revendications précédentes, carac- térisé en ce que les opérations élémentaires faites à partir de deux mots de format fixe consécutifs jusqu'au transfert de l'information correspondante après compression, consiste à lire une mémoire morte (2) dans laquelle tous les résultats possibles en fonction des valeurs des deux mots de format fixe ont été préalablement enregistrés. 9. Procédé selon la revendication 8 caractérisé en ce qu'on adresse ladite mémoire morte directement par les valeurs desdits mots de format fixe (Xn,Xn 1) consécutifs. 10. Procédé selon l'une des revendications I à 7, caractérisé en ce qu'on calcule la somme et la différence entre le mot précédent précité et la valeur absolue de la différence correspondante (22,23) et en ce qu'on supprime ledit bit de signe si l'une seulement de ces deux valeurs calculées est comprise dans l'intervalle O,N]précité. 11. Dispositif de compression d'une succession d'informations numériques binaires se présentant sous forme de mots de format fixe représentant des nombres entiers positifs de l'intervalle 0,NJ comportant une entrée de mot (E) o sont appliqués lesdits mots, un registre (1) formant mémoire relié à ladite entrée pour mémoriser à chaque instant la valeur du mot précédant celui qui est appliqué à ladite entrée, et une mémoire (7) pour recevoir une succession d'informations numéi-ques de longueurs variables représentatives de la succession desdite mots de format fixe, caractérisé en ce qu'il comporte: des moyens (2) pour transférer vers ladite mémoire tampon (7) - soit la valeur absolue de la différence entre le mot appliqué à ladite entrée et ledit mot précédent si la valeur absolue de ladite différence est supérieure à la valeur du mot précédent lorsque celui- ci est compris dans la première moitié dudit intervalle ou si la valeur absolue de ladite différence est supérieure à la valeur de la différence entre le nombre N et la valeur du mot précédent lorsque celui-ci est compris dans la seconde moitié dudit intervalle, - soit la valeur de cette différence et de son signe dans le cas contraire. 12. Dispositif selon la revendication 11, caractérisé en ce que lesdits moyens comportent une mémoire morte (2) dans laquelle ont été préalablement inscrits les résultats d'un codage pour toutes les combinaisons possibles de valeurs d'un mot et d'un mot précédent, ladite entrée (E) et la sortie dudit registre (1) étant reliées aux moyens d'adressage de ladite mémoire morte (2). 13. Dispositif selon la revendication Il caractérisé en ce que lesdits moyens comportent: - un premier soustracteur numérique (20) dont les deux entrées sont respectivement reliées à ladite entrée de mot (E) et à la sortie dudit registre (1) - un moyen pour extraire la valeur absolue (21) de la différence délivrée par ledit soustracteur, - un additionneur numérique (22) et un second soustracteur numé- rique (23) dont deux entrées sont respectivement reliées à la sortie dudit registre (1) et à la sortie dudit moyen pour extraire la valeur absolue (21) - une porte du type OU Exclusif (25) dont les deux entrées sont reliées respectivement aux sorties dudit soustracteur (22) et dudit second additionneur (23), et - des moyens de transfert (30,27) vers ladite mémoire (7), d'un code représentatif de ladite valeur absolue de la différence ou de la différence elle-même, sous la commande de ladite porte du type OU Exclusif. 14. Dispositif selon la revendication 13, caractérisé en ce que lesdits moyens de transfert comportent un multiplexeur (27) piloté par un comparateur (26) relié à la sortie dudit moyen pour extraire la valeur absolue de la différence, pour comparer cette valeur absolue à un nombre positif choisi, une entrée (C1) dudit multi- plexeur étant reliée à l'entrée de mot précitée.