WO2006056247A1 - Digital data compression method - Google Patents

Digital data compression method Download PDF

Info

Publication number
WO2006056247A1
WO2006056247A1 PCT/EP2005/009125 EP2005009125W WO2006056247A1 WO 2006056247 A1 WO2006056247 A1 WO 2006056247A1 EP 2005009125 W EP2005009125 W EP 2005009125W WO 2006056247 A1 WO2006056247 A1 WO 2006056247A1
Authority
WO
WIPO (PCT)
Prior art keywords
vector
compressed
sequence
size
defining
Prior art date
Application number
PCT/EP2005/009125
Other languages
French (fr)
Inventor
Bertrand Danet
Original Assignee
Siemens Vdo Automotive
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 Siemens Vdo Automotive filed Critical Siemens Vdo Automotive
Publication of WO2006056247A1 publication Critical patent/WO2006056247A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method

Definitions

  • Numeric data compression / decompression algorithms such as Run Length Encoding (RLE), ZIP, Hufman or LZW (Lempel-Ziv-Welch) (registered trademarks), are widely distributed for consumer computing.
  • RLE Run Length Encoding
  • ZIP ZIP
  • Hufman Hufman
  • LZW Lempel-Ziv-Welch
  • the method comprises the steps of:
  • each vector has a field identifying its length, and at least two other fields whose combination of values identifies the type and the values of this vector.
  • the generation of the compressed data stream further comprises the insertion of control vectors followed by control sequences at appropriate places of the bit stream to be compressed, the control sequences defining the structure of the subsequent vectors, defining the respective size of the subsequent vector fields, defining threshold values of fields of the subsequent vectors, containing information on the compressed file or containing bits of verification of the integrity of the compressed file.
  • the vector identifying an uncompressed next sequence comprises a field defining the size of said next sequence.
  • the size of the field defining the size of the following sequence can be defined in a command sequence inserted into the compressed bit stream.
  • the return vector may comprise a field defining the size of the reference sequence and a field defining the position of the reference sequence.
  • the size of the field defining the size of the reference sequence and the size of the field defining the position of the reference sequence are automatically defined in a control sequence inserted in the compressed bitstream.
  • the position of the reference sequence is defined by the distance, in the file to be compressed, between the reference sequence and the repetition replaced by the vector.
  • the generation of the bitstream comprises the on-the-fly generation of the decompressed bitstream during the reading of the compressed bitstream.
  • the on-the-fly generation of the decompressed bit stream is performed by progressive storage of the decompressed bit stream in a non-volatile memory; when reading a reference vector to a reference sequence in the compressed bit stream, the reference sequence is recovered in the part of the bitstream already stored in the non-volatile memory and the bitstream is completed by copying the sequence reference number recovered.
  • the reference sequence is recovered in the part of the bitstream already stored in the non-volatile memory and the bitstream is completed by copying the sequence reference number recovered.
  • the compressed bit stream comprises a control vector followed by a control sequence
  • the generation of the uncompressed bitstream comprises the execution of the control sequence and the deletion of the control vector and the control sequence in the decompressed bitstream.
  • the compressed bit stream comprises a vector identifying an uncompressed binary sequence followed by the uncompressed binary sequence; the generation of the uncompressed bitstream comprises the deletion of this vector and the copying of the uncompressed binary sequence into the decompressed bitstream.
  • the invention also relates to a storage medium storing compressed software according to such a compression method.
  • the invention also relates to a storage medium storing a compression software capable of implementing such a compression method.
  • the invention also relates to a storage medium storing a decompression software capable of implementing such a decompression method.
  • FIG. 1 a simplified algorithm of a data compression method according to the invention
  • FIG. 2 a simplified algorithm of a data decompression method according to the invention
  • FIG. 3 a representation of an example of a generic vector
  • FIG. 4 the representation of an example of a direct data vector
  • FIG. 5 the representation of an exemplary copy vector
  • FIG. 6 the representation of an example of a control vector
  • FIG. 7 the representation of a portion of a bit stream to be compressed
  • FIG. 8 the representation of a portion of the compressed bitstream according to a variant of the invention.
  • the invention thus proposes to compress a bit stream in the following manner: reference sequences are determined in the bit stream which each have repetitions in the remainder of the bit stream. A compressed bit stream is then generated by replacing each repetition of the reference sequence with a vector returning to that reference sequence. The replacement of a repetition by a substantially smaller vector of return makes it possible to compress the bit stream.
  • Control vectors may also be inserted into the compressed bit stream. These control vectors precede commands whose examples will be given later. The commands are intended to be processed during decompression. In particular, a control vector is inserted at the beginning of the bit stream in order to define certain compression parameters or the name of the file for example.
  • the decompressed bit stream is generated as follows: the control sequences are executed, the reference sequences are copied each time a corresponding reference vector is read and the vectors are eliminated. Since the compressed bitstream returns directly to reference sequences of the bitstream being decompressed, the decompression does not imply the reading of an appendix.
  • Figure 1 illustrates an example of a compression algorithm that can be implemented.
  • a compressor recovers a bit stream to be compressed, for example in the form of a file.
  • the compressor reads the contents of the bitstream and lists reference sequences with repetitions. The compressor can thus detect the first occurrence of binary sequences and detect subsequent repetitions.
  • the compressor stores the location and size of the reference sequence and repetitions.
  • the compressor performs in a manner known per se statistical processing from the stored information.
  • the compressor determines the sequences for which compression is advantageous.
  • the compressor generates a compressed bit stream from the train to be compressed. For this, the compressor replaces the repetitions of sequences selected by a vector returning directly to their reference sequence.
  • the vector indicates in particular the size and the location of this reference sequence.
  • the compressor therefore does not have to include in the compressed train an appendix table defining the references to the reference sequences.
  • the compressor also places direct and control data vectors as needed.
  • the control vectors may contain information about the compressed file (e.g., the CRC, the file name) of the parameters defining the compression (e.g., vector sizes associated with different codes, pivot positions in the vectors, values threshold for vector fields, multipliers of values of vector fields, areas not to be programmed, etc.) or control information (indication of a start of file or subfile, indication of end of file or subfile, filename or subfile, CRC check bits, encryption key ).
  • the compression method makes it possible to obtain interesting compression ratios.
  • Software implementing such a method has in particular made it possible to obtain the following compression performances:
  • Figure 2 illustrates an example of an associated decompression algorithm.
  • the algorithm processes the compressed bit stream in parallel with its reception (there is potentially no storage or waiting of data in the bit stream).
  • the decompressor waits for the reception of a complete vector.
  • it decodes the vector type (command, direct, reference copy).
  • step 203 For a control vector that will, if necessary, retrieve parameters in the incoming data stream. This control vector is executed during step 204. After the vector processing, we go back to step 201.
  • step 213 for a direct data vector: from the data, the size of the direct area is decoded in the vector.
  • step 214 we recover in the data flow the direct data which are immediately copied into the memory to be filled. After the treatment of the vector, we go back to step 201.
  • step 223 the size and position of the reference is decoded from the data in the vector.
  • step 224 the reference area is copied by copying the data already written in the memory to be filled (generally a very fast process). After treatment of the vector, we go back to step 201.
  • the associated decompression method can be implemented with simple means essentially comprising shift registers and masks through the original vector structure.
  • the associated decompression method also makes it possible to use at least the random access memory of the decompression device (storing a table in random access memory is no longer essential).
  • This decompression process is particularly suitable for nonvolatile memories. Indeed, the copying vectors are used to directly copy data already stored in a reference sequence of the non-volatile memory. Access to nonvolatile memory data during copying does not overly slow down the decompression process.
  • FIG. 3 illustrates an example of a vector that can be used for the different types of vectors included in the compressed bitstream.
  • the vector has a first field 31 in which its length is identified. Different ways of identifying the length will be illustrated later.
  • the second field 32 is used to define a bit sequence size, a data location to be copied or the type of vector.
  • the decompressor 34 is used to define the separation between the field 32 and the field 33. Knowing the position of the pivot, the decompressor will itself delimit the fields 32 and 33.
  • FIG. 4 illustrates an exemplary structure of a direct data vector 4.
  • the field 41 comprises a combination of bits 01 indicating that the vector 4 occupies 16 bits.
  • the field 42 defines the size of the uncompressed sequence that follows the vector 4.
  • the field 43 comprises a zero value. Combining the fields 42 and 43 allows the decompressor to identify the vector 4 as a direct data vector. Indeed, the decompressor will identify a non-zero value in the field 42 and a zero value in the field 43, this combination designating in the example a vector of direct data.
  • FIG. 5 illustrates an exemplary structure of a copy vector 5.
  • the field 51 comprises a combination of bits 01 indicating that the vector 5 occupies 16 bits.
  • the field 52 defines the location of the data to be copied in the uncompressed bitstream.
  • Field 53 defines the size of the data to be copied to the indicated location.
  • FIG. 6 illustrates an exemplary structure of a control vector 6.
  • the field 61 comprises the value 00 which defines that the vector 6 occupies 8 bits.
  • the decompressor will identify the null values of the fields 62 and 63 and determine that the vector 6 is a control vector followed by a type and parameters of the command.
  • control vector does not indicate size for the following control sequence. It will then be possible to use a predetermined size of the command sequences according to their type.
  • FIG. 7 illustrates a portion of bit stream to be compressed having successively three D1 sequences, a D2 sequence and a D1 sequence.
  • the compressor identifies the redundancies and creates a compressed bitstream, a portion of which is illustrated in FIG. 8.
  • This bitstream comprises a first control vector VC1, followed by its command and its parameters C1.
  • the compressor places a direct data vector VD1 followed by the sequence D1 in the bit stream.
  • the compressor places a copy vector Vr1 * 2 indicating an offset of eight bits and the copying of 16 bits (the vector Vr1 * 2 thus allows the copying of the first two repetitions of D1).
  • the compressor then places a direct data vector VD2, the sequence D2, then a copy vector Vr1 * 1 indicating a shift of 16 bits and the copy of eight bits.
  • the compression algorithm used may use a number of known statistical methods to determine whether repetitions should be compressed or not.
  • the size required for the field 52 will be variable as a function of the difference between the reference sequence and its repetition. This size will be fixed for example by a pivot positioning control described later.
  • the coding of the size of the vectors can be done in the following manner. In the following simplified examples, it will be assumed that the vectors have a size of 8, 16, 32 or 64 bits. In the example of FIGS. 4 to 6, the size of the vector is coded on two bits in the fields 41, 51 and 61.
  • the combination 00 identifies a vector of size ⁇ bits, 01 a vector of 16 bits, 10 a 32-bit vector and 11 a 64-bit vector.
  • a second possibility is to detect the position of the first bit at 1 of the field
  • a bit at 1 in the first position identifies a vector of 8 bits, a bit at 1 in second position a vector of 16 bits, a bit at 1 in third position a vector of 32 bits and a bit at 1 in fourth position a 64-bit vector.
  • the field defining the size of the vector may thus have a variable length depending on the size of the vector.
  • a third possibility is to detect the position of the first bit at 0 in the field 31.
  • a bit at 0 in the first position identifies an 8-bit vector and so on.
  • assembly instructions can be used on most processors that do this type of detection. It can be predicted that the position of the pivot is predefined according to the size of the vectors. The position of the pivot can also be initialized and adapted dynamically as the bit stream, depending on the compression conditions encountered, with control vectors.
  • the compressor and the decompressor associate a different value to the value of the field 42 or 52.
  • the associated value will be for example the sum of the field value and a threshold value.
  • the threshold value is 1
  • the associated value will be equal to 12. Indeed, the minimum distance between the reference sequence and its repetition is never zero: this is not coded than distances greater than 1 with such a copying vector 5.
  • the size of a direct sequence is never zero: thus, only sequence sizes greater than 1 are encoded with such a direct data vector 4.
  • the value of the threshold thus defines respectively the minimum distance of the reference sequence and the minimum size of the direct sequence.
  • the values associated with the vector 4 will be from 1 to 16.
  • the vector 5 on 16 bits will provide a gain less than the vector 4 on 8 bits for values from 1 to 16. It is therefore possible to set the threshold of the vector 5 to 17, the values associated with the vector 5 will therefore be from 17 to 272.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention relates to a method for compressing a binary data stream comprising steps which consist in determining a reference sequence (DI) in a compressible data stream, wherein said sequence is several times repeatable in the data stream sequence, in generating a compressed data stream from the compressible data stream by replacing each reference sequence repeat by a vector (Vr1*2, Vr1*1) directly defining a return to said reference sequence. Said invention facilitates, in particular to catty out a decompression with the aid of processing low-capacity machines.

