[go: up one dir, main page]

FR2878668A1 - METHOD FOR COMPRESSING DIGITAL DATA - Google Patents

METHOD FOR COMPRESSING DIGITAL DATA Download PDF

Info

Publication number
FR2878668A1
FR2878668A1 FR0412549A FR0412549A FR2878668A1 FR 2878668 A1 FR2878668 A1 FR 2878668A1 FR 0412549 A FR0412549 A FR 0412549A FR 0412549 A FR0412549 A FR 0412549A FR 2878668 A1 FR2878668 A1 FR 2878668A1
Authority
FR
France
Prior art keywords
compressed
vector
sequence
bit stream
reference sequence
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.)
Granted
Application number
FR0412549A
Other languages
French (fr)
Other versions
FR2878668B1 (en
Inventor
Bertrand Danet
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.)
Continental Automotive France SAS
Original Assignee
Siemens VDO Automotive SAS
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 SAS filed Critical Siemens VDO Automotive SAS
Priority to FR0412549A priority Critical patent/FR2878668B1/en
Priority to PCT/EP2005/009125 priority patent/WO2006056247A1/en
Publication of FR2878668A1 publication Critical patent/FR2878668A1/en
Application granted granted Critical
Publication of FR2878668B1 publication Critical patent/FR2878668B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Landscapes

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

Abstract

L'invention porte sur un procédé de compression d'un train de données binaires. Ce procédé comprend les étapes consistant à :- dans un train binaire à compresser, déterminer une séquence de référence (D1), répétée plusieurs fois dans la suite du train binaire;-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 (Vr1*2, Vr1*1) définissant directement un renvoi à cette séquence de référence.L'invention facilite notamment la décompression avec des machines de traitement ayant des capacités réduites.A method of compressing a binary data stream is disclosed. This method comprises the steps of: - in a binary train to be compressed, determining a reference sequence (D1), repeated several times in the rest of the binary train; - generating a compressed data train from the data train to be compressed , by replacing each repetition of the reference sequence by a vector (Vr1 * 2, Vr1 * 1) directly defining a reference to this reference sequence. The invention in particular facilitates decompression with processing machines having reduced capacities.

Description

Dans différents secteurs industriels (par exemple la fabrication deIn different industrial sectors (eg manufacturing of

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  engine computers or mobile telephones), 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 during update phases.

(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.  (like the reprogramming in garage of calculators of motor vehicles). 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).  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).

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.  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; -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.  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; 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.

Selon une variante, le procédé comprend les étapes consistant à : déterminer des séquences binaires à ne pas compresser; - 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.  According to a variant, the method comprises the steps of: determining binary sequences not to be compressed; generating the compressed data stream by inserting before each binary sequence not to compress a vector identifying 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.

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.  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é.  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.

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 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.  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.

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é.  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.  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.

Selon une autre variante: -le train binaire compressé comprend un vecteur de commande suivi d'une séquence de commande; -la génération du train binaire décompressé comprend l'exécution de la séquence 5 de commande et la suppression du vecteur de commande et de la séquence de commande dans le train binaire décompressé.  According to another variant: the compressed bit stream comprises a control vector followed by a control sequence; the generation of the decompressed bit stream comprises the execution of the control sequence and the deletion of the control vector and the control sequence in the decompressed bit stream.

Selon une variante: -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é.  According to a variant: 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.  The invention also relates to a storage medium storing compressed software according to such a compression method.

L'invention porte en outre sur un support de stockage mémorisant un logiciel de compression susceptible de mettre en oeuvre un tel procédé de compression.  The invention further 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 oeuvre 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: -Figure 1, un algorithme simplifié d'un procédé de compression de données selon l'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; -Figure 4, la représentation d'un exemple de vecteur de données directes; -Figure 5, la représentation d'un exemple de vecteur de recopie; -Figure 6, la représentation d'un exemple de vecteur de commande; -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.  The invention will be better understood on reading the description which follows, accompanied by the appended drawings which represent: 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.

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.  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.

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 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 oeuvre. 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.  FIG. 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.

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 sousfichier, indication de fin de fichier ou de sous-fichier, nom de fichier ou de sous-fichier, bits de vérification CRC, clé de codage...).  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 vector field values, areas not to be programmed, etc.) or control information (indication of a start of file or subfile, indication of end of file or of subfile, filename or subfile, CRC check bits, coding key ...).

