WO1987003769A1 - Procede et dispositif de compression par codage conditionnel d'images numeriques sans perte d'informations - Google Patents
Procede et dispositif de compression par codage conditionnel d'images numeriques sans perte d'informations Download PDFInfo
- Publication number
- WO1987003769A1 WO1987003769A1 PCT/FR1986/000413 FR8600413W WO8703769A1 WO 1987003769 A1 WO1987003769 A1 WO 1987003769A1 FR 8600413 W FR8600413 W FR 8600413W WO 8703769 A1 WO8703769 A1 WO 8703769A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- pixel
- coding
- values
- output
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
Definitions
- the present invention relates to a method and a device for compression by conditional coding of digital images without loss of information.
- French patent application 83 18132 discloses a method of compressing digital information representative of the pixels of a digitized image. This process makes it possible to obtain a good compression rate, without loss of information, whereas the previous processes only made it possible to obtain interesting compression rates with a certain degradation of the image, therefore with loss of information, which is unacceptable when it comes to radiographic medical images.
- the present invention relates to a method for compressing digital information making it possible to obtain a high compression ratio, without loss of information, and it also relates to a device for implementing this method, a device which is simple. and inexpensive to make.
- the method of the present invention consists in performing a conditional coding for each pixel of the digitized image by assigning to each current pixel a variable length code counts given its value and the values of at least two neighboring pixels, and according to an advantageous aspect of the invention, the different codes are grouped into a smaller number of coding classes all having substantially the same probability of occurrence and groups together under the same prefix several values of unlikely codes that are distinguished by a suffix.
- the device for implementing the invention essentially comprises a random access memory memorizing the values of successive pixels of an image analyzed in number at least equal to the number of pixels contained in a line of this image, this random access memory being connected to a converter device supplying, as a function of the respective values of the pixels neighboring the current pixel, the numbers of coding classes, this converter device being connected to a coding device supplying, as a function of the above-mentioned class numbers, corresponding variable length codes.
- the device of the invention comprises a concatenation forming device essentially composed of a register with parallel inputs whose serial output is connected to a serial input of another register of the same capacity with parallel outputs, the inputs of the first of these registers being connected to said coding device and the outputs of the second to a mass storage device, said coding device comprising a variable-length code length output connected by a controller to a clock itself connected to the clock signal inputs of the two registers and to a counter whose number of counting states and equal to the capacity of each of the two registers, the output of this counter, activated at arrival at the last counting state, being linked to the command to validate the outputs of the aforementioned second register.
- FIG. 1 is a block diagram of an encoder conforming to the invention.
- FIG. 2 is a block diagram of a decoder according to the invention.
- variable length codes such as HUFFMAN codes (which can range from 1 to 16 binary elements for example) would make it possible to reach the value of compression ratio mentioned above, but would require, in the current state of technology, a prohibitive number of memory circuits.
- the present invention makes it possible, as explained below, to considerably reduce the number of circuits necessary for the implementation of such coding.
- the present invention proposes, first, to distribute all the pairs of values (Y, Z) into a smaller number of coding classes, and then to group several values under a single prefix, distinguished by a suffix.
- the compression ratio could be further increased by taking into account a larger number of pixels, but this would require, in the context of the invention, an increase in the capacity of the coding memory generally too high having regard to the relatively small increase in compression ratio.
- the coder shown in FIG. 1 receives, on a terminal 1, from a digitizing device (not shown), a succession of binary data, coded on eight binary elements in the present case, resulting from the analysis, line by line , an angiography image, and then the digitization of the values obtained.
- a digitizing device not shown
- X the value of the current pixel (the one being coded)
- Y the value of the previous pixel
- Z the value of the one having the same rank as pixel X in the previous line.
- other pixels could be chosen from among the neighboring pixels of the current pixel, whether in the current image or in the previous images of the sequence.
- Terminal 1 of the encoder is connected to the input of a memory 2, advantageously consisting of a random access memory, making it possible to store a number of pixel values equal to the number of pixels of an image line analyzed.
- the memory 2 has two outputs 3, 4 on which the current values Y and Z appear respectively for an incident current value X, this by means of addressing the memory 2 which is obvious for those skilled in the art.
- the output 3 is connected to the addition input of an adder 5 whose subtraction input is connected to the output 4.
- the output 4 is also connected to the input of a memory 6, which can be a read only memory, but preferably random access memory, and which, depending on the value of Y, provides part of the code number on three binary elements (in fact, one of the eight lines in the table above).
- the output of the adder 5 (on which the value YZ is collected) is connected to the input of a memory 7, which can be, like memory 6, a read only memory, but preferably a random access memory.
- This memory 7 provides, as a function of the eight classes of values of (YZ), the other three binary elements of the code number.
- the input l is, moreover, connected to an input of a multiplexer 8, and to the addition input of an adder 9, the subtraction input of which is connected to the output 3.
- the output of the the adder 9 is connected to the addition input of another adder 10 the other addition input of which is connected to the output of the adder 5 with shift of one row towards the least significant binary elements, so as to draw half of the output value of the latter, i.e. (YZ) / 2.
- the output of the adder 10 is connected to another input of the multiplexer 8.
- the outputs of memories 6 and 7 are connected on the one hand to a memory 11 the output of which is connected to the control input of the multiplexer 8, and on the other hand, jointly with the output of the multiplexer 8, to the input a code memory 12.
- the output of the adder 5 is defined on nine binary elements (the sign is taken into account), like that of the multiplexer 8, and the memory 12 is therefore addressed on fifteen elements binaries.
- the memory 11 controls the choice, by the multiplexer 8, of the value X (of terminal 1) or else of the value X - from adder 10, according to the respective coding classes (0, 5, 6, 7) or (4 and 8 to 63).
- the memory 12 which is also preferably a random access memory, supplies information C on an output 13 which represents either the variable length code or a prefix to which the value X of the current pixel will be added in suffix (at the level of the register 16).
- the information C has, in the present case, a length L of fifteen binary elements at most, and this information L (determined on four binary elements) is presented on an output 14 of the memory 12.
- information P indicating, on a binary element, whether information C is a variable length code or a prefix.
- the outputs 13 and 15 of the memory 12, as well as the terminal 1, are connected to the parallel inputs of a register 16 whose serial output is connected to the serial input of another register 17.
- the parallel outputs (sixteen in the present case) of the register 17 are connected via a buffer register 18 to a mass memory 19 which can be, for example a flexible disk unit.
- the connection between the buffer 18 and the memory 19 can be done on eight or sixteen binary elements.
- the outputs 14 and 15 of the memory 12 are connected to a controller 20, which can for example be a down counter, itself connected to the control input of a clock 21.
- the output of the clock 21 is connected to the input of clock signals from registers 16 and 17 and to a counter 22 mounted as a counter by 16, the output of which is connected to the input LD for controlling the loading of register 18.
- the formatting circuit connected downstream of the memory 12 operates as follows. At the first incident value of X, register 16 is loaded from memory 12 either with a prefix and the value of X via input 1, or with the corresponding variable length code.
- the controller 20 causes the clock 21 to send a number of pulses equal to the length L1 of the information loaded into the register 16, so that this first information is transferred to the first L1 cells of the register 17 (those the closer to the serial input).
- the counter 22 does not reach its release value, and the register 17 contains (16-L1) binary elements of any value, and L1 binary code elements.
- the register 16 is loaded with the corresponding information of length L2, and the controller 20 causes the clock 21 to transmit L2 pulses.
- L2 is greater than (16-L1), as soon as the clock 21 has emitted (16-L1) pulses, the counter 22 arrives at 16 and emits at its output a signal which commands the sending by the register 17 of its contained on its parallel outputs.
- This content consists of the L1 bits of information corresponding to the first pixel analyzed and the (16-L1) first bits of information corresponding to the second pixel analyzed. These first 16 bits are then loaded into the mass memory 19.
- L2 is less than (16-L1), the counter 22 does not fire, and the register 17 waits for the loading of other information coming from from the register 16.
- a third piece of information of length L3 is loaded into the register 16 and transferred in series to the register 17, and if the latter receives at least sixteen bits of information, i.e. if (L1 + L2 + L3 - 16) is greater than or equal to 16, the content of register 17 is transferred to memory 19, otherwise register 17 waits for the arrival of one or more other following pieces of information, until this condition is fulfilled .
- FIG. 2 shows the block diagram of a decoder circuit making it possible to restore from the information stored in the mass memory 19 the original image.
- the decoder circuit described below takes up all the constituent elements of the circuit of FIG. 1, but with certain connection differences.
- a person skilled in the art can easily realize the two circuits using a single set of constituent elements, and switch them appropriately according to whether he wants to obtain an encoder or a decoder.
- these two circuits are described here separately.
- the mass memory 19 is connected by a buffer 23 to the parallel input of a register 24, the serial output of which is connected to the serial input of another register 25.
- the connection between the memory 19 and the buffer 23 can be done on eight or sixteen binary elements, and that between the buffer and the register 24 is done on sixteen binary elements, the two registers 24 and 25 each having sixteen cells.
- the parallel output of register 25 is connected to the input of a decoder 26 consisting of a read-only memory, or, preferably, of a random access memory.
- the decoder 26 has an output 27 which emanates the decoded word (which is either X or X -), on nine binary elements in the present case (value on eight binary elements and the sign), and an output 28 on which there is information concerning the length of the decoded word.
- This output 28 is connected to a controller 29, which comprises for example a down-counter, and the output of which is connected to the control input of a clock 30.
- the output of the clock 30 is connected to the signal inputs clock of registers 24 and 25, as well as at the input of a counter 31 mounted as a counter by 16.
- the output, activated on arrival at state 16, of counter 31 is connected to the signal input buffer 23.
- the output 27 (without the sign) of the decoder 26 is connected to an input of a multiplexer 32 as well as to the addition input of an adder 33 (with the sign) whose output is connected to the input of another adder 34, the output of the latter being connected to another input of the multiplexer 32.
- the output of the multiplexer 32 is connected to a terminal 35, on which we collect, for subsequent processing, the digitized values of the pixels X (on 8 binary elements in this case), as well as the input of a memory 36 which has the same characteristics as the memory 2.
- the output "Y" of the memory 36 is connected to the input of a memory 37 as well as to the input d 'an adder 38.
- the subtraction input of the adder 38 is connected to the output "Z" of memory 36, and its output is connected to the input of a memory 39.
- the outputs of memories 37 and 39 are connected to the input of the decoder 26, as well as to the input of a memory 40 whose output is connected to the control input of the multiplexer 32.
- the characteristics of the memories 37, 39 and 40 are the same as those of memories 6, 7 and 11 respectively.
- the output "Y" of the memory 36 is connected to another input of the adder 33, and the output of the adder 38 is connected, with shift of a weight towards the least significant (division by 2), with l subtraction input of the adder 34.
- the values of the successive pixels of an image we read, in the order in which they were stored there, slices of 8 or 16 binary elements which are loaded into the buffer 23.
- a control device (not shown) sends it a clock pulse, and its content is transferred to the register 24.
- the controller 29 causes clock 30 to send to registers 24 and 25 a number of pulses corresponding to the length of the code previously presented at the input of decoder 26 to evacuate it as soon as the decoder has supplied at its output 27 the value decoded X or X -.
- the first coded value present in the register 24 corresponds to the value X of the first pixel, and in this case, the controller 29 sends 16 pulses by the clock 30, to transfer it to the register 25.
- the decoder memory 26, which is preferably a random access memory , receives on its addressing inputs, on the one hand the 6 binary elements corresponding to the class of the code associated with the pair (Y, Z), on the other hand the first 8 bits of the content of register 25.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
Pour comprimer les valeurs des pixels d'une image numérisée, on mémorise (2) les valeurs des pixels voisins (Y, Z) du pixel (X) traité, et en fonction de leurs valeurs respectives (6, 7), on produit un numéro de code entraînant le codage selon un code composé ou le codage du pixel lui-même, avec un préfixe (12). Les codes successifs sont formattés et concaténés pour être mémorisés (16 à 22). Application: imagerie médicale.
Description
PROCEDE ET DISPOSITIF DE COMPRESSION PAR CODAGE
CONDITIONNEL D'IMAGES NUMERIQUES
SANS PERTE D'INFORMATIONS
La présente invention se rapporte à un procédé et à un dispositif de compression par codage conditionnel d'images numériques sans perte d'informations.
On connaît d'après la demande de brevet français 83 18132 un procédé de compression d'informations numériques représentatives des pixels d'une image numérisée. Ce procédé permet d'obtenir un bon taux de compression, sans perte d'informations, alors que lesprocédés antérieurs ne permettaient d'obtenir des taux de compression intéressants qu'avec une certaine dégradation de l'image, donc avec perte d'informations, ce qui est rédhibitoire lorsqu'il s'agit d'images médicales radiographiques.
Toutefois, dans certaines utilisations, comme par exemple l'obtention d'images d'angiographie numérisées, dont le stockage doit se faire en occupant le moins de mémoire possible et à cadence vidéo, les taux de compression obtenus par le procédé de la susdite demande de brevet français ne sont pas suffisants.
D'aure part, on connaît d'après l'article de H. GHARAVI "Conditional Variable-length Coding for Gray-level Pictures" publié dans le BSTJ, vol. 63, N° 2 de février 1984, un procédé de compression par codage conditionnel, mais ce procédé part d'une image dont la numérisation (sur trois éléments binaires) induit une distorsion sur l'image originale.
La présente invention a pour objet un procédé de compression d'informations numériques permettant d^obtenir un taux de compression élevé, sans perte d'informations, et elle a également pour objet un dispositif de mise en oeuvre de ce procédé, dispositif qui soit simple et peu onéreux à réaliser.
Le procédé de la présente invention consiste à effectuer un codage conditionnel pour chaque pixel de l'image numérisée en assignant à chaque pixel courant un code à longueur variable compte
tenu de sa valeur et des valeurs d'au moins deux pixels voisins, et selon un aspect avantageux de l'invention, on regroupe les différents codes en un nombre plus faible de classes de codage présentant toutes sensiblement la même probabilité d'apparition et on regroupe sous un même préfixe plusieurs valeurs de codes peu probables que l'on distingue par un suffixe.
Le dispositif de mise en oeuvre de l'invention comporte essentiellement une mémoire vive mémorisant les valeurs de pixels successifs d'une image analysée en nombre au moins égal au nombre de pixels contenus dans une ligne de cette image, cette mémoire vive étant reliée à un dispositif convertisseur fournissant, en fonction des valeurs respectives des pixels voisins du pixel courant des numéros de classes de codage, ce dispositif convertisseur étant relié à un dispositif de codage fournissant, en fonction des numéros de classes précités des codes à longueur variable correspondants.
Pour permettre la mémorisation des codes des pixels successifs d'une image analysée, le dispositif de l'invention comporte un dispositif formateur à concaténation composé essentiellement d'un registre à entrées parallèles dont la sortie série est reliée à une entrée série d'un autre registre de même capacité à sorties parallèles, les entrées du premier de ces registres étant reliées audit dispositif de codage et les sorties du second à un dispositif de mémorisation de masse, ledit dispositif de codage comportant une sortie de longueur de code à longueur variable reliée par un contrôleur à une horloge elle-même reliée aux entrées de signaux d'horloge des deux registres et à un compteur dont le nombre d'états de comptage et égal à la capacité de chacun des deux registres, la sortie de ce compteur, activée à l'arrivée au dernier état de comptage, étant reliée à l'entrée de commande de validation des sorties du deuxième registre précité.
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 bloc diagramme d'un codeur conforme à
l'invention, et
- la figure 2 est un bloc diagramme d'un décodeur conforme à l'invention.
L'invention est expliquée ci-dessous en référence à la compression de données numériques correspondant à des images d'angiographie, mais il est bien entendu qu'elle n'est pas limitée à une telle application, et peut être utilisée dans tous les cas où l'on doit comprimer des données par utilisation d'un codage numérique à longueur de code variable. Des mesures réalisées sur différentes images d'angiographie numérisées ont montré qu'il faut prendre en compte lors du codage de chaque pixel d'une telle image, un maximum possible de pixels voisins intra ou inter-image de chaque pixel codé de l'image pour augmenter le taux de compression du codage réalisé. Ainsi, si l'on code un pixel X en tenant compte uniquement du pixel Y précédent (codage différentiel), on obtient un taux de compression (rapport du nombre d'éléments binaires résultant de la numérisation d'un pixel au nombre d'éléments binaires après codage) d'environ 2 si l'on ne tolère pas de distorsion. Si l'on tient compte à la fois du pixel Y précédant celui que l'on code et du pixel Z de même rang de la ligne d'analyse précédente (codage conditionnel), on peut obtenir un taux de compression d'environ 4, ceci bien entendu grâce au fait que les images en question ne sont pas des images de "bruit blanc" (c'est-àdire des images dans lesquelles les valeurs des pixels successifs sont aléatoires), mais des images dont les pixels successifs présentent une forte corrélation.
Si l'on numérise une image d'angiographie avec une résolution de huit éléments binaires par exemple (256 niveaux de valeurs), le codage conditionnel des pixels tenant compte des deux pixels voisins nécessite, si l'on ne veut pas perdre d'informations, une mémoire de codage d'une capacité de 28 . 28 = 216 valeurs de codes possibles, chacun d'eux devant coder 256 éventualités de valeur du pixel X.
Dans ces conditions, l'utilisation classique de 65536 codes de longueur variable tels que les codes de HUFFMAN (pouvant aller de
1 à 16 éléments binaires par exemple) permettrait d'atteindre la valeur de taux de compression précitée, mais nécessiterait, dans l'état actuel de la technologie, un nombre prohibitif de circuits de mémoire. La présente invention permet, comme expliqué ci-dessous, de réduire considérablement le nombre de circuits nécessaires à la mise en oeuvre d'un tel codage.
Pour éviter l'emploi d'une telle mémoire de valeurs codées, la présente invention propose, d'abord, de répartir l'ensemble des couples de valeurs (Y, Z) en un nombre plus faible de classes de codage, et ensuite de regrouper sous un seul préfixe plusieurs valeurs que l'on distingue par un suffixe. Plusieurs regroupements ont été testés sur un grand nombre d'images réelles d'angiographie, et il a été trouvé que la partition suivante en 61 classes constitue le meilleur compromis entre l'efficacité de la compression et la facilité de réalisation :
Dans le tableau ci-dessus, donnant en fonction des valeurs respectives de (Y-Z) et Y un numéro de code sur six éléments binaires (valeurs de 0 à 63), les numéros de code 1, 2 et 3 n'existent pas puisque les valeurs des pixels Y et Z ne peuvent être que positives ou nulles. Pour les numéros de code 0, 5, 6 et 7, il existe 4 codages de Huffman s'appliquant à la valeur du pixel courant X, et
pour chacun des autres numéros de code (4 et 8 à 63), un codage de Huffman adapté s'applique à la différence X -
Bien entendu, on pourrait encore augmenter le taux de compression en prenant en compte un plus grand nombre de pixels, mais cela nécessiterait, dans le cadre de l'invention, une augmentation de la capacité de la mémoire de codage généralement trop élevée eu égard à la relativement faible augmentation du taux de compression.
Le codeur représenté sur la figure 1 reçoit, sur une borne 1, d'un dispositif de numérisation (non représenté), une succession de données binaires, codées sur huit éléments binaires dans le cas présent, résultant de l'analyse, ligne par ligne, d'une image d'angiographie, puis de la numérisation des valeurs obtenues. On appelle X la valeur du pixel courant (celui qui est en train d'être codé), Y la valeur du pixel précédent, et Z la valeur de celui ayant le même rang que le pixel X dans la ligne précédente. Bien entendu, on pourrait choisir d'autres pixels parmi les pixels voisins du pixel courant, que ce soit dans l'image courante ou dans les images précédentes de la séquence. La borne 1 du codeur est reliée à l'entrée d'une mémoire 2, avantageusement constituée d'une mémoire vive, permettant de mémoriser un nombre de valeurs de pixels égal au nombre de pixels d'une ligne d'image analysée. La mémoire 2 comporte deux sorties 3, 4 sur lesquelles apparaissent respectivement les valeurs courantes Y et Z pour une valeur courante incidente X, ceci grâce à un adressage de la mémoire 2 évident à réaliser pour l'homme de l'art.
La sortie 3 est reliée à l'entrée d'addition d'un additionneur 5 dont l'entrée de soustraction est reliée à la sortie 4. La sortie 4 est également reliée à l'entrée d'une mémoire 6, qui peut être une mémoire morte, mais de préférence une mémoire vive, et qui, en fonction de la valeur de Y, fournit sur trois éléments binaires, une partie du numéro de code (en fait, l'une des huit lignes du tableau cidessus). La sortie de l'additionneur 5 (sur laquelle on recueille la valeur Y-Z) est reliée à l'entrée d'une mémoire 7, qui peut être,
comme la mémoire 6, une mémoire morte, mais de préférence une mémoire vive. Cette mémoire 7 fournit, en fonction des huit classes de valeurs de (Y-Z), les trois autres éléments binaires du numéro de code. L'entrée l est, par ailleurs, reliée à une entrée d'un multiplexeur 8, et a l'entrée d'addition d'un additionneur 9, dont l'entrée de soustraction est reliée à la sortie 3. La sortie de l'additionneur 9 est reliée à l'entrée d'addition d'un autre additionneur 10 dont l'autre entrée d'addition est reliée à la sortie de l'additionneur 5 avec décalage d'un rang vers les éléments binaires de poids faibles, de façon à prélever la moitié de la valeur de sortie de dernier, c'est-àdire (Y-Z)/2. La sortie de l'additionneur 10 est reliée à une autre entrée du multiplexeur 8.
Les sorties des mémoires 6 et 7 sont reliées d'une part à une mémoire 11 dont la sortie est reliée à l'entrée de commande du multiplexeur 8, et d'autre part, conjointement avec la sortie du multiplexeur 8, à l'entrée d'une mémoire de codes 12. Dans le cas présent, la sortie de l'additionneur 5 est définie sur neuf éléments binaires (on tient compte du signe), comme celle du multiplexeur 8, et la mémoire 12 est donc adressée sur quinze éléments binaires. La mémoire 11 commande le choix, par le multiplexeur 8, de la valeur X (de la borne 1) ou bien de la valeur X -
en provenance de l'additionneur 10, selon les classes de codage respectives (0, 5, 6, 7) ou (4 et 8 à 63). La mémoire 12, qui est également, de préférence, une mémoire vive, fournit sur une sortie 13 une information C qui représente soit le code à longueur variable, soit un préfixe auquel on adjoindra en suffixe la valeur X du pixel courant (au niveau du registre 16). L'information C a, dans le cas présent, une longueur L de quinze éléments binaires au maximum, et cette information L (déterminée sur quatre éléments binaires) se présente sur une sortie 14 de la mémoire 12. Enfin, sur une troisième sortie 15 de la mémoire 12, se présente une information P indiquant, sur un élément binaire, si l'information C est un code à longueur variable
ou un préfixe.
Les sorties 13 et 15 de la mémoire 12, ainsi que la borne 1, sont reliées aux entrées parallèles d'un registre 16 dont la sortie série est reliée à l'entrée série d'un autre registre 17. Les sorties parallèles (seize dans le cas présent) du registre 17 sont reliées via un registre tampon 18 à une mémoire de masse 19 qui peut être, par exemple une unité à disques souples. La liaison entre le tampon 18 et la mémoire 19 peut se faire sur huit ou seize éléments binaires. Les sorties 14 et 15 de la mémoire 12 sont reliées à un contrôleur 20, qui peut par exemple être un décompteur, lui-même relié à l'entrée de commande d'une horloge 21. La sortie de l'horloge 21 est reliée à l'entrée de signaux d'horloge des registres 16 et 17 et à un compteur 22 monté en compteur par 16, dont la sortie est reliée à l'entrée LD de commande du chargement du registre 18. Le circuit de formattage branché en aval de la mémoire 12 fonctionne de la façon suivante. A la première valeur incidente de X, le registre 16 est chargé depuis la mémoire 12 soit avec un préfixe et la valeur de X via l'entrée 1, soit avec le code à longueur variable correspondant. Le contrôleur 20 fait envoyer par l'horloge 21 un nombre d'impulsions égal à la longueur L1 de l'information chargée dans le registre 16, ce qui fait que cette première information est transférée dans les L1 premières cellules du registre 17 (celles les plus proches de l'entrée série). Si cette longueur L1 est inférieure à 16, le compteur 22 n'atteint pas sa valeur de décienchement, et le registre 17 contient (16-L1) éléments binaires de valeur quelconque, et L1 éléments binaires de code. A la seconde valeur incidente de X, le registre 16 est chargé avec l'information correspondante de longueur L2, et le contrôleur 20 fait émettre par l'horloge 21 L2 impulsions. Si L2 est supérieure à (16-L1), dès que l'horloge 21 a émis (16-L1) impulsions, le compteur 22 arrive à 16 et émet à sa sortie un signal qui commande l'envoi par le registre 17 de son contenu sur ses sorties parallèles. Ce contenu se compose des L1 éléments binaires de l'information correspondant au premier pixel analysé et des (16-L1) premiers éléments binaires de l'information
correspondant au second pixel analysé. Ces 16 premiers éléments binaires sont ensuite chargés dans la mémoire de masse 19. Bien entendu, si L2 est inférieure à (16-L1), le compteur 22 ne se déclenche pas, et le registre 17 attend le chargement d'autres informations en provenance du registre 16.
Dans le cas où L2 est supérieure à (16-L1), les (L2-(16-L1)) derniers éléments binaires de la seconde information restent dans les premières cellules du registre 17.
Ensuite, une troisième information de longueur L3 est chargée dans le registre 16 et transférée en série dans le registre 17, et si ce dernier reçoit au moins seize éléments binaires d'informations, c'est-à-dire si (L1 + L2 + L3 - 16) est supérieur ou égal à 16, le contenu du registre 17 est transféré vers la mémoire 19, sinon le registre 17 attend l'arrivée d'une ou de plusieurs autres informations suivantes, jusqu'à ce que cette condition soit remplie.
Ce processus de concaténation des informations se poursuit jusqu'à la fin de l'analyse de l'image ou des images à mémoriser, la dernière information étant avantageusement suivie d'un nombre de signaux d'horloge supplémentaires suffisants pour la transférer du registre 17 à la mémoire 19. Ces signaux d'horloge supplémentaires remplissent le registre 17, du côté de son entrée série, d'une succession d'éléments binaires, par exemple une suite de "0" résultant du forçage à "0" des cellules du registre 16. Ces signaux d'horloge supplémentaires peuvent être produits par un dispositif, non représenté, et de réalisation évidente pour l'homme de l'art : cela peut par exemple être un dispositif validé juste après l'analyse du dernier pixel et comportant un décodeur décodant l'état E du compteur. 22 et envoyant (16-E) impulsions d'horloge à la place de l'horloge 21 ou la forçant à les envoyer. On a représenté sur la figure 2 le bloc diagramme d'un circuit décodeur permettant de restituer à partir des informations mémorisées dans la mémoire de masse 19 l'image d'origine. Comme on le verra, le circuit décodeur décrit ci-dessous reprend tous les éléments constitutifs du circuit de la figure 1, mais avec certaines
différences de branchement. Ainsi, l'homme de l'art peut facilement réaliser les deux circuits à l'aide d'un seul jeu d'éléments constitutifs, et les commuter de façon appropriée selon qu'il veut obtenir un codeur ou un décodeur. Cependant, afin de ne pas compliquer inutilement la description et le dessin, ces deux circuits sont décrits ici séparément.
La mémoire de masse 19 est reliée par un tampon 23 à l'entrée parallèle d'un registre 24 dont la sortie série est reliée à l'entrée série d'un autre registre 25. Dans le cas présent la liaison entre la mémoire 19 et le tampon 23 peut se faire sur huit ou seize éléments binaires, et celle entre le tampon et le registre 24 se fait sur seize éléments binaires, les deux registres 24 et 25 ayant chacun seize cellules. La sortie parallèle du registre 25 est reliée à l'entrée d'un décodeur 26 constitué d'une mémoire morte, ou, de préférence, d'une mémoire vive. Le décodeur 26 comporte une sortie 27 de laquelle émane le mot décodé (qui est soit X, soit X - ), sur
neuf éléments binaires dans le cas présent (valeur sur huit éléments binaires et le signe), et une sortie 28 sur laquelle se présente une information concernant la longueur du mot décodé. Cette sortie 28 est reliée à un contrôleur 29, qui comporte par exemple un décompteur, et dont la sortie est reliée à l'entrée de commande d'une horloge 30. La sortie de l'horloge 30 est reliée aux entrées de signaux d'horloge des registres 24 et 25, ainsi qu'à l'entrée d'un compteur 31 monté en compteur par 16. La sortie, activée à l'arrivée à l'état 16, du compteur 31 est reliée à l'entrée de signaux d'horloge du tampon 23.
La sortie 27 (sans le signe) du décodeur 26 est reliée à une entrée d'un multiplexeur 32 ainsi qu'à l'entrée d'addition d'un additionneur 33 (avec le signe) dont la sortie est reliée à l'entrée d'un autre additionneur 34, la sortie de ce dernier étant reliée à une autre entrée du multiplexeur 32.
La sortie du multiplexeur 32 est reliée à une borne 35, sur laquelle on recueille, pour traitement subséquent, les valeurs numérisées des pixels X (sur 8 éléments binaires dans ce cas présent),
ainsi qu'à l'entrée d'une mémoire 36 qui a les mêmes caractéristiques que la mémoire 2. La sortie "Y" de la mémoire 36 est reliée à l'entrée d'une mémoire 37 ainsi qu'à l'entrée d'un additionneur 38. L'entrée de soustraction de l'additionneur 38 est reliée à la sortie "Z" de la mémoire 36, et sa sortie est reliée à l'entrée d'une mémoire 39. Les sorties des mémoires 37 et 39 sont reliées à l'entrée du décodeur 26, ainsi qu'à l'entrée d'une mémoire 40 dont la sortie est reliée à l'entrée de commande du multiplexeur 32. Les caractéristiques des mémoires 37, 39 et 40 sont les mêmes que celles des mémoires 6, 7 et 11 respectivement.
La sortie "Y" de la mémoire 36 est reliée à une autre entrée de l'additionneur 33, et la sortie de l'additionneur 38 est reliée, avec décalage d'un poids vers les poids faibles (division par 2), à l'entrée de soustraction de l'additionneur 34. Pour obtenir, à partir de la mémoire 19, sur la borne 35 les valeurs des pixels successifs d'une image, on lit, dans l'ordre dans lequel elles y ont été-mémorisées, des tranches de 8 ou 16 éléments binaires qui sont chargées dans le tampon 23. Au premier chargement du tampon 23, un dispositif de commande (non représenté) lui envoie une impulsion d'horloge, et son contenu est transféré dans le registre 24. Le contrôleur 29 fait envoyer par l'horloge 30 aux registres 24 et 25 un nombre d'impulsions correspondant à la longueur du code précédemment présenté à l'entrée du décodeur 26 pour l'évacuer dès que le décodeur a fourni à sa sortie 27 la valeur décodée X ou X - . La première valeur codée présente dans le
registre 24 correspond à la valeur X du premier pixel, et dans le cas, le contrôleur 29 fait envoyer 16 impulsions par l'horloge 30, pour la transférer dans le registre 25. La mémoire décodeur 26, qui est de préférence, une mémoire vive, reçoit sur ses entrées d'adressage, d'une part les 6 éléments binaires correspondant à la classe du code associé au couple (Y, Z), d'autre part les 8 premiers bits du contenu du registre 25. La valeur apparaissant à la sortie 27 du décodeur 26 est envoyée au multiplexeur d'une part directement (sans son signe), et d'autre part via les additionneurs 33 et 34, et à la sortie de ce
dernier on a, lorsque la valeur présentée à la sortie de 27 est X - la valeur :
X . = X,
le multiplexeur 32 étant basculé vers la sortie de 34 (puisqu'au codage du même pixel cette même valeur X - avait été
enregistrée). Dans le cas où l'on a directement à la sortie 27 la valeur X, le multiplexeur est basculé vers cette sortie (cette même valeur ayant été enregistrée au codage). Ainsi, on retrouve sur la sortie 35 les mêmes valeurs successives des pixels X que celles ayant été envoyées sur l'entrée l du codeur.
La valeur apparaissant à la sortie 28 de la mémoire décodeur
26 est envoyée au contrôleur 29 pour indiquer à celui-ci la longueur, sur 4 éléments binaires, du code reconnu dans les 8 premiers éléments binaires du registre 26.
Claims
1. Procédé de compression d'images numériques selon lequel l'on effectue un codage conditionnel pour chaque pixel de l'image numérisée en assignant à chaque pixel courant un code à longueur variable compte tenu de sa valeur et des valeurs d'au moins deux pixels voisins, caractérisé par le fait qu'on effectue un codage conditionnel sans perte d'informations en regroupant les différents codes en un nombre plus faible de classes de codage présentant toutes sensiblement la même probabilité d'apparition.
2. Procédé selon la revendication 1, caractérisé par le fait que selon la classe de codage on code soit la valeur courante du pixel soit la différence entre ce pixel et une combinaison des pixels voisins.
3. Procédé selon la revendication 2, caractérisé par le fait que les pixels voisins appartiennent à la même image que le pixel courant.
4. Procédé selon la revendication 2, caractérisé par le fait que les pixels voisins appartiennent à une image autre que celle du pixel courant.
6. Procédé selon l'une des revendications précédentes, caractérisé par le fait que l'on regroupe sous un même préfixe plusieurs valeurs de codes peu probables que l'on distingue par un préfixe.
7. Procédé selon l'une des revendications précédentes, caractérisé par le fait que l'on code directement la valeur du pixel courant lorsque le code comprimé que l'obtiendrait dans sa classe est trop long, ce codage du pixel courant consistant à faire précéder sa valeur d'un préfixe.
8. Dispositif de compression par codage conditionnel d'images numériques sans perte d'informations, caractérisé par le fait qu'il comporte une mémoire à décalage (2) comportant au moins deux sorties (3, 4) sur lesquelles se présentent, pour chaque valeur de pixel incidente (X) les valeurs des pixels voisins (Y, Z), ces sorties étant reliées chacune à une mémoire (6, 7) fournissant un numéro de code, ces deux mémoires étant reliées à une mémoire de codes compressés (12) dont la sortie est reliée à un dispositif de formattage et de concaténation de codes (16 à 22).
9. Dispositif selon la revendication 8, caractérisé par le fait que les mémoires de numéro de code (6, 7) sont également reliées à l'entrée de commande d'un multiplexeur (8) via une autre mémoire (11), l'une des entrées du multiplexeur recevant les valeurs de pixels incidentes (1), et l'autre une valeur (X fonction de la diffé rence entre les valeurs de pixels incidentes et les valeurs de pixels voisins, la sortie de ce multiplexeur étant également reliée à la mémoire de codes compressés.
10. Dispositif selon l'une des revendications 8 ou 9, caractérisé par le fait que le dispositif de formattage comporte deux registres en série (16, 17), l'entrée parallèle du premier étant reliée à la mémoire de codes compressés, et la sortie parallèle du second à une mémoire de masse (19), ces entrées de signaux d'horloge de ces deux registres étant reliées à une horloge (21) commandée par un contrôleur (20) relié à une sortie de la mémoire de codes.
11. Dispositif selon l'une des revendications 8 à 10, caractérisé par le fait que les mêmes éléments que ceux utilisés pour le codage servent au décodage des informations mémorisées dans la mémoire de masse, avec des connexions modifiées (figure 2).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR8517949A FR2591050B1 (fr) | 1985-12-04 | 1985-12-04 | Procede et dispositif de compression par codage conditionnel d'images numeriques sans perte d'informations |
FR85/17949 | 1985-12-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1987003769A1 true WO1987003769A1 (fr) | 1987-06-18 |
Family
ID=9325440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR1986/000413 WO1987003769A1 (fr) | 1985-12-04 | 1986-12-02 | Procede et dispositif de compression par codage conditionnel d'images numeriques sans perte d'informations |
Country Status (4)
Country | Link |
---|---|
US (1) | US4916544A (fr) |
EP (1) | EP0249607A1 (fr) |
FR (1) | FR2591050B1 (fr) |
WO (1) | WO1987003769A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3908086C1 (en) * | 1988-06-09 | 1989-10-19 | Veb Transformatoren- Und Roentgenwerk "Hermann Matern", Ddr 8030 Dresden, Dd | Method for compressing and decompressing digital data and device for carrying out the method |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5374963A (en) * | 1990-06-01 | 1994-12-20 | Thomson Consumer Electronics, Inc. | Picture resolution enhancement with dithering and dedithering |
US5351087A (en) * | 1990-06-01 | 1994-09-27 | Thomson Consumer Electronics, Inc. | Two stage interpolation system |
FR2705223A1 (fr) * | 1993-05-13 | 1994-11-25 | Ge Medical Syst Sa | Procédé d'acquisition d'images d'un corps par placement en rotation. |
US5745245A (en) * | 1995-01-06 | 1998-04-28 | Mita Industrial Co., Ltd. | Communication apparatus |
US5673209A (en) * | 1995-03-29 | 1997-09-30 | International Business Machines Corporation | Apparatus and associated method for compressing and decompressing digital data |
US5751860A (en) * | 1996-09-03 | 1998-05-12 | Acer Peripherals, Inc. | Method for compressing and decompressing digital image data |
US7050639B1 (en) | 1999-11-24 | 2006-05-23 | General Electric Company | Image data compression employing multiple compression code tables |
US6792151B1 (en) | 1999-11-24 | 2004-09-14 | General Electric Company | Image data compression employing optimal subregion compression |
US6633674B1 (en) | 1999-11-24 | 2003-10-14 | General Electric Company | Picture archiving and communication system employing improved data compression |
US6795583B1 (en) | 1999-11-24 | 2004-09-21 | General Electric Company | Image data compression employing embedded compression and decompression codes |
US6912317B1 (en) | 1999-11-24 | 2005-06-28 | General Electric Company | Medical image data compression employing image descriptive information for optimal compression |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4179710A (en) * | 1976-02-23 | 1979-12-18 | Nippon Electric Co., Ltd. | Predictive encoder with a non-linear quantizing characteristic |
WO1981000181A1 (fr) * | 1979-07-06 | 1981-01-22 | Indep Broadcasting Authority | Methode et appareil de reduction du debit de donnees |
US4491953A (en) * | 1982-09-09 | 1985-01-01 | At&T Bell Laboratories | Dual mode coding |
US4542411A (en) * | 1982-02-26 | 1985-09-17 | Mitsubishi Denki Kabushiki Kaisha | Redundancy reduction coding method of multi-tone picture signal and apparatus therefor |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE406407B (sv) * | 1975-11-25 | 1979-02-05 | Hell Rudolf Dr Ing Gmbh | Forfarande for digital loplengdkodning med redundansreduktion for overforande av binert kodade bildinformationer |
US4325085A (en) * | 1980-06-09 | 1982-04-13 | Digital Communications Corporation | Method and apparatus for adaptive facsimile compression using a two dimensional maximum likelihood predictor |
FR2554995B1 (fr) * | 1983-11-15 | 1989-05-05 | Thomson Cgr | Procede de compression d'une succession d'informations numeriques et dispositif mettant en oeuvre ce procede |
EP0149893B1 (fr) * | 1983-12-08 | 1990-05-16 | Crosfield Electronics Limited | Appareil pour coder et décoder des données |
US4688100A (en) * | 1984-10-08 | 1987-08-18 | Canon Kabushiki Kaisha | Video data encoding/decoding apparatus |
FR2600223B1 (fr) * | 1986-01-13 | 1988-08-19 | Thomson Cgr | Procede de formattage et de deformattage de donnees resultant du codage d'informations numeriques a l'aide d'un code a longueur variable, et dispositif de mise en oeuvre |
US4785356A (en) * | 1987-04-24 | 1988-11-15 | International Business Machines Corporation | Apparatus and method of attenuating distortion introduced by a predictive coding image compressor |
-
1985
- 1985-12-04 FR FR8517949A patent/FR2591050B1/fr not_active Expired - Fee Related
-
1986
- 1986-12-02 EP EP86906864A patent/EP0249607A1/fr not_active Withdrawn
- 1986-12-02 US US07/080,532 patent/US4916544A/en not_active Expired - Fee Related
- 1986-12-02 WO PCT/FR1986/000413 patent/WO1987003769A1/fr not_active Application Discontinuation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4179710A (en) * | 1976-02-23 | 1979-12-18 | Nippon Electric Co., Ltd. | Predictive encoder with a non-linear quantizing characteristic |
WO1981000181A1 (fr) * | 1979-07-06 | 1981-01-22 | Indep Broadcasting Authority | Methode et appareil de reduction du debit de donnees |
US4542411A (en) * | 1982-02-26 | 1985-09-17 | Mitsubishi Denki Kabushiki Kaisha | Redundancy reduction coding method of multi-tone picture signal and apparatus therefor |
US4491953A (en) * | 1982-09-09 | 1985-01-01 | At&T Bell Laboratories | Dual mode coding |
Non-Patent Citations (3)
Title |
---|
Funkschau, Volumen 45, No: 16, 3 August 1973, (Munich, DE); H. SCHONFELDER: "Nachrichten-reduktion fur Bildsignale", pages 591-593, see the whole document * |
IEEE Transactions on Communication Technology, Volumen COM-15, No: 2, April 1967, (New York, US); F.K. MANASSE: "Directional Correlation - A Technique to Reduce Bandwidth in PCM Television Transmissions", pages 204-208, see page 205, right column, line 9 - page 208, left column, line 12 * |
Proceedings of the IEEE, Volumen 124, No: 12, December 1977, (Stevenage, GB); V.G. DEVEREUX: "Differential Coding of Pal Video Signals using Intrafield Prediction", pages 1139-1147, see page 1139, right column, line 29 - page 1143, right column, line 18 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3908086C1 (en) * | 1988-06-09 | 1989-10-19 | Veb Transformatoren- Und Roentgenwerk "Hermann Matern", Ddr 8030 Dresden, Dd | Method for compressing and decompressing digital data and device for carrying out the method |
Also Published As
Publication number | Publication date |
---|---|
FR2591050A1 (fr) | 1987-06-05 |
US4916544A (en) | 1990-04-10 |
EP0249607A1 (fr) | 1987-12-23 |
FR2591050B1 (fr) | 1990-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0142439B1 (fr) | Procédé de compression d'une succession d'informations numériques, et dispositif mettant en oeuvre ce procédé | |
EP0022713B1 (fr) | Installation de codage et de décodage d'un signal visiophonique numérique | |
FR2599872A1 (fr) | Dispositifs de calcul de transformees cosinus mono-dimensionnelles, et dispositif de codage et dispositif de decodage d'images comportant de tels dispositifs de calcul | |
WO1987003769A1 (fr) | Procede et dispositif de compression par codage conditionnel d'images numeriques sans perte d'informations | |
FR2714554A1 (fr) | Procédé et dispositif de décodage et codage parallèles et de décompression de données. | |
FR2599201A1 (fr) | Dispositif de codage a modulation differentielle par impulsions codees, dispositif de decodage associe et systeme de transmission comportant au moins un tel dispositif de codage ou de decodage | |
FR2555842A1 (fr) | Procede et systeme pour transmettre des donnees divisees en premiere et seconde parties | |
CA1111547A (fr) | Installation de transmission de facsimile a reduction de redondance | |
EP0141721B1 (fr) | Dispositif de réception dans un système de transmission d'informations vidéos asynchrones | |
FR2486334A1 (fr) | Procede pour numeriser un signal video discret dans le temps avec utilisation d'une transformation d'image | |
EP0416985B1 (fr) | Procédé de multiplexage d'un signal sonore avec un signal vidéo analogique et système correspondant de distribution d'images fixes sonorisées | |
FR2546694A1 (fr) | Appareil de traitement d'images | |
EP0442548A1 (fr) | Dispositifs de codage et de décodage à longueur variable de signaux numériques | |
EP0342756B1 (fr) | Système d'émission et réception de télévision à haute définition à débit de données réduit | |
EP0412003B1 (fr) | Dispositif de transformation d'une information de mouvement en un signal de détection de mouvement à la fréquence trame et au nombre de lignes souhaitées pour un récepteur de télévision haute définition | |
EP0117161B1 (fr) | Procédé et dispositif de codage numérique d'une image, notamment de télévision | |
WO1989010042A1 (fr) | Procede de codage et de decodage d'informations, par blocs, et dispositifs de codage et de decodage, pour la mise en oeuvre de ce procede | |
FR2519221A1 (fr) | Dispositif destine a mettre sous forme numerique des images et procede associe | |
FR2539263A1 (fr) | Systeme pour traiter et transmettre un signal de television | |
FR2543763A1 (fr) | Appareil de compression de donnees et procede de codage et de decodage de signaux multilignes | |
FR2581280A1 (fr) | Procede et appareil de traitement d'un signal d'image | |
EP0054459A1 (fr) | Dispositif de traitement de signaux logarithmiques, application à un radar fonctionnant en diversité de fréquence, et radar comportant un tel dispositif | |
FR2503966A1 (fr) | Procede de transmission d'une image, a debit reduit; systeme de transmission pour la mise en oeuvre de ce procede | |
FR2625399A1 (fr) | Dispositif de regulation de debit conjointe a au moins deux composantes de signaux video numeriques | |
EP0233096A1 (fr) | 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 dispositif de mise en oeuvre |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): DE GB NL |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1986906864 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1986906864 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1986906864 Country of ref document: EP |