Description

Procédé de compression de données numériques Digital data compression method
Dans différents secteurs industriels (par exemple la fabrication de calculateurs moteur ou de téléphones portables), des données numériques sont classiquement transmises par une liaison série entre un serveur et une unité de programmation d'une mémoire non volatile sur une ligne de fabrication ou lors de phases de mise à jour (comme la reprogrammation en garage de calculateurs de véhicules automobiles). La transmission de ces données occupe une bande passante importante sur le réseau de transmission, de plus le temps de programmation de la mémoire est souvent inférieur au temps de transmission sur le réseau. Ce problème est d'autant plus présent que la taille des mémoires non volatiles et des données/programmes qui y sont mémorisées s'accroît considérablement.In different industrial sectors (for example the manufacture of engine computers or mobile phones), digital data is conventionally transmitted by a serial link between a server and a programming unit of a non-volatile memory on a production line or when update phases (such as reprogramming garage motor vehicle calculators). The transmission of these data occupies an important bandwidth on the transmission network, moreover the programming time of the memory is often lower than the transmission time on the network. This problem is all the more present as the size of the non-volatile memories and the data / programs stored therein increases considerably.
Des algorithmes de compression /décompression de données numériques, tels que RLE (Run Length Encoding), ZIP, Hufman or LZW (Lempel-Ziv-Welch) (marques déposées), sont largement diffusés pour l'informatique grand public.Numeric data compression / decompression algorithms, such as Run Length Encoding (RLE), ZIP, Hufman or LZW (Lempel-Ziv-Welch) (registered trademarks), are widely distributed for consumer computing.
Ces algorithmes nécessitent généralement beaucoup de mémoire vive pour gérer des données dans une table de correspondance, un dictionnaire ou un arbre binaire. Lors d'un processus de programmation, on doit souvent stocker dans une quantité limitée de mémoire vive des routines de dialogue, de tests, de programmation et de compression. Ce logiciel de décompression ne doit donc pas être trop volumineux (arbre binaire) et ne doit pas nécessiter une puissance de calcul trop importante (compression arithmétique). Si de tels logiciels présentent des taux de compression intéressants, ils sont cependant peu adaptés à être exécutés sur des machines présentant des capacités de traitement réduites et n'exploitant pas des spécificités liées à une famille de processeur.These algorithms usually require a lot of RAM to handle data in a lookup table, dictionary, or binary tree. During a programming process, dialogue, test, programming and compression routines often need to be stored in a limited amount of RAM. This decompression software must not be too large (binary tree) and must not require too much computing power (arithmetic compression). If such software have interesting compression rates, however, they are poorly suited to be run on machines with reduced processing capabilities and not exploiting specificities related to a family of processor.
Il existe donc un besoin pour un procédé de compression d'un train de données binaires, comprenant les étapes consistant à : -dans un train binaire à compresser, déterminer une séquence de référence, répétée plusieurs fois dans la suite du train binaire;There is therefore a need for a method of compressing a binary data stream, comprising the steps of: in a bit stream to be compressed, determining a reference sequence, repeated several times in the sequence of the bitstream;
-générer un train de données compressé à partir du train de données à compresser, en remplaçant chaque répétition de la séquence de référence par un vecteur définissant directement un renvoi à cette séquence de référence. Selon une variante, le procédé comprend les étapes consistant à :generating a compressed data stream from the data stream to be compressed, replacing each repetition of the reference sequence with a vector defining directly a reference to this reference sequence. According to one variant, the method comprises the steps of:
-déterminer des séquences binaires à ne pas compresser ;-determine binary sequences not to compress;
-générer le train de données compressé en insérant avant chaque séquence binaire à ne pas compresser un vecteur identifiant que la séquence suivante n'est pas compressée ; -générer le train de données compressé en insérant un vecteur identifiant une commande suivie d'une séquence de commande au début du train binaire à compresser. Selon encore une variante, chaque vecteur présente un champs identifiant sa longueur, et au moins deux autres champs dont la combinaison de valeurs identifie le type et les valeurs de ce vecteur.-generate the compressed data stream by inserting before each binary sequence not to compress a vector identifier that the following sequence is not compressed; generating the compressed data stream by inserting a vector identifying a command followed by a command sequence at the beginning of the bit stream to be compressed. According to another variant, each vector has a field identifying its length, and at least two other fields whose combination of values identifies the type and the values of this vector.
Selon une autre variante, la génération du train de données compressé comprend en outre l'insertion de vecteurs de commande suivis de séquences de commande en des endroits appropriés du train binaire à compresser, les séquences de commande définissant la structure des vecteurs ultérieurs, définissant la taille respective des champs des vecteurs ultérieurs, définissant des valeurs seuil de champs des vecteurs ultérieurs, contenant des informations sur le fichier compressé ou contenant des bits de vérification de l'intégrité du fichier compressé.According to another variant, the generation of the compressed data stream further comprises the insertion of control vectors followed by control sequences at appropriate places of the bit stream to be compressed, the control sequences defining the structure of the subsequent vectors, defining the respective size of the subsequent vector fields, defining threshold values of fields of the subsequent vectors, containing information on the compressed file or containing bits of verification of the integrity of the compressed file.
Selon encore une autre variante, le vecteur identifiant une séquence suivante non compressée comprend un champs définissant la taille de ladite séquence suivante.According to yet another variant, the vector identifying an uncompressed next sequence comprises a field defining the size of said next sequence.
La taille du champs définissant la taille de la séquence suivante peut être définie dans une séquence de commande insérée dans le train binaire compressé. Le vecteur de renvoi peut comprendre un champs définissant la taille de la séquence de référence et un champs définissant la position de la séquence de référence.The size of the field defining the size of the following sequence can be defined in a command sequence inserted into the compressed bit stream. The return vector may comprise a field defining the size of the reference sequence and a field defining the position of the reference sequence.
Selon une variante, la taille du champs définissant la taille de la séquence de référence et la taille du champs définissant la position de la séquence de référence sont définies automatiquement dans une séquence de commande insérée dans le train binaire compressé.According to one variant, the size of the field defining the size of the reference sequence and the size of the field defining the position of the reference sequence are automatically defined in a control sequence inserted in the compressed bitstream.
Selon encore une variante, la position de la séquence de référence est définie par la distance, dans le fichier à compresser, entre la séquence de référence et la répétition remplacée par le vecteur.According to another variant, the position of the reference sequence is defined by the distance, in the file to be compressed, between the reference sequence and the repetition replaced by the vector.
L'invention porte également sur un procédé de décompression d'un train binaire compressé, le train binaire compressé comprenant une séquence de référence et des vecteurs de renvoi à la séquence de référence remplaçant des répétitions de la séquence de référence, et le procédé comprenant une étape consistant à générer un train binaire décompressé en remplaçant les vecteurs de renvoi par la séquence de référence à laquelle ils renvoient. Selon une variante, la génération du train binaire comprend la génération à la volée du train binaire décompressé lors de la lecture du train binaire compressé.Also disclosed is a method of decompressing a compressed bit stream, the compressed bit stream comprising a reference sequence and reference vectors to the reference sequence replacing repetitions of the reference sequence, and the method comprising a step of generating an uncompressed bit stream by replacing the return vectors with the reference sequence to which they return. According to one variant, the generation of the bitstream comprises the on-the-fly generation of the decompressed bitstream during the reading of the compressed bitstream.
Selon encore une variante, la génération à la volée du train binaire décompressé est effectuée par mémorisation progressive du train binaire décompressé dans une mémoire non volatile ; lors de la lecture d'un vecteur de renvoi à une séquence de référence dans le train binaire compressé, la séquence de référence est récupérée dans la partie du train binaire déjà mémorisée dans la mémoire non volatile et le train binaire est complété en recopiant la séquence de référence récupérée. Selon une autre variante:According to another variant, the on-the-fly generation of the decompressed bit stream is performed by progressive storage of the decompressed bit stream in a non-volatile memory; when reading a reference vector to a reference sequence in the compressed bit stream, the reference sequence is recovered in the part of the bitstream already stored in the non-volatile memory and the bitstream is completed by copying the sequence reference number recovered. According to another variant:
-le train binaire compressé comprend un vecteur de commande suivi d'une séquence de commande ;the compressed bit stream comprises a control vector followed by a control sequence;
-la génération du train binaire décompressé comprend l'exécution de la séquence de commande et la suppression du vecteur de commande et de la séquence de commande dans le train binaire décompressé.the generation of the uncompressed bitstream comprises the execution of the control sequence and the deletion of the control vector and the control sequence in the decompressed bitstream.
Selon une variante:According to a variant:
-le train binaire compressé comprend un vecteur identifiant une séquence binaire non compressée suivi de la séquence binaire non compressée ; -la génération du train binaire décompressé comprend la suppression de ce vecteur et la recopie de la séquence binaire non compressée dans le train binaire décompressé.the compressed bit stream comprises a vector identifying an uncompressed binary sequence followed by the uncompressed binary sequence; the generation of the uncompressed bitstream comprises the deletion of this vector and the copying of the uncompressed binary sequence into the decompressed bitstream.
L'invention porte encore sur un support de stockage mémorisant un logiciel compressé selon un tel procédé de compression. L'invention porte en outre sur un support de stockage mémorisant un logiciel de compression susceptible de mettre en œuvre un tel procédé de compression.The invention also relates to a storage medium storing compressed software according to such a compression method. The invention also relates to a storage medium storing a compression software capable of implementing such a compression method.
L'invention porte par ailleurs sur un support de stockage mémorisant un logiciel de décompression susceptible de mettre en œuvre un tel procédé de décompression.The invention also relates to a storage medium storing a decompression software capable of implementing such a decompression method.
L'invention sera mieux comprise à la lecture de la description qui suit, accompagnée des dessins annexés qui représentent :The invention will be better understood on reading the description which follows, accompanied by the appended drawings which represent:
-Figure 1 , un algorithme simplifié d'un procédé de compression de données selon l'invention ;FIG. 1, a simplified algorithm of a data compression method according to the invention;
-Figure 2, un algorithme simplifié d'un procédé de décompression de données selon l'invention ; -Figure 3, une représentation d'un exemple de vecteur générique ;FIG. 2, a simplified algorithm of a data decompression method according to the invention; FIG. 3, a representation of an example of a generic vector;
-Figure 4, la représentation d'un exemple de vecteur de données directes ;FIG. 4, the representation of an example of a direct data vector;
-Figure 5, la représentation d'un exemple de vecteur de recopie ;FIG. 5, the representation of an exemplary copy vector;
-Figure 6, la représentation d'un exemple de vecteur de commande ;FIG. 6, the representation of an example of a control vector;
-Figure 7, la représentation d'une portion d'un train binaire à compresser ; -Figure 8, la représentation d'une portion du train binaire compressé selon une variante de l'invention.FIG. 7, the representation of a portion of a bit stream to be compressed; FIG. 8, the representation of a portion of the compressed bitstream according to a variant of the invention.
L'invention propose ainsi de compresser un train binaire de la manière suivante : on détermine dans le train binaire des séquences de référence qui présentent chacune des répétitions dans la suite du train binaire. On génère ensuite un train binaire compressé en remplaçant chaque répétition de la séquence de référence par un vecteur renvoyant à cette séquence de référence. Le remplacement d'une répétition par un vecteur de renvoi de taille sensiblement inférieure permet ainsi de compresser le train binaire.The invention thus proposes to compress a bit stream in the following manner: reference sequences are determined in the bit stream which each have repetitions in the remainder of the bit stream. A compressed bit stream is then generated by replacing each repetition of the reference sequence with a vector returning to that reference sequence. The replacement of a repetition by a substantially smaller vector of return makes it possible to compress the bit stream.
Selon une variante facilitant la décompression, d'autres types vecteurs sont utilisés : Avant de générer le train binaire compressé, on peut déterminer des séquences dont la compression par un vecteur de renvoi présente peu d'intérêt. C'est notamment le cas pour les séquences courtes ou ne présentant pas ou peu de répétitions dans les données déjà décompressées du train binaire. Lors de la génération du train binaire compressé, on insère un vecteur de données directes avant de telles séquences. Les séquences non compressées sont ainsi identifiées et les données transmises.According to a variant facilitating decompression, other vector types are used: Before generating the compressed bit stream, it is possible to determine sequences whose compression by a return vector is of little interest. This is particularly the case for short sequences or with no or little repetition in the data already decompressed bit stream. When generating the compressed bit stream, a direct data vector is inserted before such sequences. The uncompressed sequences are thus identified and the data transmitted.
Des vecteurs de commande peuvent également être insérés dans le train binaire compressé. Ces vecteurs de commande précèdent des commandes dont des exemples seront donnés par la suite. Les commandes sont destinées à être traitées durant la décompression. On insère notamment un vecteur de commande au début du train binaire afin de définir certains paramètres de compression ou le nom du fichier par exemple.Control vectors may also be inserted into the compressed bit stream. These control vectors precede commands whose examples will be given later. The commands are intended to be processed during decompression. In particular, a control vector is inserted at the beginning of the bit stream in order to define certain compression parameters or the name of the file for example.
Lors de la décompression, le train binaire décompressé est généré de la façon suivante : les séquences de commande sont exécutées, les séquences de référence sont recopiées à chaque lecture d'un vecteur de renvoi correspondant et les vecteurs sont éliminés. Le train binaire compressé renvoyant directement à des séquences de référence du train binaire en cours de décompression, la décompression n'implique pas la lecture d'une table annexe.During decompression, the decompressed bit stream is generated as follows: the control sequences are executed, the reference sequences are copied each time a corresponding reference vector is read and the vectors are eliminated. Since the compressed bitstream returns directly to reference sequences of the bitstream being decompressed, the decompression does not imply the reading of an appendix.
La figure 1 illustre un exemple d'algorithme de compression pouvant être mis en œuvre. Lors d'une étape 101 , un compresseur récupère un train binaire à compresser, se présentant par exemple sous la forme d'un fichier. Lors de l'étape 102, le compresseur lit le contenu du train binaire et répertorie des séquences de référence présentant des répétitions. Le compresseur peut ainsi détecter la première occurrence de séquences binaires et détecter les répétitions ultérieures. Le compresseur mémorise l'emplacement et la taille de la séquence de référence et des répétitions. A l'étape 103, le compresseur effectue de façon connue en soi un traitement statistique à partir des informations mémorisées. Le compresseur détermine alors les séquences pour lesquelles une compression s'avère avantageuse. A l'étape 104, le compresseur génère un train binaire compressé à partir du train à compresser. Pour cela, le compresseur remplace les répétitions de séquences sélectionnées par un vecteur renvoyant directement à leur séquence de référence. Le vecteur indique notamment la taille et l'emplacement de cette séquence de référence. Le compresseur n'a donc pas à inclure dans le train compressé une table annexe définissant les renvois aux séquences de référence. Le compresseur place également des vecteurs de données directes et de commande le cas échéant. Les vecteurs de commande peuvent contenir des informations sur le fichier compressé (par exemple le CRC, le nom de fichier) des paramètres définissant la compression (par exemple des tailles de vecteurs associés à différents codes, des positions de pivots dans les vecteurs, des valeurs seuil pour des champs des vecteurs, des multiplicateurs des valeurs des champs des vecteurs, des zones à ne pas programmer...) ou des informations de commande (indication d'un début de fichier ou de sous-fichier, indication de fin de fichier ou de sous-fichier, nom de fichier ou de sous- fichier, bits de vérification CRC, clé de codage...).Figure 1 illustrates an example of a compression algorithm that can be implemented. During a step 101, a compressor recovers a bit stream to be compressed, for example in the form of a file. In step 102, the compressor reads the contents of the bitstream and lists reference sequences with repetitions. The compressor can thus detect the first occurrence of binary sequences and detect subsequent repetitions. The compressor stores the location and size of the reference sequence and repetitions. In step 103, the compressor performs in a manner known per se statistical processing from the stored information. The compressor then determines the sequences for which compression is advantageous. In step 104, the compressor generates a compressed bit stream from the train to be compressed. For this, the compressor replaces the repetitions of sequences selected by a vector returning directly to their reference sequence. The vector indicates in particular the size and the location of this reference sequence. The compressor therefore does not have to include in the compressed train an appendix table defining the references to the reference sequences. The compressor also places direct and control data vectors as needed. The control vectors may contain information about the compressed file (e.g., the CRC, the file name) of the parameters defining the compression (e.g., vector sizes associated with different codes, pivot positions in the vectors, values threshold for vector fields, multipliers of values of vector fields, areas not to be programmed, etc.) or control information (indication of a start of file or subfile, indication of end of file or subfile, filename or subfile, CRC check bits, encryption key ...).
On notera que ce procédé de compression est conservatif, c'est à dire qu'il n'y a pas de perte de données entre le train binaire à compresser et le train binaire décompressé.It will be noted that this compression method is conservative, ie there is no loss of data between the bit stream to be compressed and the decompressed bit stream.
En outre, le procédé de compression permet d'obtenir des taux de compression intéressants. Un logiciel mettant en œuvre un tel procédé a notamment permis d'obtenir les performances de compression suivantes :In addition, the compression method makes it possible to obtain interesting compression ratios. Software implementing such a method has in particular made it possible to obtain the following compression performances:
Figure imgf000006_0001
Figure imgf000006_0001
La figure 2 illustre un exemple d'algorithme de décompression associé.Figure 2 illustrates an example of an associated decompression algorithm.
L'algorithme traite le train binaire compressé en parallèle à sa réception (il n'y a potentiellement pas de stockage ou d'attente de données dans le flux binaire). Lors de l'étape 201 , le décompresseur attend la réception d'un vecteur complet. Lors de l'étape 202, il décode le type de vecteur (commande, direct, copie de référence).The algorithm processes the compressed bit stream in parallel with its reception (there is potentially no storage or waiting of data in the bit stream). In step 201, the decompressor waits for the reception of a complete vector. In step 202, it decodes the vector type (command, direct, reference copy).
On passe à l'étape 203 pour un vecteur de commande qui va, si nécessaire, récupérer des paramètres dans le flux de données arrivant. Ce vecteur de commande est exécuté durant l'étape 204. Après le traitement du vecteur, on repasse à l'étape 201.We go to step 203 for a control vector that will, if necessary, retrieve parameters in the incoming data stream. This control vector is executed during step 204. After the vector processing, we go back to step 201.
On passe à l'étape 213 pour un vecteur de données directe : à partir des données, on décode dans le vecteur la taille de la zone directe. Dans l'étape 214, on récupère dans le flux de données les données directes qui sont immédiatement recopiées dans la mémoire à remplir. Après le traitement du vecteur, on repasse à l'étape 201.Go to step 213 for a direct data vector: from the data, the size of the direct area is decoded in the vector. In step 214, we recover in the data flow the direct data which are immediately copied into the memory to be filled. After the treatment of the vector, we go back to step 201.
On passe à l'étape 223 pour un vecteur de copie de référence : on décode à partir des données dans le vecteur la taille et la position de la référence. Dans l'étape 224, on copie la zone de référence en faisant une recopie des données déjà écrites dans la mémoire à remplir (processus généralement très rapide). Après traitement du vecteur, on repasse à l'étape 201.Go to step 223 for a reference copy vector: the size and position of the reference is decoded from the data in the vector. In step 224, the reference area is copied by copying the data already written in the memory to be filled (generally a very fast process). After treatment of the vector, we go back to step 201.
Le procédé de décompression associé peut être mis en œuvre avec des moyens simples comprenant essentiellement des registres à décalage et des masques grâce a la structure originale des vecteurs. Le procédé de décompression associé permet également d'utiliser au minimum la mémoire vive du dispositif de décompression (le stockage d'une table en mémoire vive n'est plus indispensable). Ce procédé de décompression est particulièrement adapté aux mémoires non volatiles. En effet, les vecteurs de recopie sont utilisés pour recopier directement des données déjà mémorisées dans une séquence de référence de la mémoire non volatile. L'accès à des données de la mémoire non volatile lors de la recopie ne ralentit pas excessivement le procédé de décompression.The associated decompression method can be implemented with simple means essentially comprising shift registers and masks through the original vector structure. The associated decompression method also makes it possible to use at least the random access memory of the decompression device (storing a table in random access memory is no longer essential). This decompression process is particularly suitable for nonvolatile memories. Indeed, the copying vectors are used to directly copy data already stored in a reference sequence of the non-volatile memory. Access to nonvolatile memory data during copying does not overly slow down the decompression process.
Bien que l'on puisse considérer que le temps de compression nécessaire est relativement long, il faut noter que le procédé de décompression associé nécessite une mémoire vive réduite, est très rapide et est utilisable avec des processeurs de capacités limitées.Although it may be considered that the necessary compression time is relatively long, it should be noted that the associated decompression method requires a reduced RAM, is very fast and can be used with processors of limited capacity.
La figure 3 illustre un exemple de vecteur utilisable pour les différents types de vecteurs inclus dans le train binaire compressé. Le vecteur présente un premier champs 31 dans lequel on identifie sa longueur. Différents modes d'identification de la longueur seront illustrés par la suite. Le second champ 32 est utilisé pour définir une dimension de séquence binaire, un emplacement de données à copier ou le type de vecteur. Le champFIG. 3 illustrates an example of a vector that can be used for the different types of vectors included in the compressed bitstream. The vector has a first field 31 in which its length is identified. Different ways of identifying the length will be illustrated later. The second field 32 is used to define a bit sequence size, a data location to be copied or the type of vector. Field
33 est utilisé pour définir la taille d'une séquence à copier ou le type de vecteur. Le pivot33 is used to define the size of a sequence to copy or the type of vector. The pivot
34 sert à définir la séparation entre le champs 32 et le champs 33. En connaissant la position du pivot, le décompresseur saura de lui-même délimiter les champs 32 et 33.34 is used to define the separation between the field 32 and the field 33. Knowing the position of the pivot, the decompressor will itself delimit the fields 32 and 33.
La figure 4 illustre un exemple de structure d'un vecteur de données directes 4. Le champ 41 comprend une combinaison de bits 01 indiquant que le vecteur 4 occupe 16 bits. Le champ 42 définit la taille de la séquence non compressée qui suit le vecteur 4. Le champs 43 comprend une valeur nulle. La combinaison des champs 42 et 43 permet au décompresseur d'identifier le vecteur 4 comme un vecteur de données directes. En effet, le décompresseur identifiera une valeur non nulle dans le champs 42 et une valeur nulle dans le champs 43, cette combinaison désignant dans l'exemple un vecteur de données directes. La figure 5 illustre un exemple de structure d'un vecteur de recopie 5. Le champ 51 comprend une combinaison de bits 01 indiquant que le vecteur 5 occupe 16 bits. Le champ 52 définit l'emplacement des données à recopier dans le train binaire décompressé. Le champ 53 définit la taille des données à recopier à l'emplacement indiqué.FIG. 4 illustrates an exemplary structure of a direct data vector 4. The field 41 comprises a combination of bits 01 indicating that the vector 4 occupies 16 bits. The field 42 defines the size of the uncompressed sequence that follows the vector 4. The field 43 comprises a zero value. Combining the fields 42 and 43 allows the decompressor to identify the vector 4 as a direct data vector. Indeed, the decompressor will identify a non-zero value in the field 42 and a zero value in the field 43, this combination designating in the example a vector of direct data. FIG. 5 illustrates an exemplary structure of a copy vector 5. The field 51 comprises a combination of bits 01 indicating that the vector 5 occupies 16 bits. The field 52 defines the location of the data to be copied in the uncompressed bitstream. Field 53 defines the size of the data to be copied to the indicated location.
La figure 6 illustre un exemple de structure d'un vecteur de commande 6. Le champ 61 comprend la valeur 00 qui définit que le vecteur 6 occupe 8 bits. Les champsFIG. 6 illustrates an exemplary structure of a control vector 6. The field 61 comprises the value 00 which defines that the vector 6 occupies 8 bits. The fields
62 et 63 prennent une valeur nulle. Le décompresseur identifiera les valeurs nulles des champs 62 et 63 et déterminera que le vecteur 6 est un vecteur de commande suivi d'un type et des paramètres de la commande.62 and 63 take a value of zero. The decompressor will identify the null values of the fields 62 and 63 and determine that the vector 6 is a control vector followed by a type and parameters of the command.
Dans l'exemple, le vecteur de commande n'indique pas de taille pour la séquence de commande qui suit. On pourra alors utiliser une taille prédéterminée des séquences de commandes en fonction de leur type.In the example, the control vector does not indicate size for the following control sequence. It will then be possible to use a predetermined size of the command sequences according to their type.
La figure 7 illustre une portion de train binaire à compresser présentant successivement trois séquences D1 , une séquence D2 et une séquence D1. Le compresseur identifie les redondances et crée un train binaire compressé dont une portion est illustrée à la figure 8. Ce train binaire comprend un premier vecteur de commande VC1 , suivi de sa commande et de ses paramètres C1. Pour la séquence de référence de la séquence D1 , le compresseur place ensuite un vecteur de données directes VD1 suivi de la séquence D1 dans le train binaire. Le compresseur place ensuite un vecteur de recopie Vr1 *2 indiquant un décalage de huit bits et la recopie de 16 bits (le vecteur Vr1*2 permet ainsi la recopie des deux premières répétitions de D1). Le compresseur place ensuite un vecteur de données directes VD2, la séquence D2, puis un vecteur de recopie Vr1*1 indiquant un décalage de 16 bits et la recopie de huit bits. L'algorithme de compression utilisé peut utiliser un certain nombre de méthodes statistiques connues pour déterminer si des répétitions doivent être compressées ou non.FIG. 7 illustrates a portion of bit stream to be compressed having successively three D1 sequences, a D2 sequence and a D1 sequence. The compressor identifies the redundancies and creates a compressed bitstream, a portion of which is illustrated in FIG. 8. This bitstream comprises a first control vector VC1, followed by its command and its parameters C1. For the reference sequence of the sequence D1, the compressor then places a direct data vector VD1 followed by the sequence D1 in the bit stream. The compressor then places a copy vector Vr1 * 2 indicating an offset of eight bits and the copying of 16 bits (the vector Vr1 * 2 thus allows the copying of the first two repetitions of D1). The compressor then places a direct data vector VD2, the sequence D2, then a copy vector Vr1 * 1 indicating a shift of 16 bits and the copy of eight bits. The compression algorithm used may use a number of known statistical methods to determine whether repetitions should be compressed or not.
On peut notamment prévoir de comparer la taille d'une séquence répétée à la taille du vecteur de recopie envisagé pour déterminer si cette séquence doit être remplacée par ce vecteur de recopie. On peut ainsi noter que la taille nécessaire au champ 52 sera variable en fonction du décalage entre la séquence de référence et sa répétition. Cette taille sera par exemple fixée par une commande de positionnement de pivot décrite ultérieurement.In particular, it is possible to compare the size of a repeated sequence with the size of the copying vector considered in order to determine whether this sequence should be replaced by this copying vector. It can thus be noted that the size required for the field 52 will be variable as a function of the difference between the reference sequence and its repetition. This size will be fixed for example by a pivot positioning control described later.
Le codage de la taille des vecteurs peut être effectué de la manière suivante. Dans les exemples simplifiés qui suivent, on admettra que les vecteurs présentent une dimension de 8, 16, 32 ou 64 bits. Dans l'exemple des figures 4 à 6, la taille du vecteur est codée sur deux bits dans les champs 41 , 51 et 61. La combinaison 00 identifie un vecteur d'une taille de δbits, 01 un vecteur de 16 bits, 10 un vecteur de 32 bits et 11 un vecteur de 64 bits. Une seconde possibilité consiste à détecter la position du premier bit à 1 du champThe coding of the size of the vectors can be done in the following manner. In the following simplified examples, it will be assumed that the vectors have a size of 8, 16, 32 or 64 bits. In the example of FIGS. 4 to 6, the size of the vector is coded on two bits in the fields 41, 51 and 61. The combination 00 identifies a vector of size δbits, 01 a vector of 16 bits, 10 a 32-bit vector and 11 a 64-bit vector. A second possibility is to detect the position of the first bit at 1 of the field
31. Ainsi, un bit à 1 en première position identifie un vecteur de 8bits, un bit à 1 en seconde position un vecteur de 16 bits, un bit à 1 en troisième position un vecteur de 32 bits et un bit à 1 en quatrième position un vecteur de 64 bits. Le champ définissant la taille du vecteur peut ainsi présenter une longueur variable en fonction de la taille du vecteur.31. Thus, a bit at 1 in the first position identifies a vector of 8 bits, a bit at 1 in second position a vector of 16 bits, a bit at 1 in third position a vector of 32 bits and a bit at 1 in fourth position a 64-bit vector. The field defining the size of the vector may thus have a variable length depending on the size of the vector.
Une troisième possibilité consiste à détecter la position du premier bit à 0 dans le champs 31. Un bit à 0 en première position identifie un vecteur de 8 bits et ainsi de suite.A third possibility is to detect the position of the first bit at 0 in the field 31. A bit at 0 in the first position identifies an 8-bit vector and so on.
Pour détecter la position du premier bit à 0 ou 1 , on peut utiliser des instructions assembleurs présentes sur la plupart des processeurs qui font ce type de détection. On peut prévoir que la position du pivot soit prédéfinie en fonction de la taille des vecteurs. La position du pivot peut aussi être initialisée et adaptée dynamiquement au fur et à mesure du train binaire, en fonction des conditions de compression rencontrées, avec des vecteurs de commande.To detect the position of the first bit at 0 or 1, assembly instructions can be used on most processors that do this type of detection. It can be predicted that the position of the pivot is predefined according to the size of the vectors. The position of the pivot can also be initialized and adapted dynamically as the bit stream, depending on the compression conditions encountered, with control vectors.
Plusieurs perfectionnements permettent de coder un maximum d'informations avec des vecteurs ayant des tailles aussi réduites que possible.Several improvements make it possible to encode as much information as possible with vectors having as small a size as possible.
Ainsi, on peut prévoir que le compresseur et le décompresseur associent une valeur différente à la valeur du champ 42 ou 52. La valeur associée sera par exemple la somme de la valeur du champ et d'une valeur seuil. Ainsi, si la valeur du champ 42 ou 52 est 11 et si la valeur seuil vaut 1 , la valeur associée vaudra 12. En effet, la distance minimale entre la séquence de référence et sa répétition n'est jamais nulle : on ne code ainsi que des distances supérieures à 1 avec un tel vecteur de recopie 5.Thus, it can be provided that the compressor and the decompressor associate a different value to the value of the field 42 or 52. The associated value will be for example the sum of the field value and a threshold value. Thus, if the value of the field 42 or 52 is 11 and if the threshold value is 1, the associated value will be equal to 12. Indeed, the minimum distance between the reference sequence and its repetition is never zero: this is not coded than distances greater than 1 with such a copying vector 5.
De façon analogue, la taille d'une séquence directe n'est jamais nulle : on ne code ainsi que des tailles de séquence supérieures à 1 avec un tel vecteur de données directes 4.Similarly, the size of a direct sequence is never zero: thus, only sequence sizes greater than 1 are encoded with such a direct data vector 4.
La valeur du seuil définit ainsi respectivement la distance minimum de la séquence de référence et la taille minimum de la séquence directe.The value of the threshold thus defines respectively the minimum distance of the reference sequence and the minimum size of the direct sequence.
De façon similaire, on pourra associer des valeurs de seuil distinctes en fonction de la taille des vecteurs. Ci-dessous un exemple pratique : On dispose de vecteurs 4 et 5 respectivement de 8 bits et 16 bits, dont les champsSimilarly, it will be possible to associate distinct threshold values as a function of the size of the vectors. Here is a practical example: We have vectors 4 and 5 respectively of 8 bits and 16 bits, whose fields
42 et 52 comportent 4 et 8 bits. Avec une valeur de seuil de 1 , les valeurs associées au vecteur 4 iront de 1 à 16.42 and 52 have 4 and 8 bits. With a threshold value of 1, the values associated with the vector 4 will be from 1 to 16.
Le vecteur 5 sur 16bits fournira un gain moindre que le vecteur 4 sur 8 bits pour des valeur de 1 a 16. On peut donc fixer le seuil du vecteur 5 à 17 , les valeurs associées au vecteur 5 iront donc de 17 à 272. The vector 5 on 16 bits will provide a gain less than the vector 4 on 8 bits for values from 1 to 16. It is therefore possible to set the threshold of the vector 5 to 17, the values associated with the vector 5 will therefore be from 17 to 272.

Claims

REVENDICATIONS
1. Procédé de compression d'un train de données binaires comprenant les étapes consistant à : dans un train binaire à compresser, déterminer (102) une séquence de référence, répétée plusieurs fois dans la suite du train binaire; - générer un train de données compressé (104) à partir du train de données à compresser, en remplaçant chaque répétition de la séquence de référence par un vecteur définissant directement un renvoi à cette séquence de référence et identifiant une commande suivie d'une séquence de commande, caractérisé en ce que chaque vecteur présente un champs identifiant sa longueur (41 , 51 , 61), et au moins deux autres champs dont la combinaison de valeurs identifie le type et les valeurs de ce vecteur.A method of compressing a binary data stream comprising the steps of: in a bit stream to be compressed, determining (102) a reference sequence, repeated several times in the remainder of the bit stream; generating a compressed data stream (104) from the data stream to be compressed, replacing each repetition of the reference sequence with a vector directly defining a reference to this reference sequence and identifying a command followed by a sequence of command, characterized in that each vector has a field identifying its length (41, 51, 61), and at least two other fields whose combination of values identifies the type and values of this vector.
2. Procédé de compression selon la revendication 1 , caractérisé en ce que la génération du train de données compressé comprend en outre l'insertion de vecteurs de commande suivis de séquences de commande en des endroits appropriés du train binaire à compresser, les séquences de commande définissant la structure des vecteurs ultérieurs, définissant la taille respective des champs des vecteurs ultérieurs, définissant des valeurs seuil de champs des vecteurs ultérieurs, contenant des informations sur le fichier compressé ou contenant des bits de vérification de l'intégrité du fichier compressé.2. A compression method according to claim 1, characterized in that the generation of the compressed data stream further comprises the insertion of control vectors followed by control sequences at appropriate locations of the bit stream to be compressed, the control sequences defining the structure of the subsequent vectors, defining the respective size of the fields of the subsequent vectors, defining threshold values of fields of the subsequent vectors, containing information on the compressed file or containing bits of verification of the integrity of the compressed file.
3. Procédé de compression selon l'une des revendications précédentes, caractérisé en ce que le vecteur identifiant une séquence suivante non compressée comprend un champs (42) définissant la taille de ladite séquence suivante.3. A compression method according to one of the preceding claims, characterized in that the vector identifying an uncompressed next sequence comprises a field (42) defining the size of said next sequence.
4. Procédé de compression selon les revendications 1 et 3, caractérisé en ce que la taille du champs définissant la taille de la séquence suivante est définie dans une séquence de commande insérée dans le train binaire compressé. 4. A compression method according to claims 1 and 3, characterized in that the size of the field defining the size of the next sequence is defined in a control sequence inserted into the compressed bit stream.
5. Procédé de compression selon l'une quelconque des revendications précédentes, caractérisé en ce que le vecteur de renvoi comprend un champs (53) définissant la taille de la séquence de référence et un champs (52) définissant la position de la séquence de référence.5. A compression method according to any one of the preceding claims, characterized in that the return vector comprises a field (53) defining the size of the reference sequence and a field (52) defining the position of the reference sequence. .
6. Procédé de compression selon les revendications 1 et 5, caractérisé en ce que la taille du champs définissant la taille de la séquence de référence et la taille du champs définissant la position de la séquence de référence sont définies automatiquement dans une séquence de commande insérée dans le train binaire compressé.6. A compression method according to claims 1 and 5, characterized in that the size of the field defining the size of the reference sequence and the size of the field defining the position of the reference sequence are automatically defined in an inserted control sequence. in the compressed bit stream.
7. Procédé de compression selon la revendication 5 ou 6, caractérisé en ce que la position de la séquence de référence est définie par la distance, dans le fichier à compresser, entre la séquence de référence et la répétition remplacée par le vecteur. 7. A method of compression according to claim 5 or 6, characterized in that the position of the reference sequence is defined by the distance, in the file to be compressed, between the reference sequence and the repetition replaced by the vector.
8. Support de stockage mémorisant un logiciel compressé selon le procédé de l'une quelconque des revendications 1 à 7.8. Storage medium storing compressed software according to the method of any one of claims 1 to 7.
9. Support de stockage mémorisant un logiciel de compression susceptible de mettre en œuvre le procédé selon l'une quelconque des revendications 1 à 7. 9. Storage medium storing a compression software capable of implementing the method according to any one of claims 1 to 7.
PCT/EP2005/009125 2004-11-26 2005-08-24 Digital data compression method WO2006056247A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0412549A FR2878668B1 (en) 2004-11-26 2004-11-26 METHOD FOR COMPRESSING DIGITAL DATA
FR0412549 2004-11-26

Publications (1)

Publication Number Publication Date
WO2006056247A1 true WO2006056247A1 (en) 2006-06-01

Family

ID=34951002

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/009125 WO2006056247A1 (en) 2004-11-26 2005-08-24 Digital data compression method

Country Status (2)

Country Link
FR (1) FR2878668B1 (en)
WO (1) WO2006056247A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2450327C1 (en) * 2011-04-25 2012-05-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ" (ФГБОУ ВПО "ВятГУ") Homogeneous computing environment cell and homogeneous computing environment cell based binary vector compression device
WO2016004629A1 (en) * 2014-07-11 2016-01-14 华为技术有限公司 Expected data compressibility calculation method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608396A (en) * 1995-02-28 1997-03-04 International Business Machines Corporation Efficient Ziv-Lempel LZI data compression system using variable code fields
US5841953A (en) * 1994-08-01 1998-11-24 Thomson Consumer Electronics, Inc. Method for compressing and decompressing data files
EP0992900A2 (en) * 1998-10-09 2000-04-12 Nokia Mobile Phones Ltd. Method for installing two or more operating systems/user interfaces into an electronic device, and an electronic device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841953A (en) * 1994-08-01 1998-11-24 Thomson Consumer Electronics, Inc. Method for compressing and decompressing data files
US5608396A (en) * 1995-02-28 1997-03-04 International Business Machines Corporation Efficient Ziv-Lempel LZI data compression system using variable code fields
EP0992900A2 (en) * 1998-10-09 2000-04-12 Nokia Mobile Phones Ltd. Method for installing two or more operating systems/user interfaces into an electronic device, and an electronic device

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FENWICK P M ED - STORER J A ET AL: "Ziv-Lempel encoding with multi-bit flags", DATA COMPRESSION CONFERENCE, 1993. DCC '93. SNOWBIRD, UT, USA 30 MARCH-2 APRIL 1993, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 30 March 1993 (1993-03-30), pages 138 - 147, XP010031838, ISBN: 0-8186-3392-1 *
GUTMANN P C ET AL: "A HYBRID APPROACH TO TEXT COMPRESSION", DATA COMPRESSION CONFERENCE, PROCEEDINGS. DCC, IEEE COMPUTER SOCIETY PRESS, LOS ALAMITOS, CA, US, 1994, pages 225 - 233, XP000568801 *
SALOMON D: "DATA COMPRESSION: THE COMPLETE REFERENCE", DATA COMPRESSION : THE COMPLETE REFERENCE, NEW YORK, NY : SPRINGER, US, 1998, pages 101 - 162,357, XP002150106, ISBN: 0-387-98280-9 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2450327C1 (en) * 2011-04-25 2012-05-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ" (ФГБОУ ВПО "ВятГУ") Homogeneous computing environment cell and homogeneous computing environment cell based binary vector compression device
WO2016004629A1 (en) * 2014-07-11 2016-01-14 华为技术有限公司 Expected data compressibility calculation method and device
US9722631B2 (en) 2014-07-11 2017-08-01 Huawei Technologies Co., Ltd. Method and apparatus for calculating estimated data compression ratio

Also Published As

Publication number Publication date
FR2878668A1 (en) 2006-06-02
FR2878668B1 (en) 2007-07-13

Similar Documents

Publication Publication Date Title
EP1779522B1 (en) System and method for static huffman decoding
US10033405B2 (en) Data compression systems and method
US7817069B2 (en) Alternative encoding for LZSS output
US7254250B2 (en) Watermark embedding and extraction method and apparatus in compressed streams
EP2130173B1 (en) Modifying a coded bitstream
FR2891075A1 (en) Memory circuit for Aho-Corasick type character recognition automaton, has memory addresses defining consecutive node strings accessible during transitions, and another sets of memory addresses defining multiple nodes pointing several states
EP0820151B1 (en) Method and device for compression and decompression of messages
EP1891545B1 (en) Compressing language models with golomb coding
WO2002063776A2 (en) Method for compressing/decompressing a structured document
EP1999684A1 (en) Processing biometric data un a multidimensional repository
EP1039645A1 (en) Method and apparatus for data compression
CN112215908A (en) Compressed domain-oriented video content comparison system, optimization method and comparison method
WO2006056247A1 (en) Digital data compression method
WO2004015590A2 (en) Robust detection of a reference image during major photometric transformations
CN116192154B (en) Data compression and data decompression method and device, electronic equipment and chip
KR960024895A (en) Data decompression methods, data compression methods, and methods to reduce the amount of memory
US8537038B1 (en) Efficient compression method for sorted data representations
US7386148B2 (en) Method and system for end of run watermarking
EP1525663B1 (en) Digital data compression robust relative to transmission noise
WO2017129880A1 (en) Method for encoding and decoding data, device for encoding and decoding data, and corresponding computer programs
EP1984891A2 (en) Digital file marked by a series of marks the concatenation of which forms a message and method for extracting a mark from such a digital file
WO2010001020A2 (en) Improved coding/decoding by bit planes
US20060075240A1 (en) Lossless data embedding
EP1004206A1 (en) Graphic scene animation signal, corresponding method and device
US20090212981A1 (en) Bidirectional context model for adaptive compression

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05779331

Country of ref document: EP

Kind code of ref document: A1