On notera que ce procédé de compression est conservatif, c'est à dire qu'il n'y a 10 pas de perte de données entre le train binaire à compresser et le train binaire décompressé.  It should be noted that this compression method is conservative, ie there is no data loss 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 oeuvre un tel procédé a notamment permis d'obtenir les performances de compression suivantes: Type de fichier Taille d'origine Taille après Gain en compression % Applications contrôle moteur Power PC externe avec 1048576 241749 77 zone vide Power PC externe 442587 235525 49 sans zone vide Power PC interne sans 298910 148716 50 zone vide Hitachi interne zone 524288 325214 38 vide La figure 2 illustre un exemple d'algorithme de décompression associé. 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).  In addition, the compression method makes it possible to obtain interesting compression ratios. Software implementing such a method has notably achieved the following compression performance: File type Original size Size after Compressive gain% Applications Motor control Power external PC with 1048576 241749 77 empty zone Power PC external 442587 235525 49 blank zone Power internal PC without 298910 148716 50 empty zone Hitachi internal zone 524288 325214 38 blank Figure 2 shows 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). 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, the direct data that is immediately copied back into the memory to be completed is recovered in the data stream. 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 oeuvre 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 by virtue of the original structure of the vectors. 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 champ 33 est utilisé pour définir la taille d'une séquence à copier ou le type de vecteur. Le 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.  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. Field 33 is used to define the size of a sequence to copy or the type of vector. The pivot 34 serves 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.  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.

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. 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 champs 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.  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. Fields 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 Dl, une séquence D2 et une séquence Dl. 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 Cl. Pour la séquence de référence de la séquence Dl, le compresseur place ensuite un vecteur de données directes VD1 suivi de la séquence Dl 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 Dl). Le compresseur place ensuite un vecteur de données directes VD2, la séquence D2, puis un vecteur de recopie Vrl*1 indiquant un décalage de 16 bits et la recopie de huit bits.  FIG. 7 illustrates a bit stream portion 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 sequence of reference 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 copy 16 bits (the vector Vr1 * 2 thus allows the copy of the first two repetitions of D1). The compressor then places a direct data vector VD2, the sequence D2, then a copy vector Vrl * 1 indicating a shift of 16 bits and the copy of eight 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. 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.  The compression algorithm used may use a number of known statistical methods to determine whether repetitions should be compressed or not. 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.  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.

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 8bits, 01 un vecteur de 16 bits, 10 un vecteur de 32 bits et 11 un vecteur de 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 with a size of 8 bits, a vector of 16 bits, 10 a 32-bit vector and 11 a 64-bit vector.

Une seconde possibilité consiste à détecter la position du premier bit à 1 du champ 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.  A second possibility consists in detecting the position of the first bit at 1 of the field 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 vector of 64 bits. 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.  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.

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.  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 15 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.  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 the threshold value is 1, the associated value will be 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.  Indeed, the minimum distance between the reference sequence and its repetition is never zero: thus, only distances greater than 1 are encoded 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 25 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 champs 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.  Similarly, it will be possible to associate distinct threshold values as a function of the size of the vectors. Here is a practical example: There are vectors 4 and 5 respectively of 8 bits and 16 bits, whose fields 42 and 52 comprise 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 35 au vecteur 5 iront donc de 17 à 272.  The vector 5 on 16 bits will provide a lower gain 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 (17)

