EP0249607A1 - Method and device for compressing digital images by conditional coding without information loss - Google Patents

Method and device for compressing digital images by conditional coding without information loss

Info

Publication number
EP0249607A1
EP0249607A1 EP86906864A EP86906864A EP0249607A1 EP 0249607 A1 EP0249607 A1 EP 0249607A1 EP 86906864 A EP86906864 A EP 86906864A EP 86906864 A EP86906864 A EP 86906864A EP 0249607 A1 EP0249607 A1 EP 0249607A1
Authority
EP
European Patent Office
Prior art keywords
memory
pixel
coding
values
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP86906864A
Other languages
German (de)
French (fr)
Inventor
Jean Lienard
Claude Benchimol
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
General Electric CGR SA
Original Assignee
Thomson CGR
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson CGR filed Critical Thomson CGR
Publication of EP0249607A1 publication Critical patent/EP0249607A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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.To compress the values of the pixels of a digitized image, the values of the neighboring pixels (Y, Z) of the processed pixel (X) are stored (2), and as a function of their respective values (6, 7), a code number resulting in the encoding according to a compound code or the encoding of the pixel itself, with a prefix (12). Successive codes are formatted and concatenated to be stored (16 to 22). Application: medical imaging.

Description

PROCEDE ET DISPOSITIF DE COMPRESSION PAR CODAGE CODING COMPRESSION METHOD AND DEVICE
CONDITIONNEL D'IMAGES NUMERIQUESCONDITIONAL OF DIGITAL IMAGES
SANS PERTE D'INFORMATIONSWITHOUT LOSS OF INFORMATION
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.The present invention relates to a method and a device for compression by conditional coding of digital images without loss of information.
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.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.
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.However, in certain uses, such as for example obtaining digitized angiography images, the storage of which must be done while occupying the least possible memory and at video rate, the compression rates obtained by the above-mentioned process of French patents are not sufficient.
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.On the other hand, we know from the article by H. GHARAVI "Conditional Variable-length Coding for Gray-level Pictures" published in the BSTJ, vol. 63, No. 2 of February 1984, a compression process by conditional coding, but this process starts from an image whose digitization (on three binary elements) induces distortion on the original image.
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.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.
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.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.
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.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.
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é.To allow the memorization of the codes of the successive pixels of an analyzed image, 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.
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 :The present invention will be better understood on reading the detailed description of an embodiment, taken as a non-limiting example and illustrated by the appended drawing in which:
- la figure 1 est un bloc diagramme d'un codeur conforme à l'invention, et- Figure 1 is a block diagram of an encoder conforming to the invention, and
- la figure 2 est un bloc diagramme d'un décodeur conforme à l'invention.- Figure 2 is a block diagram of a decoder according to the 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.The invention is explained below with reference to the compression of digital data corresponding to angiography images, but it is understood that it is not limited to such an application, and can be used in all cases where data must be compressed using digital coding with variable code length. Measurements carried out on different digitized angiography images have shown that it is necessary to take into account, when coding each pixel of such an image, a maximum possible of intra or inter-image neighboring pixels of each coded pixel of the image. to increase the compression rate of the coding performed. Thus, if we code a pixel X taking into account only the previous pixel Y (differential coding), we obtain a compression ratio (ratio of the number of binary elements resulting from the digitization of a pixel to the number of elements binary after coding) of about 2 if we do not tolerate distortion. If we take into account both the pixel Y preceding the one that we code and the pixel Z of the same rank of the previous analysis line (conditional coding), we can obtain a compression ratio of approximately 4, this of course thanks to the fact that the images in question are not "white noise" images (that is to say images in which the values of the successive pixels are random), but images of which the successive pixels exhibit a strong correlation.
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.If we digitize an angiography image with a resolution of eight binary elements for example (256 levels of values), the conditional coding of the pixels taking into account the two neighboring pixels requires, if we do not want to lose information , a coding memory with a capacity of 2 8 . 2 8 = 2 16 possible code values, each of them having to code 256 eventualities of pixel X value.
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.Under these conditions, the conventional use of 65,536 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.
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 :To avoid the use of such a memory for coded values, 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. Several groupings have been tested on a large number of real angiography images, and it has been found that the following partition in 61 classes constitutes the best compromise between the efficiency of the compression and the ease of realization:
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 - In the table above, giving according to the respective values of (YZ) and Y a code number on six binary elements (values from 0 to 63), the code numbers 1, 2 and 3 do not exist since the pixel values Y and Z can only be positive or zero. For the code numbers 0, 5, 6 and 7, there are 4 Huffman codings applying to the value of the current pixel X, and for each of the other code numbers (4 and 8 to 63), an adapted Huffman coding applies to the difference 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.Of course, 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.
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.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. We call X the value of the current pixel (the one being coded), Y the value of the previous pixel, and Z the value of the one having the same rank as pixel X in the previous line. Of course, 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.
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.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.
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.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. In the present case, 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. Finally, on a third output 15 from memory 12, there is information P indicating, on a binary element, whether information C is a variable length code or a prefix.
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.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). If this length L1 is less than 16, 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. At the second incident value of X, the register 16 is loaded with the corresponding information of length L2, and the controller 20 causes the clock 21 to transmit L2 pulses. If 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. Of course, if 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.
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.In the case where L2 is greater than (16-L1), the (L2- (16-L1)) last binary elements of the second information remain in the first cells of the register 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.Then, 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 .
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.This process of concatenating information continues until the end of the analysis of the image or images to be stored, the last information being advantageously followed by a number of additional clock signals sufficient to transfer it from the register 17 to memory 19. These additional clock signals fill the register 17, on the side of its serial input, with a succession of binary elements, for example a series of "0" resulting from the forcing at "0" of the cells of the register 16. These additional clock signals can be produced by a device, not shown, and which is obvious to a person skilled in the art: this can for example be a device validated just after the analysis of the last pixel and comprising a decoder decoding the state E of the counter. 22 and sending (16-E) clock pulses in place of clock 21 or forcing it to send them. 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. As will be seen, the decoder circuit described below takes up all the constituent elements of the circuit of FIG. 1, but with certain connection differences. Thus, 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. However, in order not to unnecessarily complicate the description and the drawing, these two circuits are described here separately.
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.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. In the present case, 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.
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.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.
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.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.
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 : 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. To obtain, from the memory 19, on the terminal 35 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. At the first loading of 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. The value appearing at the output 27 of the decoder 26 is sent to the multiplexer on the one hand directly (without its sign), and on the other hand via the adders 33 and 34, and at the output of this last we have, when the value presented at the output of 27 is X - the value:
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.X. = X, the multiplexer 32 being switched to the output of 34 (since at the coding of the same pixel this same value X - had been registered). In the case where the value X is directly at output 27, the multiplexer is switched to this output (this same value having been recorded during coding). Thus, the same successive values of the pixels X are found on the output 35 as those which were sent on the input l of the coder.
La valeur apparaissant à la sortie 28 de la mémoire décodeurThe value appearing at output 28 of the decoder memory
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. 26 is sent to the controller 29 to indicate to the latter the length, over 4 binary elements, of the code recognized in the first 8 binary elements of the register 26.

