FR 2600223 A1 19871218 FR 8600369 A 19860113 PROCEDE DE FORMATTAGE ET DE DEFORMATTAGE DE DONNEES RESULTANT DU CODAGE DINFORMATIONS NUMERIQUES A L'AIDE D'UN CODE A LONGUEUR VARIABLE, ET DISPOSITIF DE MISE EN OEUVRE La présente invention se rapporte à un procédé de formattage et de déformattage de données résultant du codage d'informations numériques à l'aide d'un code à longueur variable, et à un dispositif de mise en oeuvre. Pour enregistrer rapidement et avec le minimum d'encombrement un très grand nombre de données numériques telles que les valeurs successives des pixels d'une image numérisée, on comprime généralement ces données en utilisant un code à- longueur variable, les valeurs codées successives étant concaténées et envoyées à une 10 mémoire de masse telle qu'une unité à disques souples. Lorsque la vitesse d'acquisition des images est élevée (15 images par seconde ou plus), comme c'est le cas en imagerie médicale, les dispositifs connus de formattage assurant la concaténation ne sont pas suffisamment rapides, ce qui oblige soit à réduire la cadence d'acqui15 sition des images, d'o perte d'informations, soit à utiliser alternativement plusieurs dispositifs de formattage et mémorisation, ce qui augmente considérablement le prix de revient du système. La présente invention a pour objet un procédé de formattagedéformattage de données résultant du codage d'informations numé20 riques à l'aide d'un code à longueur variable, procédé qui permette une grande vitesse d'acquisition de ces informations numériques, et la présente invention a également pour objet un dispositif de mise en oeuvre de ce procédé, dispositif qui soit simple et peu onéreux. Le procédé de l'invention, qui vise au formattage, à conca25 téner des mots codés de longueur variable et à découper en entités de même longueur la chaîne ainsi obtenue, et à envoyer consécutivement ces entités à un dispositif de mémoire de masse, la longueur de ces entités étant égale au nombre d'éléments binaires pouvant être envoyés simultanément à ce dispositif de mémoire, et 30 au déformattage à effectuer les opérations inverses en vue de restituer lesdits mots codés, consiste, selon l'invention, au formattage, à mémoriser provisoirement et consécutivement les mots codés dans un registre d'entrée, en les cadrant, à la suite d'un 5 éventuel résidu vers l'une des extrémités de ce registre, à les diviser, à partir de ladite extrémité, en tranches adjacentes de même longueur, la tranche comprenant l'autre extrémité pouvant être incomplète, et constituant ledit résidu, ces tranches comportant quatre éléments binaires, puis à transférer du registre du 10 niveau de départ vers un registre de niveau de sortie, de capacité égale à la longueur desdites entités, en passant, le cas échéant, par des registres de niveaux intermédiaires, toutes les tranches complètes du niveau de départ, en décalant, le cas échéant, vers ladite extrémité du registre de niveau de départ la tranche incomplète restante, les registres de niveaux intermédiaires ayant chacun une capacité égale à un multiple entier de la longueur d'une tranche, cette capacité allant en croissant du niveau de départ au niveau d'arrivée, les tranches complètes étant transférées après celles des niveaux intermédiaires, dans l'ordre, en priorité vers le niveau 20 d'arrivée jusqu'à achèvement de son remplissage, les tranches qui ne peuvent, le cas échéant, être transférées vers ce niveau d'arrivée du fait de son plein remplissage, étant transférées vers les registres de niveaux intermédiaires de manière à remplir soit, en priorité, ceux contenant déjà des tranches n'ayant pu précédemment être trans25 férées vers le niveau d'arrivée, puis ceux dont la capacité est la plus proche de celle nécessaire pour loger les tranches restantes, en utilisant le minimum de niveaux, soit, si tous les niveaux intermédiaires sont vides, de manière à remplir un ou plusieurs de ces niveaux intermédiaires en en utilisant le minimum, le contenu de ces 30 niveaux intermédiaires étant ensuite, en priorité, transféré vers le niveau d'arrivée, en respectant l'ordre d'ancienneté, le contenu du niveau d'arrivée étant transféré vers le dispositif de mémoire de masse dès qu'il est plein, et au déformattage à mémoriser provisoirement et consécutivement les tranches successives des codes concaténés en provenance de la mémoire de masse dans un registre de niveau supérieur de capacité au moins égale au plus long code utilisé, à pré-cadrer vers l'une des extrémités de ce registre le code le plus proche de cette extrémité du registre de façon que l'extré5 mité du code la plus proche de cette extrémité du registre arrive à l'extrémité d'une des zones d'extrémité de longueur déterminée du registre par décalage d'un nombre entier de fois la longueur de la zone, à transférer au moins partiellement dans un ou plusieurs registres intermédiaires le code ainsi pré-cadré en le cadrant sur 10 une extrémité de ces registres, et à transférer dans un registre de sortie le code ainsi cadré. Selon un aspect du procédé de l'invention, on cadre d'abord le préfixe du code, puis son suffixe. Le dispositif formatteur de l'invention comporte un dispositif cadreur relié à l'entrée d'un registre d'entrée dont la sortie est 15 reliée d'une part à une entrée du dispositif cadreur via un premier multiplexeur, d'autre part à un premier registre intermédiaire via un second multiplexeur, et d'autre part à un troisième multiplexeur, la sortie du premier registre intermédiaire étant également reliée à ce troisième multiplexeur, la sortie du troisième multiplexeur étant 20 reliée à un second registre intermédiaire et à un quatrième multiplexeur auquel est également reliée à la sortie du second registre intermédiaire, la sortie du quatrième multiplexeur étant reliée à un registre de sortie. Le dispositif déformatteur de l'invention comporte un pré25 cadreur suivi d'un cadreur, le pré-cadreur comportant au moins un registre d'entrée suivi d'un multiplexeur et d'un registre de précadrage, le cadreur comportant au moins un étage de circuits logiques de décalage et un multiplexeur. Selon un aspect avantageux de l'invention, le cadreur comporte un cadreur de préfixe suivi d'un 30 cadreur de suffixe comprenant chacun un étage de circuits logiques de décalage et un multiplexeur. La présente invention sera mieux comprise à la lecture de la description détaillée d'un mode de réalisation pris comme exemple non limitatif et illustré par le dessin annexé, sur lequel: - la figure 1 est un diagramme explicatif du fonctionnement d'un formatteur conforme à l'invention; - la figure 2 est un bloc-diagramme d'un mode de réalisation d'un formatteur conforme à l'invention; - la figure 3 est un blocdiagramme d'un circuit de cadrage par mixage utilisable dans le mode de réalisation de la figure 2; - la figure 4 est un diagramme explicatif du fonctionnement d'un déformatteur conforme à l'invention; - la figure 5 est un bloc-diagramme d'un mode de réalisation 10 de pré-cadreur d'un déformatteur conforme à l'invention, et - la figure 6 est un blocdiagramme d'un mode de réalisation de cadreur d'un déformatteur conforme à l'invention. Le dispositif formatteur-déformatteur décrit ci-dessous est utilisé dans un équipement d'enregistrement en temps réel sur 15 disques magnétiques d'images numérisées, telles que des images d'angiographie, après compression par code à longueur variable, les images ainsi enregistrées étant subséquemment restituées selon un processus inverse de traitement, mais il est bien entendu que l'invention n'est pas limitée à une telle application, et qu'elle peut 20 être mise en oeuvre pour formatter diverses sortes de données numérisées et compressées selon un code à longueur variable, et, après enregistrement et/ou transmission, pour déformatter, décomprimer et restituer les données d'origine. Les informations numériques provenant de la numérisation 25 d'images sont comprimées dans un compresseur 1, qui utilise un code à longueur variable tel qu'un code de Huffman. Le rôle du formatteur est de concaténer ces codes, puis de découper la chaîne d'éléments binaires ainsi obtenue en tranches de longueur constante, la longueur de ces tranches étant telle qu'elles puissent être 30 directement prises en compte et inscrites sur le disque magnétique par les circuits d'enregistrement de celui-ci. Cette longueur est généralement de seize éléments binaires pour des disques courants. Bien entendu, le traitement des images et leur enregistrement doivent se faire à une vitesse au moins égale à la vitesse d'acquisition de ces images. Les codes, de longueur m variable, successivement issus du compresseur I sont envoyés à un -registre d'entrée 2 en étant cadrés, par exemple sur l'extrémité de droite (par rapport au dessin) de ce registre. Le registre 2 est divisé en "tranches" adjacentes égales. Dans un exemple de réalisation préféré, pour lequel la longueur maximale des codes à la sortie du compresseur est de seize éléments binaires et la longueur des mots envoyés au disque est de seize éléments binaires, le registre 2 a une capacité de vingt éléments binaires et est divisé en cinq tranches de quatre éléments binaires 10 chacune, respectivement référencées NO à N4. Le dispositif formatteur comporte un registre de sortie 3 dont la capacité est, dans le cas présent, de seize éléments binaires, car ce registre charge une mémoire de masse, qui est ici une unité à disques souples dont l'entrée est à seize éléments binaires. Le 15 formatteur comporte en outre un premier registre intermédiaire 4 dont la capacité est égale à celle d'une tranche du registre 2, et un second registre intermédiaire 5 dont la capacité est égale à celle de deux tranches du registre 2. Dans le cas présent, les capacités des registres 4 et 5 sont de quatre et huit éléments binaires respecti20 vement. Le registre 2 peut charger, suivant son contenu, l'un ou plusieurs des registres 3 à 5, le registre 4 peut charger le registre 3 ou le registre 5, et le registre 5 peut charger le registre 3. On va expliquer ci-dessous comment s'effectuent ces différents chargements, qui se font toujours par multiples entiers de la longueur d'une 25 tranche du registre 2. Lorsqu'un premier mot de code est envoyé par le compresseur I au registre 2, ce mot est cadré sur l'extrémité de droite de ce registre, et plus précisément sur l'extrémité de droite de la tranche NO du registre 2. Selon la longueur de ce mot, différentes possibi30 lités de chargement des autres registres du formatteur peuvent avoir lieu: - si la longueur de ce mot est inférieure ou égale à trois éléments binaires, il est chargé dans les trois cellules de droite de NO et y reste. Le second mot provenant du compresseur sera chargé immé- diatement à gauche de ce résidu, et l'information obtenue à partir de ces deux mots sera traitée comme expliqué ci-dessous à propos d'un premier mot d'une longueur d'au moins quatre éléments binaires, - si la longueur de ce mot va de quatre à sept éléments binaires, les quatre éléments binaires de droite sont transférés dans le registre 4, et le résidu éventuel est ensuite transféré dans NO et cadré à droite, - si la longueur de ce mot va de huit à onze éléments binaires, les huit premiers en partant de la droite sont transférés dans le registre 10 5, et le résidu éventuel est ensuite transféré dans NO et cadré à droite; - si la longueur de ce mot va de douze à quinze éléments binaires, les huit premiers à droite sont transférés dans- le registre 5, les quatre suivants dans le registre 4, et le résidu éventuel est ensuite transféré dans NO et cadré à droite; - et enfin, si la longueur de ce mot est de seize éléments binaires, ils sont directement transférés dans le registre 3, et le contenu du registre 3 est transféré vers la mémoire de masse. Lorsque le compresseur 1 envoie au registre 2 le second mot 20 de code, puis les mots de code suivants, qui sont, comme précisé cidessus, chargés immédiatement à gauche du résidu éventuel, ou cadrés à droite dans ce registre 2 s'il n'y a pas de résidu, les processus de transferts décrits ci-dessus restent valables, I'éventuelle occupation des registres 4 et 5 entraînant les transferts entre 25 registres explicités dans le tableau N I ci-dessous. Dans ce tableau, la variable q est égale à la partie entière du rapport l/n, dans lequel I est la longueur de l'information contenue dans le registre 2 (avec I = m + r, m étant la longueur du mot de code envoyé par le compresseur 1 et r la longueur du résidu 30 éventuel), et n est la longueur d'une tranche du registre 2, et dans le cas présent n = 4 et r peut donc aller de 0 à 3. Les contenus des registres 3, 4 et 5, lorsqu'ils sont pleins, sont respectivement notés W, T, B. Les variables f (W), f(T) et f(B) sont des "fanions" indiquant, s'ils sont égaux à 1, l'occupation des registres 3, 4 et 5 respec- tivement, et s'ils sont égaux à 0, leur vacuité. Dans les deuxième et troisième colonnes les valeurs des fanions sont celles avant transfert, et dans la colonne de droite, ce sont celles après transfert. Dans la colonne "transferts", un transfert du niveau (tranche ou 5 registre) (Y) au niveau (Z) est symbolisé par (Z) = (Y). Lorsqu'il y a transfert depuis plusieurs niveaux, ils sont notés, de gauche à droite dans l'ordre d'ancienneté croissant de leurs contenus respectifs (] "'ancienneté" dans le registre 2 allant en croissant de N4 vers NO puisque les mots de code successifs sont chargés dans le registre 2 à 10 gauche du résidu éventuel du mot précédent, ce résidu étant la partie gauche dudit mot précédent). Dans le tableau ci-dessous, les résidus éventuels ne sont pas mentionnés, puisqu'ils ne sont pas transférés. Ainsi, le contenu de la mémoire de masse peut être assimilé à 15 une chaîne continue de mots de code disposés dans l'ordre chronologique (le chargement et la lecture de la mémoire étant séquentiels). La concaténation des mots de code sucessifs permet d'effectuer les transferts vers la mémoire de masse avec le maximum d'efficacité puisque ces transferts se font en parallèle et que les 20 opérations séquentielles (transferts de I vers 2, puis de 2 vers 3, le cas échéant via les registres intermédiaires, et de 3 vers la mémoire de masse) peuvent être cadencées par une horloge commune (traitement "pipeline"). I=I =;: [ N]( =[]:::L [ =[9]J: NI [ZNI =]91 i =t[]: [;11 [[ON] =[ [] I = Ill]t;: [I(N]; I] O; =[tI: [l[ON (N] N[ZN] =[là] 0 T : '];;N; I = [g]; I:[ZN ][N]=([l:: le f1 [ ZN] CI(i1 I =[ *ax]: ['l[ON] [IN]= 1: =: O: r = ta] *:* [O]tN] [IN[ZN][N] =[i] *0 0 :: : : 'Z ui 1 a I=(9C];: [IN] [ZN1= [l i[5 *tiI: []; (ON =[a-N]: ,: O = [il 1a 1 [Aai y EII [ON] [ IN][ZN] (là] I :,* : : 0 = [J.l;:; :: I-rilI tZN]=[l] Is=ua!;:-[l [ON M[] N [ENI P= b]: 0:: ='gt:: : : 0 [ 1 [ON ENI: 1 ' 0 O = [Il (O: [ lN] =::': !: [gl;: [ON] =[l: 0: 0: I = [ON]: (IN] = C::: I = [;l ': [l] [ON] = [g 0 I 0 =[gig::: ;: =ta1:il [1 (ON] CIN= t:: 0: -[:Cll ' COa[l[Ial:C]=5: 0: 0:. 0 Ei = [l[N=] *.i o: I :::: 0: g:-:: : unznw * Xun * x * suo? u:til;.[l [0N *: 0l I: : u:m: X: X N l V1: 1 úZZ009Z On a représenté sur la figure 2 le bloc-diagramme d'un dispositif formatteur fonctionnant de la façon décrite ci-dessus. La sortie du compresseur (non représenté sur la figure 2) est reliée à une entrée 7 d'un dispositif de cadrage 8, qui est, selon un mode de réalisation préféré, un multiplexeur. La sortie du dispositif 8 est reliée à l'entrée d'un registre 9 d'une capacité de vingt éléments binaires, et divisé en cinq tranches de quatre éléments binaires chacune, référencées NO à N4 respectivement. Les sorties des tranches NO à N4 sont reliées à une entrée 11 10 du dispositif 8 via un multiplexeur 10 réalisé simplement à l'aide de cinq portes quadruples à trois états. Les sorties des tranches NO à N3 sont, d'autre part, reliées via un multiplexeur 12 à l'entrée d'un regisre 13 à quatre cellules, le multiplexeur 12 étant réalisé de la même façon que le multiplexeur 10. La sortie du registre 13 est 15 reliée à une entrée d'un multiplexeur élémentaire 14 dont l'autre entrée est reliée à la sortie de la tranche NO. La sortie de NO est également reliée à une entrée d'un multiplexeur élémentaire 15 dont l'autre entrée est reliée à la sortie de NI, cette dernière étant également reliée à une entrée d'un multiplexeur élémentaire 16. La 20 sortie de N2 est reliée d'une part à l'autre entrée du multiplexeur 16 et d'autre part à une entrée d'un multiplexeur élémentaire 17 dont l'autre entrée est reliée à la sortie de N3. Les sorties des multiplexeurs 14 à 17 sont reliées à un multiplexeur élémentaire 18. L'ensemble des multiplexeurs élémentaires 14 à 18 forme le multi25 plexeur 19. Les différents multiplexeurs élémentaires 14 à 17 peuvent être réalisés à l'aide de circuits intégrés de multiplexage classiques, et le multiplexeur 18 peut être réalisé à l'aide de portes à trois états. La sortie du multiplexeur 18 est reliée à un registre 20 à huit 30 cellules. La sortie du registre 20 est reliée à une entrée d'un multiplexeur élémentaire 21. Les sorties des registres 14 et 15 sont reliées d'une part à une autre entrée du multiplexeur 21, et d'autre part à une entrée d'un multiplexeur élémentaire 22 dont une autre entrée est reliée aux sorties des multiplexeurs 16 et 17. Les multiplexeurs élémentaires 21 et 22 forment le multiplexeur 23. Les sorties des multiplexeurs 21 et 22 sont reliées à un registre 25, à seize cellules également. Les registres 13, 20 et 25 correspondent respectivement aux registres T, B et W précités. Le dispositif formatteur comporte également un automate de 5 commande 26 commandant le dispositif de cadrage et les différents multiplexeurs décrits ci-dessus. L'automate 26 reçoit, sur une entrée 27 reliée au compresseur 1, la longueur des mots de code successifs, et reçoit sur trois autres entrées 28 à 30 les fanions f(T), f(B) et f(W) indiquant l'état d'occupation des registres 13, 20 et 25 respec10 tivement. L'automate 26 comporte cinq sorties différentes référencées 31 à 35. La sortie 31, produit l'information r de longueur du résidu, et commande le dispositif de cadrage 8 de la façon expliquée ci-dessous en référence au tableau 2. La sortie 32 produit l'information q (égale à la partie entière de l/n, comme précisé ci-dessus) 15 qui commande le multiplexeur 10 de façon expliquée ci-dessous. Les sorties 33 à 35 produisent des signaux f'(t), f'(b) et f'(w) pour commander les multiplexeurs 12, 19 et 23 de la façon expliquée cidessus en référence au tableau 1, les aiguillages réalisés par ces multiplexeurs en fonction de ces signaux de commande étant évi20 dents pour l'homme de l'art au vu du tableau I. Comme mentionné ci-dessus, les mots de code d'entrée provenant du compresseur doivent être introduits juste à gauche de l'éventuel résidu, qui est prélevé dans l'éventuelle tranche incomplète du registre 9, la position de cette tranche étant détectée 25 grâce au critère q: dans le multiplexeur 10, seule est validée par la commande q la porte correspondant à la tranche dont le numéro est égal à q: par exemple si q = 2, c'est-à-dire si le résidu est dans N2 et si on ne transfère que le contenu de NO et NI vers les registres situés en aval du registre 9, on valide la porte correspondant à N2. 30 Ce résidu est cadré à droite dans le registre d'entrée du cadreur 8, et immédiatement à sa gauche on introduit les éléments binaires du mot de code incident M de la façon suivante: - si on appelle aO, al, a2,... am les éléments binaires de M, gO, gl, g2 les éléments binaires du résidu R, et bO, bl, b2,... bl les éléments binaires du contenu C du registre d'entrée du cadreur (c'est-à-dire de (M) (R)), la table de vérité donnant la disposition des différents éléments binaires de R, M et C en fonction de r est donnée par le tableau 2 cidessous. Tableau 2 15 bl.. b5 b4 b3 b2 bl bO r a4 a3 a2 ai aO 0 a3 a2 al aO gO 1 a2 al aO g. gO 2 al aO g2 gl gO 3 Etant données les explications ci-dessus, l'homme de l'art peut facilement réaliser l'automate de commande 26, à l'aide de mémoires mortes, par exemple, programmées de façon à obtenir les signaux r, q, f'(t), f'(b) et f'(w) à partir des valeurs d'entrée r, m, f(t), f(b), f(w). 2'0 On a représenté sur la figure 3 le bloc-diagramme d'un mode de réalisation du cadreur de l'invention. Les éléments binaires A0 à AI5 des mots de code M sont envoyés sur les entrées d'une rangée 36 de dix-neuf multiplexeurs élémentaires à quatre fils d'entrée et un 2 fil de sortie chacun, selon les combinaisons suivantes, dans l'ordre: 25 A0 - GO (GO sur 3 fils), A1 - A0 - G1 (GI sur 2 fils), A2 - AI - A0 G2, A3-A2-AI -A0, A4-A3- A2-A1, A5-A4-A3-A2,..., masse (GND sur 3 fils) - A15. Sur les sorties des multiplexeurs élémentaires, on obtient respectivement B0, BI,. , B18. Les éléments 30 binaires B0 à B3 forment NO, et ainsi de suite jusqu'à N4, qui..DTD: comprend B16 à BI8. On va maintenant expliquer le fonctionnement du dispositif déformatteur en référence à la figure 4. La mémoire de masse envoie séquentiellement au dispositif déformatteur des mots de longueur constante (16 éléments binaires dans le cas présent). Ce dispositif déformatteur est chargé de reconnaître les frontières de mots de code, d'extraire ces derniers et de les présenter, cadrés (par exemple à droite sur le dessin), au processeur de décompression. A 5 l'initialisation, le premier mot de code est, bien entendu, cadré sur sa frontière (de droite), mais l'extraction des mots de code suivants produit un glissement de leur frontière antérieure (celle relative au mot précédent) vers la gauche d'une quantité égale à la longueur des mots venant d'être extraits. La fonction principale du déformatteur 10 est de recadrer à droite chaque résidu subsistant éventuellement après extraction d'un mot de code reconnu, afin de présenter au décompresseur des mots de code, en particulier leurs préfixes, alignés sur une frontière. Cette opération de recadrage est réalisée en deux étapes, comme expliqué ci-dessous, afin de minimiser le nombre de transferts à y effectuer. La première étape est dénommée "pré-cadrage". Les mots de longueur constante envoyés séquentiellement par la mémoire de masse sont rangés dans un registre 37 se composant d'un registre principal 38 et d'un registre auxiliaire 39. Si seul le contenu du 20 registre 38 est envoyé au pré-cadreur 40, le contenu du registre 39 lui est ensuite transféré, et la mémoire de masse charge le registre 39. Si les contenus des deux registres 38 et 39 sont envoyés simultanément au pré-cadreur, la mémoire de masse charge le registre 38 puis le registre 39. Pour simplifier les explications, on 25 considère le pré-cadreur 40 comme un registre ayant la capacité du registre 37, à savoir 32 éléments binaires pour le mode de réalisation préféré décrit ici. On considère que dans le pré-cadreur 40-plusieurs mots sont répartis sur un certain nombre d'entités (B), chacune de capacité b 30 éléments binaires. Dans le cas présent b = 8 et le pré-cadreur comporte quatre entités référencées (BO) à (B3) de droite à gauche, d'une capacité d'un octet chacune. On suppose qu'après l'extraction d'un mot de code du précadreur la frontière antérieure du code à traiter est décalée de g éléments binaires vers la gauche par rapport à l'extrémité de droite du pré-cadreur (tel que vu sur le dessin). Le pré-cadreur a pour fonction de décaler vers la droite son contenu d'un nombre entier s de fois b éléments binaires pour amener le premier élément binaire (définissant la frontière antérieure) du mot 5 de code suivant à l'intérieur de l'entité BO. Si on appelle ml la longueur du mot de code venant d'être extrait du pré-cadreur et dl le décalage de sa frontière antérieure par rapport à l'extrémité de droite du pré-cadreur, on a: g = ml + dl (bien entendu, à l'initialisation ml et dl sont nulles). La frontière antérieure du mot de 10 code à extraire doit donc être décalée vers la droite de: s - Entier (g/b). Après ce décalage, la frontière antérieure du mot à extraire sera distante de d2 = g Modulo b par rapport à l'extrémité de droite du pré- cadreur, et bien entendu, la valeur de d2 est supérieure ou égale à zéro, mais inférieure à b. Ainsi, connaissant la valeur de s, on effectue dans le précadreur des transferts d'une entité (B) vers une autre située plus à droite avec un saut -d'amplitude déterminé par s si s = 1, les décalages ont lieu de proche en proche de gauche à droite, si s = 2, le contenu de B2 est transféré en B0, et ainsi de suite. On procède ensuite au cadrage proprement dit, qui peut se décomposer en un cadrage du préfixe, puis en un cadrage du suffixe. Pour simplifier les explications, on assimile le cadreur du préfixe 41 à un registre, de-même capacité que le pré-cadreur, et comportant donc comme ce dernier quatre entités (B). Si l'on considère que ces 25 entités sont elles-mêmes constituées de modules de taille n = b/2, l'opération de cadrage consistera à amener sur une frontière de droite de module la frontière de mot de code actuellement déportée de d2 vers la gauche. L'amplitude d3 du décalage à réaliser est d3 = d2 modulo n, d3 étant supérieure ou égale à zéro, mais 30 inférieure à n. Le préfixe du mot de code à extraire sera cadré sur la frontière de droite de l'un des deux modules (No) ou (NI) de (B0) du cadreur 41 selon la valeur de r = Entier (d2/n): si r = o, ce sera (No), et si r = 1, ce sera (NI). Connaissant la valeur de r, et connaissant la longueur du mot de code (fournie par le décompresseur), il est facile d'extraire ce mot de code. L'exploitation du préfixe du mot de code peut fournir les informations nécessaires au cadrage éventuel du suffixe, réalisé 5 par un cadreur du suffixe 42 identique au cadreur de préfixe et fonctionnant de la même façon que ce dernier. Le fonctionnement du déformatteur est commandé par un automate de commande, similaire à celui du formatteur. Le registre 37 est appelé cidessous "pile", le registre 38 étant divisé en 10 deux entités référencées (Wg) et (Wd) de gauche à droite, et le registre 39 étant divisé en deux entités référencées (Hg) et (Hd) de gauche à droite. En fonction du nombre de sauts s que les octets provenant du registre 37 vont subir lors du pré-cadrage, il apparaît un vide sur la gauche du précadreur, qui doit être comblé par un ou plusieurs octets prélevés dans le registre 37 qui subit donc également une "érosion", ce qui nécessite de le recharger à partir de la mémoire de masse. Le tableau 3 ci-dessous établit les changements d'états que subit l'automate de commande au cours de ces différents transferts. 20 Les variables d'états utilisées pour cet automate sont: s et OP, qui est un indicateur de parité du nombre de sauts déjà effectués au niveau du pré-cadrage. Au niveau de la pile, on a trois opérations différentes: aucun chargement de la pile, un chargement simple (de 39 vers 38 et du disque vers 39), et un chargement double (du disque 25 39 et 38). Dans le tableau 3, la ligne de s = 4 correspond à l'initialisation de l'automate. Comme dans le cas du formatteur,l'automate du déformatteur peut être réalisé à l'aide de mémoires mortes, par exemple, dont la programmation est évidente pour l'homme de l'art à la lecture des explications ci-dessus et du 30 tableau 3. o %O C0 VI N CDJ )... o I'_ X o 0 P-- m..;-.. ggil gg i Il il il Il 0,_ r._, "'00. 0.0 0: m'O CL L". 7 "%O " E "P ?..,,-,,O, Il il l il il * L. IgI I II I 1 ao 0...-W r- -i r- " la IJ t'a- 0 O.J t.p..J i_ I l Il Il -, CD.on. -i P"J r1 En. C) ".J ". Il I! Il I! -...o _. ' ' i 3 7 " "" "',-ï ,00 fi. W "'a n.. L_ _,' I i l il fi 'O w - m m- ' 00 W NJ 1- " E-a *1 L *1. 00 -O mll imo a W N- O il "J 9J L5J --il il Il il _. g _* o II i i i i i i i i i i 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 81 11 11 11 11 11 11 L i 11 11 11 11 81 11 i i i i i i i i o lu (O -I >1 r1 C Z - gu c ri e 1.............. 1-------------- ee..e....e.ee 1 4 ai. (n rn a o e7 a- o c Crb _..0 constituent les sorties du pré-cadreur. Le cadreur de préfixe 45 (figure 6) comporte un étage 46 de circuits logiques de décalage suivi d'un étage 47 de portes quadruples à trois états formant multiplexeur. L'étage 46 comporte six 25 circuits élémentaires référencés 48 à 53 de gauche à droite sur le dessin, et pouvant réaliser le décalage de 0,1,2 ou 3 bits sur un mot d'entrée de 7 bits, en fonction de la valeur de r (définie sur 2 bits). La sortie de B3 (sur 3 bits) et les 4 bits de poids faible de la sortie de B2 sont reliés au circuit 48. Toutes les sorties, sauf celle de poids 30 le plus faible, de B2 sont reliées au circuit 49. Les trois sorties de poids les plus forts de B2 et les quatre sorties de poids les plus faibles de B1I sont reliées au circuit 50. Les sorties, sauf celle de poids le plus faible, de BI sont reliées au circuit 51. Les trois sorties de poids les plus forts de BI et les quatre sorties de poids les plus faibles de B0 sont reliées au circuit 52, et enfin toutes les sorties, sauf celle de poids le plus faible, de B0 sont reliées au circuit 53. L'étage 47 comporte dix portes quadruples à trois états, référencées 54 à 63 respectivement de gauche à droite sur le dessin. La porte 54 est reliée à la sortie de 48, les portes 55,56 à la sortie de 49, les portes 57,58 à la sortie de 50, les portes 59,60 à la sortie de 51, les portes 61,62 à la sortie de 52, et la porte 63 à la sortie de 53. Les sorties des portes 60 et 61 d'une part, et des portes 62, 63 10 d'autre part sont reliées à une mémoire de décodeur de décompresseur, par exemple telle que celle référencée 26 dans la Demande de Brevet français n 85 17949 au nom de la demanderesse, cette mémoire fournissant la valeur décodée du pixel courant, et la longueur du code reconnu. Le cadreur de suffixe 64, branché en aval du cadreur de préfixe 45 comporte un étage 65 de circuits logiques de décalage suivi d'un étage 66 de portes quadruples à trois états formant multiplexeur. L'étage 65 comporte quatre circuits logiques 67 à 70. Les sorties de chacun des couples de portes 54 et 55, 56 et 57, 20 58 et 59, 60 et 61, 62 et 63 sont à chaque fois reliées à un bus à quatre conducteurs. Le circuit 67 est relié aux bus de sortie des portes 54 à 57, le circuit 68 aux bus de sortie des portes 56 à 59, le circuit 69 aux bus de sortie des portes 58 à 61, et le circuit 70 aux bus de sortie des portes 60 à 63. L'étage 66 comporte six portes quadruples à trois états respectivement référencés 71 à 76, dont les sorties sont reliées par un bus à huit conducteurs à la sortie 77 du cadreur. Les sorties des portes 71, 72 et 74 sont reliées aux quatre conducteurs de poids faibles de ce bus, et les sorties des portes 73, 30 75 et 76 sont reliées aux conducteurs de poids forts de ce bus. REVENDICATIONS 1. Procédé de formattage et de déformattage de données résultant du codage d'informations numériques à l'aide d'un code à longueur variable, selon lequel au formattage, on concatène des mots codés de longueur variable et on découpe en entités de même 5 longueur la chaîne ainsi obtenue, et on envoie consécutivement ces entités à un dispositif de mémoire de masse, la longueur de ces entités étant égale au nombre d'éléments binaires pouvant être envoyés simultanément à ce dispositif de mémoire, et au déformattage on effectue les opérations inverses en vue de restituer 10 lesdits mots codés, caractérisé par le fait qu'il consiste au formattage, à mémoriser provisoirement et consécutivement les mots codés dans un registre d'entrée, en les cadrant, à la suite d'un éventuel résidu vers l'une des extrémités de ce registre, à les diviser, à partir de ladite extrémité, en tranches adjacentes de 15 même longueur, la tranche comprenant l'autre extrémité pouvant être incomplète, et constituant ledit résidu, ces tranches comportant quatre éléments binaires, puis à transférer du registre du niveau de départ vers un registre de niveau de sortie, de capacité égale à la longueur desdites entités, en passant, le cas échéant, par 20 des registres de niveaux intermédiaires, toutes les tranches complètes du niveau de départ, en décalant, le cas échéant, vers ladite extrémité du registre de niveau de départ la tranche incomplète restante, les registres de niveaux intermédiaires ayant chacun une capacité égale à un multiple entier de la longueur d'une tranche, 25 cette capacité allant en croissant du niveau de départ au niveau d'arrivée, les tranches complètes étant transférées après celles des niveaux intermédiaire, dans l'ordre, en priorité vers le niveau d'arrivée jusqu'à achèvement de son remplissage, les tranches qui ne peuvent, le cas échéant, être transférées vers ce niveau d'arrivée du 30 fait de son plein remplissage, étant transférées vers les registres de niveaux intermédiaires de manière à remplir soit, en priorité, ceux contenant déjà des tranches n'ayant pu précédemment être transférées vers le niveau d'arrivée, puis ceux dont la capacité est la plus proche de celle nécessaire pour loger les tranches restantes, en utilisant le minimum de niveaux, soit, si tous les niveaux intermé5 diaires sont vides, de manière à remplir un ou plusieurs de ces niveaux intermédiaires en en utilisant le minimum, le contenu de ces niveaux intermédiaires étant ensuite, en priorité, transféré vers le niveau d'arrivée, en respectant l'ordre d'ancienneté, le contenu du niveau d'arrivée étant transféré vers le dispositif de mémoire de masse dès qu'il est plein, et au déformattage à mémoriser provisoirement et consécutivement les tranches successives des codes concaténés en provenance de la mémoire de masse dans un registre de niveau supérieur de capacité au moins égale au plus long code utilisé, à pré-cadrer vers l'une des extrémités de ce registre le code 15 le plus proche de cette extrémité du registre de façon que l'extrémité du code la plus proche de cette extrémité du registre arrive à l'extrémité d'une des zones d'extrémité de longueur déterminée du registre par décalage d'un nombre entier de fois la longueur de la zone, à transférer au moins partiellement dans un ou plusieurs 20 registres intermédiaires le code ainsi pré-cadré en le cadrant sur une extrémité de ces registres, et à transférer dans un registre de sortie le code ainsi cadré. 2. Procédé selon la revendication 1, caractérisé par le fait que l'on cadre d'abord le préfixe du code, puis son suffixe. 3. Dispositif de formattage et de déformattage de données résultant du codage d'informations numériques à l'aide d'un code à longueur variable, caractérisé par le fait que son formatteur comporte un dispositif cadreur (8) relié à l'entrée d'un registre d'entrée (9) dont la sortie est reliée d'une part à une entrée (11) du 30 dispositif cadreur via un premier multiplexeur (10), d'autre part un premier registre intermédiaire (13) via un second multiplexeur (12), et d'autre part à un troisième multiplexeur (19), la sortie du premier registre intermédiaire étant également reliée à ce troisième multiplexeur, la sortie du troisième multiplexeur étant reliée à un second registre intermédiaire (20) et à un quatrième multiplexeur (23) auquel est également reliée à la sortie du second registre intermédiaire, la sortie du quatrième multiplexeur étant reliée à un registre de sortie (25). 4. Dispositif de formattage et de déformattage de données selon la revendication 3, caractérisé par le fait que son déformatteur comporte un pré-cadreur (40) suivi d'un cadreur (41, 42), le pré-cadreur comportant au moins un registre d'entrée (38, 39) suivi d'un multiplexeur (43) et d'un registre de pré-cadrage (44), le 10 cadreur comportant au moins un étage de circuits logiques de décalage (46) et un multiplexeur (47). 5. Dispositif de formattage et de déformattage de données selon la revendication 4, caractérisé par le fait que le cadreur comporte un cadreur de préfixe (45) suivi d'un cadreur de suf15 fixe (64) comprenant chacun un étage de circuits logiques de décalage (46, 65) et un multiplexeur (47, 66).