REVENDICATIONS 1. Procédé de compression d'un train de données binaires, caractérisé en ce qu'il comprend 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.  A method of compressing a binary data stream, characterized in that it comprises the steps of: in a binary train to be compressed, determining (102) a reference sequence, repeated several times in the rest of the train binary; generating a compressed data stream (104) 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. 2. Procédé de compression selon la revendication 1, caractérisé en ce que le procédé comprend les étapes consistant à : -déterminer des séquences binaires à ne pas compresser (103) ; -générer le train de données compressé en insérant avant chaque séquence binaire à ne pas compresser un vecteur (4) 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 (6) identifiant une commande suivie d'une séquence de commande au début du train binaire à compresser.  The method of compression as claimed in claim 1, characterized in that the method comprises the steps of: - determining binary sequences not to be compressed (103); generating the compressed data stream by inserting before each binary sequence not to compress a vector (4) identifying that the following sequence is not compressed; generating the compressed data stream by inserting a vector (6) identifying a command followed by a command sequence at the beginning of the bit stream to be compressed. 3. Procédé de compression selon la revendication 2, 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.  3. A compression method according to claim 2, 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. . 4. Procédé de compression selon la revendication 2 ou 3, 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é.  4. A compression method according to claim 2 or 3, 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 sequences control system defining the structure of the subsequent vectors, defining the respective size of the fields of the subsequent vectors, defining field threshold values of the subsequent vectors, containing information on the compressed file or containing verification bits of the integrity of the compressed file. 5. Procédé de compression selon l'une quelconque des revendications 2 à 4, 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.  5. A method of compression according to any one of claims 2 to 4, characterized in that the vector identifying an uncompressed next sequence comprises a field (42) defining the size of said next sequence. 6. Procédé de compression selon les revendications 3 et 5, 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é.  6. A compression method according to claims 3 and 5, 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. 7. 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.  7. 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. . 8. Procédé de compression selon les revendications 3 et 7, 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é.  The compression method according to claims 3 and 7, 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. 9. Procédé de compression selon la revendication 7 ou 8, 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.  9. A compression method according to claim 7 or 8, 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. 10. Procédé de décompression d'un train binaire compressé, caractérisé en ce que le train binaire compressé comprend une séquence de référence et des vecteurs de renvoi direct à la séquence de référence remplaçant des répétitions de la séquence de référence, et en ce que le procédé comprend 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.  A method of decompressing a compressed bit stream, characterized in that the compressed bit stream comprises a reference sequence and direct reference vectors to the reference sequence replacing repetitions of the reference sequence, and in that the method comprises generating a decompressed bit stream by replacing the return vectors with the reference sequence to which they refer. 11. Procédé de décompression selon la revendication 10, caractérisé en ce que 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é.  11. decompression method according to claim 10, characterized in that the generation of the bitstream comprises the on-the-fly generation of the decompressed bitstream during the reading of the compressed bitstream. 12. Procédé de décompression selon la revendication Il, caractérisé en ce que: -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.  12. decompression method according to claim 11, characterized in that -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 recovered reference sequence. 13. Procédé de décompression selon l'une quelconque des revendications 10 à 12, caractérisé en ce que: - le train binaire compressé comprend un vecteur de commande suivi d'une séquence de commande; - 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é.  13. decompression method according to any one of claims 10 to 12, characterized in that: - the compressed bit stream comprises a control vector followed by a control sequence; the generation of the decompressed bit stream comprises the execution of the control sequence and the deletion of the control vector and the control sequence in the decompressed bit stream. 14. Procédé de décompression selon l'une quelconque des revendications 10 à 13, caractérisé en ce que: -le train binaire compressé comprend un vecteur (VD1) identifiant une séquence binaire non compressée suivi de la séquence binaire non compressée (Dl) ; -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é.  14. decompression method according to any one of claims 10 to 13, characterized in that: the compressed bit stream comprises a vector (VD1) identifying an uncompressed binary sequence followed by the uncompressed binary sequence (D1); the generation of the uncompressed bitstream comprises the deletion of this vector and the copying of the uncompressed binary sequence into the decompressed bitstream. 15. Support de stockage mémorisant un logiciel compressé selon le procédé de l'une 5 quelconque des revendications 1 à 9.  15. A storage medium storing compressed software according to the method of any one of claims 1 to 9. 16. Support de stockage mémorisant un logiciel de compression susceptible de mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 9.  16. Storage medium storing a compression software capable of implementing the method according to any one of claims 1 to 9. 17. Support de stockage mémorisant un logiciel de décompression susceptible de mettre en oeuvre le procédé selon l'une quelconque des revendications 10 à 14.  17. Storage medium storing a decompression software capable of implementing the method according to any one of claims 10 to 14.
FR0412549A 2004-11-26 2004-11-26 METHOD FOR COMPRESSING DIGITAL DATA Expired - Fee Related FR2878668B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0412549A FR2878668B1 (en) 2004-11-26 2004-11-26 METHOD FOR COMPRESSING DIGITAL DATA
PCT/EP2005/009125 WO2006056247A1 (en) 2004-11-26 2005-08-24 Digital data compression method

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
FR2878668A1 true FR2878668A1 (en) 2006-06-02
FR2878668B1 FR2878668B1 (en) 2007-07-13