Claims

R E V E N D I C A T I O N S
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.1. A method of compressing digital images according to which a conditional coding is carried out for each pixel of the digitized image by assigning to each current pixel a code of variable length taking into account its value and the values of at least two neighboring pixels, characterized in that conditional coding is carried out without loss of information by grouping the different codes into a smaller number of coding classes all having substantially the same probability of occurrence.
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.2. Method according to claim 1, characterized in that according to the coding class one codes either the current value of the pixel or the difference between this pixel and a combination of neighboring pixels.
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.3. Method according to claim 2, characterized in that the neighboring pixels belong to the same image as the current pixel.
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.4. Method according to claim 2, characterized in that the neighboring pixels belong to an image other than that of the current pixel.
5. Procédé selon l'une quelconque des revendications 2 à 4, caractérisé par le fait que la combinaison est la moyenne des valeurs des pixels voisins 5. Method according to any one of claims 2 to 4, characterized in that the combination is the average of the values of the neighboring pixels
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. 6. Method according to one of the preceding claims, characterized in that one regroups under the same prefix several values of unlikely codes that are distinguished by a prefix.
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. 7. Method according to one of the preceding claims, characterized in that the value of the current pixel is directly coded when the compressed code that would obtain it in its class is too long, this coding of the current pixel consisting in preceding its prefix value.
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).8. Compression device by conditional coding of digital images without loss of information, characterized in that it comprises a shift memory (2) comprising at least two outputs (3, 4) on which there are, for each incident pixel value (X) the values of the neighboring pixels (Y, Z), these outputs being each connected to a memory (6, 7) providing a code number, these two memories being connected to a memory of compressed codes (12) whose output is connected to a formatting and concatenation device of codes (16 to 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. 9. Device according to claim 8, characterized in that the code number memories (6, 7) are also connected to the control input of a multiplexer (8) via another memory (11), the one of the inputs of the multiplexer receiving the incident pixel values (1), and the other a value (X function of the diff between the incident pixel values and the neighboring pixel values, the output of this multiplexer also being connected to the compressed code memory.
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.10. Device according to one of claims 8 or 9, characterized in that the formatting device comprises two registers in series (16, 17), the parallel input of the first being connected to the memory of compressed codes, and the parallel output of the second to a mass memory (19), these clock signal inputs of these two registers being connected to a clock (21) controlled by a controller (20) connected to an output of the code memory.
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). 11. Device according to one of claims 8 to 10, characterized in that the same elements as those used for coding are used for decoding the information stored in the mass memory, with modified connections (Figure 2).
EP86906864A 1985-12-04 1986-12-02 Method and device for compressing digital images by conditional coding without information loss Withdrawn EP0249607A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR8517949 1985-12-04
FR8517949A FR2591050B1 (en) 1985-12-04 1985-12-04 METHOD AND DEVICE FOR CONDITIONALLY ENCODING COMPRESSION OF DIGITAL IMAGES WITHOUT LOSS OF INFORMATION

Publications (1)

Publication Number Publication Date
EP0249607A1 true EP0249607A1 (en) 1987-12-23

Family

ID=9325440

Family Applications (1)

Application Number Title Priority Date Filing Date
EP86906864A Withdrawn EP0249607A1 (en) 1985-12-04 1986-12-02 Method and device for compressing digital images by conditional coding without information loss

Country Status (4)

Country Link
US (1) US4916544A (en)
EP (1) EP0249607A1 (en)
FR (1) FR2591050B1 (en)
WO (1) WO1987003769A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DD272954A1 (en) * 1988-06-09 1989-10-25 Transform Roentgen Matern Veb METHOD AND DEVICE FOR COMPRESSION AND DECOMPRESSION OF DIGITAL DATA
US5351087A (en) * 1990-06-01 1994-09-27 Thomson Consumer Electronics, Inc. Two stage interpolation system
US5374963A (en) * 1990-06-01 1994-12-20 Thomson Consumer Electronics, Inc. Picture resolution enhancement with dithering and dedithering
FR2705223A1 (en) * 1993-05-13 1994-11-25 Ge Medical Syst Sa Method for acquiring images of a body by rotational placement
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
US6792151B1 (en) 1999-11-24 2004-09-14 General Electric Company Image data compression employing optimal subregion compression
US7050639B1 (en) 1999-11-24 2006-05-23 General Electric Company Image data compression employing multiple compression code tables
US6912317B1 (en) 1999-11-24 2005-06-28 General Electric Company Medical image data compression employing image descriptive information for optimal 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

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE406407B (en) * 1975-11-25 1979-02-05 Hell Rudolf Dr Ing Gmbh PROCEDURE FOR DIGITAL RUN LENGTH CODING WITH REDUNDANCE REDUCTION FOR TRANSFER OF BINERT CODED IMAGE INFORMATION
US4179710A (en) * 1976-02-23 1979-12-18 Nippon Electric Co., Ltd. Predictive encoder with a non-linear quantizing characteristic
WO1981000181A1 (en) * 1979-07-06 1981-01-22 Indep Broadcasting Authority Method and apparatus for data-rate reduction
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
JPS58148565A (en) * 1982-02-26 1983-09-03 Mitsubishi Electric Corp Encoding method of multi-gradation picture signal
US4491953A (en) * 1982-09-09 1985-01-01 At&T Bell Laboratories Dual mode coding
FR2554995B1 (en) * 1983-11-15 1989-05-05 Thomson Cgr METHOD FOR COMPRESSING A SUCCESSION OF DIGITAL INFORMATION AND DEVICE USING THE SAME
EP0149893B1 (en) * 1983-12-08 1990-05-16 Crosfield Electronics Limited Apparatus for coding and decoding data
US4688100A (en) * 1984-10-08 1987-08-18 Canon Kabushiki Kaisha Video data encoding/decoding apparatus
FR2600223B1 (en) * 1986-01-13 1988-08-19 Thomson Cgr METHOD OF FORMATTING AND DEFORMATTING DATA RESULTING FROM CODING OF DIGITAL INFORMATION USING A VARIABLE LENGTH CODE, AND IMPLEMENTING DEVICE
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO8703769A1 *

Also Published As

Publication number Publication date
FR2591050A1 (en) 1987-06-05
FR2591050B1 (en) 1990-07-20
US4916544A (en) 1990-04-10
WO1987003769A1 (en) 1987-06-18

Similar Documents

Publication Publication Date Title
EP0142439B1 (en) Method of compressing a train of digital information, and apparatus therefor
EP0022713B1 (en) Device for coding and decoding a digital videophone signal
EP0248729A1 (en) Monodimensional cosine transform calculators and image coding and decoding devices using such calculators
EP0249607A1 (en) Method and device for compressing digital images by conditional coding without information loss
FR2714554A1 (en) Method and device for parallel decoding and coding and data decompression
FR2599201A1 (en) CODED PULSE DIFFERENTIAL MODULATION ENCODING DEVICE, ASSOCIATED DECODING DEVICE, AND TRANSMISSION SYSTEM COMPRISING AT LEAST ONE SUCH ENCODING OR DECODING DEVICE
FR2555842A1 (en) METHOD AND SYSTEM FOR TRANSMITTING DIVIDED DATA IN FIRST AND SECOND PARTS
FR2546694A1 (en) APPARATUS FOR PROCESSING IMAGES
FR2486334A1 (en) METHOD FOR SCANNING A DISCRETE VIDEO SIGNAL IN TIME WITH USE OF IMAGE TRANSFORMATION
EP0206847A1 (en) Cosine transform calculating devices, picture coding and decoding device comprising such calculating devices
EP0416985B1 (en) Method of multiplexing a sound signal with an analogue video signal and corresponding distribution system for still images with sound
EP0342756B1 (en) High definition emitting and receiving television system with a reduced data rate
EP0141721A2 (en) Receiving device in a transmission system for asynchronous video information
FR2702914A1 (en) Device for coding series of images consisting of film-type images and of video-type images, and corresponding decoding device
EP0412003B1 (en) Device for transforming a movement information into a movement detection signal with desired number of lines and field frequency for a high definition television receiver
FR2489640A1 (en) REDUCTION OF INFORMATION PROCESSING EQUIPMENT FOR A DIGITAL VIDEO SYSTEM INVOLVING UNDER SAMPLING AND ADOPTIVE RECONSTITUTION
WO1989010042A1 (en) Method for coding and decoding information, by frames, and coding and decoding devices for implementing such method
FR2519221A1 (en) DEVICE FOR DIGITIZING IMAGES AND ASSOCIATED METHOD
EP0117161A1 (en) Method and device for the digital coding of a picture, in particular a television picture
FR2543763A1 (en) DATA COMPRESSION APPARATUS AND METHOD FOR ENCODING AND DECODING MULTILINK SIGNALS
FR2581280A1 (en) METHOD AND APPARATUS FOR PROCESSING AN IMAGE SIGNAL
EP0063990B1 (en) Method for image transmission with reduced data rate; transmission system for executing this method
EP0322058B1 (en) Arrangement for regulating the transmission speed of at least two components of digital video signals
EP0690623B1 (en) Method of and device for inserting asynchronous data into a digital signal
EP0233096A1 (en) Process for formatisation and deformatisation of data resulting from the coding of numerical information using a variable-length code, and arrangement for carrying out this process

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19870627

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE GB NL

17Q First examination report despatched

Effective date: 19900622

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 19901103

RIN1 Information on inventor provided before grant (corrected)

Inventor name: BENCHIMOL, CLAUDE

Inventor name: LIENARD, JEAN