Family

ID=34951002

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (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
CN106170760B (en) * 2014-07-11 2019-11-05 华为技术有限公司 A kind of method and device for the expection compression ratio calculating data

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 *

Also Published As

Publication number Publication date
WO2006056247A1 (en) 2006-06-01
FR2878668B1 (en) 2007-07-13

Similar Documents

Publication Publication Date Title
US8717203B2 (en) Data compression systems and methods
US7817069B2 (en) Alternative encoding for LZSS output
US7254250B2 (en) Watermark embedding and extraction method and apparatus in compressed streams
CN100461219C (en) Image-comparing apparatus, image-comparing method, image-retrieving apparatus and image-retrieving method
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
EP3314534B1 (en) Method and device for searching images
FR2933793A1 (en) METHODS OF ENCODING AND DECODING, BY REFERENCING, VALUES IN A STRUCTURED DOCUMENT, AND ASSOCIATED SYSTEMS.
EP1779522A1 (en) System and method for static huffman decoding
CN116192154B (en) Data compression and data decompression method and device, electronic equipment and chip
FR2878668A1 (en) METHOD FOR COMPRESSING DIGITAL DATA
FR2825224A1 (en) METHOD AND DEVICE FOR COMPRESSING AND / OR INDEXING DIGITAL IMAGES
WO2017129880A1 (en) Method for encoding and decoding data, device for encoding and decoding data, and corresponding computer programs
EP3491825B1 (en) Method for decoding an image, and associated coding method, devices, terminal unit and computer programs
FR2826804A1 (en) Data compression and/or decompression involves control code for literal sequences of maximum length, second control code for reverse reference pointer to sequence to be compressed
FR2897487A1 (en) DIGITAL FILE MARKED BY A SUITE OF TRADEMARKS WHOSE CONCATENATION IS FORMING A MESSAGE AND METHOD OF EXTRACTING A BRAND OF SUCH A DIGITAL FILE MARK
JP6280266B2 (en) Decoding device and decoding method
CN119989303A (en) Data steganography method and device based on longest matching position code of sliding window
FR3141583A1 (en) Method for managing the download by a reading terminal of digital content accessible in several formats
JP2014116835A (en) Decoding device, encoding device, decoding method and encoding method
WO2011064493A1 (en) Encoding method and device with error correction suitable for transaction marking
FR2848703A1 (en) Digital image watermarking procedure replaces pixels with message index and symbol related coefficient selected with psycho visual constraints
FR2813414A1 (en) QUICK SEARCH METHOD FOR PATTERNS CONTAINING CLASSES OF CHARACTERS AND JUMPS OF TERMINAL LENGTHS
FR2846836A1 (en) Data e.g. video coding method, involves estimating number of coefficients that are to be coded according to criterion of coding and performing approximation of coefficients taken on estimation number and in order of calculation
FR2968862A1 (en) Method for encoding n-ary value for coding of e.g. video stream, in e.g. video coder, involves associating ordered set of possible n-ary values with code word of set of code words according to predetermined rule
FR2601833A1 (en) Method of decoding a binary signal encoded by a code with variable-length stretches

Legal Events

Date Code Title Description
CD Change of name or company name
PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15

ST Notification of lapse

Effective date: 20200910