FR2766033A1 - Compressed data coding-decoding method - Google Patents

Compressed data coding-decoding method Download PDF

Info

Publication number
FR2766033A1
FR2766033A1 FR9708647A FR9708647A FR2766033A1 FR 2766033 A1 FR2766033 A1 FR 2766033A1 FR 9708647 A FR9708647 A FR 9708647A FR 9708647 A FR9708647 A FR 9708647A FR 2766033 A1 FR2766033 A1 FR 2766033A1
Authority
FR
France
Prior art keywords
coded
blocks
block
subsets
transformation
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.)
Pending
Application number
FR9708647A
Other languages
French (fr)
Inventor
Isabelle Amonou
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to FR9708647A priority Critical patent/FR2766033A1/en
Priority to EP98401708A priority patent/EP0891100A1/en
Priority to JP10208625A priority patent/JP2000196460A/en
Publication of FR2766033A1 publication Critical patent/FR2766033A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/99Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals involving fractal coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

The coding-decoding method operates on a set of data representing physical quantities, the set being comprised of sub-sets fn. For each sub-set it is divided into blocks of data to be coded, a reference set is divided into source blocks and then, for each block of data to be coded, a predetermined number of source blocks in the reference sub-set are selected. The method then determines a transformation between the source blocks selected and the block to be coded.

Description

La présente invention concerne, d'une manière générale, un procédé et un dispositif pour le codage de données, ainsi qu'un procédé et un dispositif de décodage de données. Le codage et décodage de données visent en particulier à compresser et décompresser des ensembles de données. The present invention relates, in general, to a method and a device for encoding data, as well as to a method and a device for decoding data. The coding and decoding of data aims in particular at compressing and decompressing sets of data.

Un ensemble de données compressé peut être mémorisé en occupant une place mémoire réduite par rapport à l'ensemble initial non compressé, ou peut être transmis plus rapidement, ou avec un débit plus faible, que l'ensemble initial non compressé. A compressed data set can be memorized by occupying a reduced memory space compared to the initial uncompressed set, or can be transmitted more quickly, or with a lower bit rate, than the initial uncompressed set.

Ces données sont a priori quelconques et représentent des grandeurs physiques. Dans des applications privilégiées, on considère des ensembles de données qui sont des séquences ou suites d'images, du son ou d'autres signaux mono ou multidimensionnels. Dans la suite, I'on considérera plus particulièrement le codage et décodage de séquences d'images, puisque les images sont connues d'une part pour occuper une grande place mémoire et d'autre part pour nécessiter un débit élevé, ou un temps de transmission important, lorsque l'on souhaite les transmettre. These data are a priori arbitrary and represent physical quantities. In preferred applications, we consider data sets which are sequences or sequences of images, sound or other mono or multidimensional signals. In the following, we will consider more particularly the coding and decoding of image sequences, since the images are known on the one hand to occupy a large memory space and on the other hand to require a high bit rate, or a time of important transmission, when one wishes to transmit them.

De nombreux procédés de codage de séquences d'image existent actuellement. Un premier type de procédé est le codage dit MPEG (Motion
Picture Expert Group) qui consiste globalement à coder des images par rapport à une ou plusieurs autres images sélectionnées dans la séquence, dites images de référence, et périodiquement une image par rapport à elle-même.
Many methods of coding image sequences currently exist. A first type of process is coding known as MPEG (Motion
Picture Expert Group) which generally consists of coding images in relation to one or more other images selected in the sequence, called reference images, and periodically an image in relation to itself.

Une image codée par rapport à elle-même, dite image "intra", est divisée en blocs, qui sont codés par transformation discrète en cosinus (DCT). An image coded with respect to itself, known as an "intra" image, is divided into blocks, which are coded by discrete cosine transformation (DCT).

Ces images sont nécessaires pour le rafraîchissement et permettent un accès aléatoire dans la séquence; cependant, le taux de compression de ces images est faible.These images are necessary for refreshing and allow random access in the sequence; however, the compression rate of these images is low.

Une image codée par rapport à une ou plusieurs autres images est également divisée en blocs. Chaque bloc est codé par un mécanisme d'estimation et de compensation de mouvement par rapport à un bloc qu'il faut rechercher dans les images de référence, puis l'erreur est codée par transformation discrète en cosinus. La recherche du "meilleur" bloc pour coder le bloc courant est en général effectuée dans une fenêtre de l'image de référence, pour réduire le temps de recherche qui, sinon, pourrait être trop long. Cependant, ce type de codage reste peu rapide. An image coded with respect to one or more other images is also divided into blocks. Each block is coded by an estimation and motion compensation mechanism with respect to a block which must be sought in the reference images, then the error is coded by discrete transformation into cosine. The search for the "best" block for coding the current block is generally carried out in a window of the reference image, to reduce the search time which could otherwise be too long. However, this type of coding remains sluggish.

En outre, ce type de codage ne convient pas pour des débits faibles, de l'ordre de quelques dizaines de kilobits, mais est limité à des débits généralement supérieurs à 1,5 Mégabits par seconde. In addition, this type of coding is not suitable for low bit rates, of the order of a few tens of kilobits, but is limited to bit rates generally greater than 1.5 megabits per second.

Un second type de codage de séquence d'image consiste à coder une image courante de la séquence par rapport à l'image précédente. L'image courante est divisée en blocs. Pour chaque bloc à coder, il est recherché un unique bloc dans un dictionnaire constitué des blocs de l'image précédente, ayant subi des transformations telles que rotation, ou symétrie. Une transformation linéaire est alors calculée entre le bloc courant et le bloc de référence. A second type of image sequence coding consists in coding a current image of the sequence with respect to the previous image. The current image is divided into blocks. For each block to be coded, a single block is sought in a dictionary consisting of the blocks of the previous image, having undergone transformations such as rotation, or symmetry. A linear transformation is then calculated between the current block and the reference block.

Ces deux types de procédé de codage ont comme point commun de rechercher, pour chaque bloc à coder, un bloc de référence dans un ensemble de blocs, ce qui est relativement long. These two types of coding method have in common the search for, for each block to be coded, a reference block in a set of blocks, which is relatively long.

En outre, le second type de codage implique un décodage par itération de chaque bloc codé, ce qui nécessite là encore un temps relativement long. In addition, the second type of coding involves decoding by iteration of each coded block, which again requires a relatively long time.

La présente invention vise à remédier aux inconvénients de la technique antérieure, en fournissant un procédé et un dispositif de codage de données, ainsi que les procédé et dispositif de décodage correspondants, présentant un taux de compression de données élevé, tout en étant rapides au codage et au décodage. The present invention aims to remedy the drawbacks of the prior art, by providing a method and a device for coding data, as well as the corresponding method and device for decoding, having a high data compression rate, while being fast at coding. and decoding.

L'invention se situe dans le domaine du codage et décodage avec pertes des séquences d'images numériques par blocs. The invention relates to the field of lossy coding and decoding of block digital image sequences.

L'invention se fonde sur le principe de coder chaque image de la séquence en fonction d'au moins une image de référence. The invention is based on the principle of coding each image of the sequence as a function of at least one reference image.

L'invention propose un procédé de codage d'un ensemble de données représentatives de grandeurs physiques, ledit ensemble étant composé de sous-ensembles,
caractérisé en ce qu'il comporte pour chacun des sous-ensembles, les étapes de:
- division du sous-ensemble en blocs de données à coder,
- division d'au moins un sous-ensemble de référence en blocs source,
puis, pour chacun des blocs de données à coder, les étapes de:
- sélection d'un nombre prédéterminé de blocs source dans ledit au moins un sous-ensemble de référence,
- détermination d'une transformation entre les blocs source sélectionnés et le bloc à coder.
The invention provides a method of coding a set of data representative of physical quantities, said set being composed of subsets,
characterized in that it comprises, for each of the subsets, the steps of:
- division of the subset into data blocks to be coded,
- division of at least one reference subset into source blocks,
then, for each of the data blocks to be coded, the steps of:
selection of a predetermined number of source blocks in said at least one reference subset,
- determination of a transformation between the selected source blocks and the block to be coded.

Corrélativement, I'invention propose un dispositif de codage d'un ensemble de données représentatives de grandeurs physiques, ledit ensemble étant composé de sous-ensembles,
caractérisé en ce qu'il comporte:
- des moyens de division des sous-ensembles en blocs de données à coder,
- des moyens de division d'au moins un sous-ensemble de référence en blocs source, pour chacun des sous-ensembles,
- des moyens de sélection d'un nombre prédéterminé de blocs source dans ledit au moins un sous-ensemble de référence, pour chacun des blocs de données à coder de chacun des sous-ensembles, et
- des moyens de détermination d'une transformation entre les blocs source sélectionnés et le bloc à coder.
Correlatively, the invention proposes a device for coding a set of data representative of physical quantities, said set being composed of subsets,
characterized in that it comprises:
means for dividing the subsets into data blocks to be coded,
means for dividing at least one reference subset into source blocks, for each of the subsets,
means for selecting a predetermined number of source blocks in said at least one reference subset, for each of the data blocks to be coded from each of the subsets, and
means for determining a transformation between the selected source blocks and the block to be coded.

L'invention permet d'obtenir un taux de compression élevé des données, qui peuvent ensuite être transmises à bas débit, de l'ordre de quelques dizaines de kilobits par seconde, tout en offrant une bonne qualité de reconstruction des données. The invention makes it possible to obtain a high compression rate of the data, which can then be transmitted at low speed, of the order of a few tens of kilobits per second, while offering a good quality of data reconstruction.

L'invention permet une compression et une décompression rapide des données. The invention allows rapid compression and decompression of data.

L'invention s'applique aussi bien au cas où l'on souhaite à la fois une compression et une décompression de séquence d'image rapide, qu'au cas où seule une décompression rapide est souhaitée. The invention applies equally well to the case where both rapid compression and decompression of image sequence are desired, as well as to the case where only rapid decompression is desired.

Selon un mode préféré de réalisation, le procédé comporte en outre l'étape de rechercher si le bloc à coder peut être codé par mise en correspondance de bloc, et à ne rechercher une transformation que si un critère de correspondance n'est pas satisfait. Le codage par mise en correspondance de bloc nécessite peu de bits pour mémoriser et/ou transmettre le bloc codé. According to a preferred embodiment, the method further comprises the step of searching if the block to be coded can be coded by block matching, and of only searching for a transformation if a matching criterion is not satisfied. Block mapping coding requires few bits to store and / or transmit the coded block.

Le critère de correspondance comporte une mesure d'une première distance entre le bloc à coder et le bloc source, ce qui constitue un moyen simple de mise en oeuvre de cet aspect de l'invention. The correspondence criterion comprises a measurement of a first distance between the block to be coded and the source block, which constitutes a simple means of implementing this aspect of the invention.

Dans un autre mode préféré de l'invention, le procédé comporte, pour chacun des sous-ensembles, les étapes supplémentaires de:
- division du sous-ensemble en zones,
- détermination du type de chaque zone, parmi un premier type de zone et un second type de zone, en fonction d'un critère de zone,
- division de chaque zone de second type en blocs de données à coder. Les zones de second type sont ensuite codées par bloc, comme exposé plus haut.
In another preferred embodiment of the invention, the method comprises, for each of the subsets, the additional steps of:
- division of the sub-assembly into zones,
determination of the type of each zone, from a first type of zone and a second type of zone, according to a zone criterion,
- division of each second type area into data blocks to be coded. The second type areas are then coded in blocks, as explained above.

Le procédé comporte le calcul d'une seconde distance entre chaque zone et une zone correspondante dans un sous-ensemble adjacent, le critère de zone consiste à comparer cette distance à un seuil, et, si cette distance est inférieure au seuil, la zone considérée est de premier type, et de second type sinon. Ainsi, les zones de premier type sont des zones qui demeurent inchangées d'un sous-ensemble à l'autre. Ces zones sont codées par une autre méthode de codage, ou sont recopiées d'un sous-ensemble à l'autre, sans être codées. Les zones qui demeurent inchangées dans plusieurs sousensemble ne sont codées qu'une seule fois, pour le premier des sousensembles considérés, puis sont recopiées pour les sous-ensembles suivants, ce qui est rapide et nécessite peu de bits pour mémoriser et/ou transmettre ces zones. Le décodage est également rapide. The method comprises the calculation of a second distance between each zone and a corresponding zone in an adjacent subset, the zone criterion consists in comparing this distance with a threshold, and, if this distance is less than the threshold, the zone considered is first type, and second type otherwise. Thus, the zones of the first type are zones which remain unchanged from one subset to another. These areas are coded by another coding method, or are copied from one subset to another, without being coded. The zones which remain unchanged in several subsets are coded only once, for the first of the subsets considered, then are copied for the following subsets, which is rapid and requires few bits to store and / or transmit these zones. Decoding is also fast.

Dans le cas où l'ensemble de données à coder est une séquence d'images numériques, les zones de premier type sont codées par une méthode de codage d'image fixe. In the case where the data set to be coded is a sequence of digital images, the areas of the first type are coded by a method of coding a fixed image.

Dans un autre aspect, la transformation est déterminée de manière à minimiser une troisième distance entre le bloc à coder et son approximation calculée en appliquant la transformation aux blocs source sélectionnés. Le calcul de la troisième distance comporte le calcul d'une différence, par exemple l'erreur quadratique moyenne, entre les valeurs des données du bloc à coder et les valeurs de son approximation calculée en appliquant la transformation aux blocs source. In another aspect, the transformation is determined so as to minimize a third distance between the block to be coded and its approximation calculated by applying the transformation to the selected source blocks. The calculation of the third distance comprises the calculation of a difference, for example the mean square error, between the values of the data of the block to be coded and the values of its approximation calculated by applying the transformation to the source blocks.

Selon des caractéristiques préférées, la transformation est une approximation multilinéaire, ou la transformation est une approximation multilinéaire combinée avec une transformation géométrique, ou encore la transformation est un polynôme sur les valeurs des coefficients des blocs source. Le type de transformation est choisi en fonction de la précision de codage, de la vitesse de codage et du taux de compression souhaités. According to preferred characteristics, the transformation is a multilinear approximation, or the transformation is a multilinear approximation combined with a geometric transformation, or else the transformation is a polynomial on the values of the coefficients of the source blocks. The type of transformation is chosen as a function of the coding precision, the coding speed and the compression rate desired.

Selon des caractéristiques préférées:
- pour le premier sous-ensemble à coder, ledit au moins un sousensemble de référence est un sous-ensemble prédéterminé,
- ledit au moins un sous-ensemble de référence est un sousensemble de l'ensemble, qui a de préférence été préalablement codé puis décodé.
According to preferred characteristics:
- for the first subset to be coded, said at least one reference subset is a predetermined subset,
- Said at least one reference subset is a subset of the set, which has preferably been previously coded and then decoded.

Selon d'autres caractéristiques préférées:
- au moins deux sous-ensembles de référence sont considérés, dont au moins un premier est situé parmi les sous-ensembles précédants le sousensemble en cours de codage et au moins un second est situé parmi les sousensembles suivants le sous-ensemble en cours de codage,
- les blocs source sont sélectionnés dans une partie du sousensemble de référence qui dépend de la partie dans laquelle est situé le bloc à coder dans le sous-ensemble en cours de codage,
- les blocs source ont une taille qui est déterminée en fonction de la taille du bloc à coder,
- les blocs source ont une taille multiple d'un facteur F2 de celle du bloc à coder et sont sous-échantillonnés du facteur F, où F est un entier, ou les blocs source ont la même taille que le bloc à coder, ce qui est plus simple à réaliser.
According to other preferred characteristics:
- at least two reference subsets are considered, at least one of which is located among the subsets preceding the subset being coded and at least one second of which is located among the subsets following the subset being coded ,
- the source blocks are selected from a part of the reference subset which depends on the part in which the block to be coded is located in the subset being coded,
- the source blocks have a size which is determined as a function of the size of the block to be coded,
the source blocks have a size multiple of a factor F2 from that of the block to be coded and are subsampled by the factor F, where F is an integer, or the source blocks have the same size as the block to be coded, which is easier to do.

Selon d'autres caractéristiques préférées:
- le bloc à coder est de taille prédéterminée, ou
- le bloc à coder est de taille variable, en fonction d'un critère de taille.
According to other preferred characteristics:
- the block to be coded is of predetermined size, or
- the block to be coded is of variable size, according to a size criterion.

Dans le dernier cas, le procédé comporte le calcul d'une quatrième distance entre le bloc à coder et l'approximation calculée par l'application de la transformation aux blocs source, le critère de taille consiste à comparer la quatrième distance à un seuil, et si la quatrième distance est supérieure au seuil, et si une taille minimale de bloc n'a pas été atteinte, le bloc en cours de codage est divisé en blocs de taille inférieure. In the latter case, the method comprises the calculation of a fourth distance between the block to be coded and the approximation calculated by applying the transformation to the source blocks, the size criterion consists in comparing the fourth distance to a threshold, and if the fourth distance is greater than the threshold, and if a minimum block size has not been reached, the block being coded is divided into blocks of smaller size.

Le dispositif de codage comporte des moyens adaptés à mettre en oeuvre les caractéristiques précédemment exposées. The coding device comprises means adapted to implement the characteristics described above.

Ces moyens sont incorporés dans:
- un contrôleur,
- une mémoire morte comportant un programme pour coder chacun des blocs de données, et
- une mémoire vive comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme.
These means are incorporated into:
- a controller,
a read-only memory comprising a program for coding each of the data blocks, and
- a random access memory comprising registers adapted to record variables modified during the execution of said program.

L'invention concerne également un procédé de décodage d'un ensemble de données représentatives de grandeurs physiques, L'ensemble étant composé de sous-ensembles qui comportent chacun des représentations codées de blocs de données, chacun des blocs étant codé au moyen d'une transformation entre des blocs source sélectionnés dans au moins un sousensemble de référence et le bloc,
caractérisé en ce qu'il comporte, pour chacun des blocs de chacun des sous-ensembles à décoder, L'étape d'application de la transformation aux blocs source pour décoder le bloc.
The invention also relates to a method for decoding a set of data representative of physical quantities, the set being composed of subsets which each include coded representations of data blocks, each of the blocks being coded by means of a transformation between source blocks selected in at least one reference subset and the block,
characterized in that it comprises, for each of the blocks of each of the subsets to be decoded, the step of applying the transformation to the source blocks to decode the block.

Dans un mode préféré de réalisation, le procédé de décodage comporte, pour chacun des blocs de chacun des sous-ensembles à décoder, les étapes de:
- recherche si le bloc est codé par mise en correspondance de blocs,
et, en cas de réponse négative, le bloc étant alors codé au moyen d'une transformation entre des blocs source sélectionnés dans au moins un sous-ensemble de référence et le bloc:
- application de la transformation aux blocs source pour décoder le bloc.
In a preferred embodiment, the decoding method comprises, for each of the blocks of each of the subsets to be decoded, the steps of:
- research if the block is coded by matching of blocks,
and, in the event of a negative response, the block then being coded by means of a transformation between source blocks selected in at least one reference subset and the block:
- application of the transformation to the source blocks to decode the block.

En cas de réponse positive à l'étape de recherche, le bloc est décodé par recopie d'un bloc de correspondance déterminé par la mise en correspondance de blocs. Le décodage du bloc considéré est donc très simple et rapide. In the event of a positive response to the search step, the block is decoded by copying a correspondence block determined by the matching of blocks. The decoding of the block considered is therefore very simple and rapid.

Selon une caractéristique préférée, le procédé de décodage comporte la lecture de la taille et de la position des blocs à décoder, lorsque les blocs sont de taille variable. According to a preferred characteristic, the decoding method comprises reading the size and the position of the blocks to be decoded, when the blocks are of variable size.

Dans un autre aspect, I'invention concerne un procédé de décodage d'un ensemble de données représentatives de grandeurs physiques,
L'ensemble étant composé de sous-ensembles qui comportent chacun des représentations codées de zones appartenant à un premier ou un second type de zone, les représentations codées du second type de zone étant réalisées par blocs de données,
caractérisé en ce qu'il comporte, pour chacun des blocs des zones de second type de chacun des sous-ensembles à décoder, L'étape d'application de la transformation aux blocs source pour décoder le bloc.
In another aspect, the invention relates to a method of decoding a set of data representative of physical quantities,
The assembly being composed of subsets which each comprise coded representations of zones belonging to a first or a second type of zone, the coded representations of the second type of zone being produced by data blocks,
characterized in that it comprises, for each of the blocks of the second type zones of each of the subsets to be decoded, the step of applying the transformation to the source blocks to decode the block.

L'invention concerne encore un dispositif de décodage comportant des moyens adaptés à mettre en oeuvre les caractéristiques précédemment exposées. Ces moyens sont incorporés dans:
- un contrôleur,
- une mémoire morte comportant un programme pour décoder chacun des blocs de données, et
- une mémoire vive comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme.
The invention also relates to a decoding device comprising means suitable for implementing the characteristics described above. These means are incorporated into:
- a controller,
a read only memory comprising a program for decoding each of the data blocks, and
- a random access memory comprising registers adapted to record variables modified during the execution of said program.

Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture d'un mode préféré de réalisation illustré par les dessins ci-joints, dans lesquels:
- la figure 1 représente de manière schématique un dispositif de codage de données selon l'invention,
- la figure 2 représente de manière schématique un dispositif de décodage de données selon l'invention,
- la figure 3 représente un mode de réalisation du dispositif de codage de données selon l'invention,
- la figure 4 représente un mode de réalisation du dispositif de décodage de données selon l'invention,
- la figure 5 est un algorithme de codage de données selon un premier mode de réalisation de l'invention,
- la figure 6 est une image divisée en blocs au cours de son codage selon l'invention,
- la figure 7 est une image divisée en blocs au cours de son codage selon l'invention,
- les figures 8a à 8f représentent des blocs à coder et des blocs source associés
- la figure 9 est un algorithme de décodage de données selon le premier mode de réalisation de l'invention,
- la figure 10 est un algorithme de codage de données selon un deuxième mode de réalisation de l'invention,
- la figure Il est une image divisée en blocs au cours de son codage selon l'invention,
- la figure 12 est un arbre de découpe associé à l'image de la figure Il,
- la figure 13 est un algorithme de décodage de données selon le deuxième mode de réalisation de l'invention
- la figure 14 est un algorithme de codage de données selon un troisième mode de réalisation de l'invention,
- la figure 15 est un algorithme de décodage de données selon le troisième mode de réalisation de l'invention,
- la figure 16 est un algorithme de codage de données selon un quatrième mode de réalisation de l'invention,
- la figure 17 est une image divisée en zones au cours de son codage selon le quatrième mode de réalisation de l'invention, et
- la figure 18 est un algorithme de décodage de données selon le quatrième mode de réalisation de l'invention.
The characteristics and advantages of the present invention will appear more clearly on reading a preferred embodiment illustrated by the attached drawings, in which:
FIG. 1 schematically represents a data coding device according to the invention,
FIG. 2 schematically represents a device for decoding data according to the invention,
FIG. 3 represents an embodiment of the data coding device according to the invention,
FIG. 4 represents an embodiment of the data decoding device according to the invention,
FIG. 5 is a data coding algorithm according to a first embodiment of the invention,
FIG. 6 is an image divided into blocks during its coding according to the invention,
FIG. 7 is an image divided into blocks during its coding according to the invention,
- Figures 8a to 8f show blocks to be coded and associated source blocks
FIG. 9 is a data decoding algorithm according to the first embodiment of the invention,
FIG. 10 is a data coding algorithm according to a second embodiment of the invention,
FIG. 11 is an image divided into blocks during its coding according to the invention,
FIG. 12 is a cutting tree associated with the image of FIG. 11,
- Figure 13 is a data decoding algorithm according to the second embodiment of the invention
FIG. 14 is a data coding algorithm according to a third embodiment of the invention,
FIG. 15 is a data decoding algorithm according to the third embodiment of the invention,
FIG. 16 is a data coding algorithm according to a fourth embodiment of the invention,
FIG. 17 is an image divided into zones during its coding according to the fourth embodiment of the invention, and
- Figure 18 is a data decoding algorithm according to the fourth embodiment of the invention.

Selon un mode de réalisation choisi et représenté à la figure 1, un dispositif 2 de codage de données selon l'invention comporte une entrée 22 à laquelle est reliée une source 1 de données non codées. La source 1 comporte par exemple un moyen de mémoire, telle que mémoire vive, disque dur, disquette, disque compact, pour mémoriser des données non codées, ce moyen de mémoire étant associé à un moyen de lecture approprié pour y lire les données. Un moyen pour enregistrer les données dans le moyen de mémoire peut également être prévu.  According to an embodiment chosen and shown in FIG. 1, a data coding device 2 according to the invention comprises an input 22 to which is connected a source 1 of non-coded data. The source 1 comprises for example a memory means, such as random access memory, hard disk, floppy disk, compact disc, for memorizing non-coded data, this memory means being associated with a suitable reading means for reading the data there. Means for storing the data in the memory means can also be provided.

La source 1 peut être par exemple une caméra vidéo dans le cas d'un signal d'image ou microphone dans le cas d'un signal de son. The source 1 may for example be a video camera in the case of an image signal or a microphone in the case of a sound signal.

Des moyens 3 utilisateurs de données codées sont reliés en sortie 27 du dispositif de codage 2. Means 3 users of coded data are connected at output 27 of the coding device 2.

Les moyens utilisateurs 3 comportent par exemple des moyens de mémorisation de données codées, et/ou des moyens de transmission des données codées. The user means 3 comprise for example means for storing coded data, and / or means for transmitting the coded data.

La figure 2 représente un dispositif 5 de décodage de données codées par le dispositif 2. FIG. 2 represents a device 5 for decoding data coded by the device 2.

Des moyens 4 utilisateurs de données codées sont reliés en entrée 52 du dispositif de décodage 5. Les moyens 4 comportent par exemple des moyens de mémoire de données codées, et/ou des moyens de réception des données codées qui sont adaptés à recevoir les données codées transmises par les moyens de transmission 3. Means 4 users of coded data are connected at the input 52 of the decoding device 5. The means 4 comprise for example coded data memory means, and / or means for receiving the coded data which are adapted to receive the coded data transmitted by the transmission means 3.

Des moyens 6 utilisateurs de données décodées sont reliés en sortie 57 du dispositif de décodage 5. Les moyens utilisateurs 6 sont par exemple des moyens de visualisation d'images, ou des moyens de restitution de sons, en fonction de la nature de données traitées. Means 6 users of decoded data are connected to the output 57 of the decoding device 5. The user means 6 are for example means for viewing images, or means for restoring sounds, depending on the nature of the data processed.

Le dispositif de codage et le dispositif de décodage peuvent être intégrés dans un même appareil numérique, par exemple une caméra numérique munie d'un écran de visualisation. The coding device and the decoding device can be integrated into the same digital device, for example a digital camera provided with a display screen.

Un mode de réalisation de dispositif de codage de données 2 est représenté à la figure 3. An embodiment of the data coding device 2 is shown in FIG. 3.

Le dispositif de codage 2 comporte un bus de données et d'adresses 20 auquel sont reliés:
- une mémoire tampon d'entrée 21, également reliée à l'entrée 22 du dispositif, pour mémoriser de manière temporaire les données à coder,
- une mémoire morte (ROM) 23 dans laquelle est mémorisé un algorithme de codage qui sera exposé dans la suite,
- un contrôleur 24 pour mettre en oeuvre l'algorithme de codage,
- une mémoire vive (RAM) 25 pour mémoriser dans des registres des paramètres modifiés au cours de l'exécution de l'algorithme de codage, et
- une mémoire tampon de sortie 26, également reliée à la sortie 27 du dispositif.
The coding device 2 comprises a data and address bus 20 to which are connected:
an input buffer memory 21, also connected to input 22 of the device, for temporarily storing the data to be coded,
a read only memory (ROM) 23 in which is stored a coding algorithm which will be explained below,
a controller 24 for implementing the coding algorithm,
a random access memory (RAM) 25 for storing in registers parameters modified during the execution of the coding algorithm, and
- an output buffer memory 26, also connected to output 27 of the device.

Un mode de réalisation de dispositif de décodage de données 5 est représenté à la figure 4. An embodiment of a data decoding device 5 is shown in FIG. 4.

le dispositif de décodage 5 comporte un bus de données et d'adresses 50 auquel sont reliés:
- une mémoire tampon d'entrée 51, également reliée à l'entrée 52 du dispositif, pour mémoriser de manière temporaire les données à coder,
- une mémoire morte (ROM) 53 dans laquelle est mémorisé un algorithme de décodage qui sera exposé dans la suite,
- un contrôleur 54 pour mettre en oeuvre l'algorithme de décodage,
- une mémoire vive (RAM) 55 pour mémoriser dans des registres des paramètres modifiés au cours de l'exécution de l'algorithme de décodage, et
- une mémoire tampon de sortie 56, également reliée à la sortie 57 du dispositif.
the decoding device 5 comprises a data and address bus 50 to which are connected:
an input buffer memory 51, also connected to input 52 of the device, for temporarily storing the data to be coded,
a read only memory (ROM) 53 in which is stored a decoding algorithm which will be explained below,
a controller 54 for implementing the decoding algorithm,
a random access memory (RAM) 55 for storing in registers parameters modified during the execution of the decoding algorithm, and
- an output buffer memory 56, also connected to output 57 of the device.

Le fonctionnement des dispositifs de codage 2 et de décodage 5 sera détaillé au cours de la description des différents modes de réalisation des algorithmes correspondants. The operation of the coding 2 and decoding 5 devices will be detailed during the description of the various embodiments of the corresponding algorithms.

Selon le mode de réalisation choisi et représenté à la figure 5,
I'invention s'applique au codage d'un ensemble de données représentatives de grandeurs physiques qui est une séquence d'images numériques fl à fN, où N est un entier.
According to the embodiment chosen and represented in FIG. 5,
The invention applies to the coding of a set of data representative of physical quantities which is a sequence of digital images f1 to fN, where N is an integer.

Une image quelconque fn dans la séquence, avec n compris entre 1 et N, est une image à niveau de gris, comportant à titre d'exemple 128x96 pixels à 256 niveaux. Any image fn in the sequence, with n between 1 and N, is a gray-level image, comprising for example 128 × 96 pixels at 256 levels.

L'algorithme représenté à la figure 5 comporte des étapes El à E14 qui réalisent le codage de la séquence d'images numériques. Le traitement est effectué image par image. Globalement, une image de la séquence est codée en fonction d'une image de référence. The algorithm represented in FIG. 5 comprises steps E1 to E14 which carry out the coding of the sequence of digital images. The processing is carried out image by image. Overall, an image of the sequence is coded as a function of a reference image.

L'étape El est une initialisation à laquelle le paramètre n est initialisé à 1, de manière à considérer tout d'abord la première image de la séquence. Step E1 is an initialization to which the parameter n is initialized to 1, so as to first consider the first image of the sequence.

L'étape suivante E2 est une division de l'image considérée fn en un nombre prédéterminé M de blocs Anal1 à An,M de pixels adjacents. Le nombre M de blocs peut être prédéterminé, ou peut être un paramètre réglé par l'utilisateur de l'algorithme. Dans ce mode de réalisation, les blocs A,1 à An,M sont adjacents, sans recouvrement. En variante non représentée, les blocs peuvent se chevaucher, pour limiter les effets de bloc au décodage, au détriment du taux de compression. The next step E2 is a division of the image considered fn into a predetermined number M of blocks Anal1 to An, M of adjacent pixels. The number M of blocks can be predetermined, or can be a parameter set by the user of the algorithm. In this embodiment, the blocks A, 1 to An, M are adjacent, without overlap. In a variant not shown, the blocks can overlap, to limit the block effects on decoding, to the detriment of the compression rate.

Selon une première variante de ce mode de réalisation, représentée à la figure 6, les blocs ont tous la même taille prédéterminée, et sont par exemple des blocs carrés de 32x32 pixels dans le cas de l'image à 128x96 pixels. La division de l'image est uniforme dans toute l'image. Selon une seconde variante représentée à la figure 7, la taille des blocs, tout en étant prédéterminée, dépend de l'emplacement des blocs dans l'image : dans une zone déterminée de l'image, par exemple une zone centrale susceptible de contenir plus de détails, les blocs sont plus petits que sur les bords de l'image. According to a first variant of this embodiment, shown in FIG. 6, the blocks all have the same predetermined size, and are for example square blocks of 32 × 32 pixels in the case of the 128 × 96 pixel image. The image division is uniform throughout the image. According to a second variant represented in FIG. 7, the size of the blocks, while being predetermined, depends on the location of the blocks in the image: in a determined area of the image, for example a central area capable of containing more details, the blocks are smaller than at the edges of the image.

Cette zone déterminée sera alors codée plus finement que le reste de l'image.This determined area will then be coded more finely than the rest of the image.

Cette variante est notamment intéressante pour la visiophonie, puisque dans ce cas, les images reproduisent principalement les visages des utilisateurs, qui sont généralement situés au centre des images.This variant is particularly advantageous for videophone, since in this case, the images mainly reproduce the faces of the users, who are generally located in the center of the images.

Deux tailles différentes de blocs sont représentées à la figure 7 32x32 et 16x16 pixels. Cependant un nombre plus élevé de tailles peut être envisagé pour des applications spécifiques, notamment si l'on sait que la quantité d'information varie beaucoup d'une zone à l'autre des images à coder. Two different block sizes are shown in Figure 7 32x32 and 16x16 pixels. However, a higher number of sizes can be envisaged for specific applications, in particular if it is known that the quantity of information varies greatly from one zone to another of the images to be coded.

Dans tous les cas, la division de l'image a pour résultat un ensemble de M blocs An.i à An,M, mémorisés en mémoire 25. Les blocs An 1 à An,M seront compressés, ou codés, les uns à la suite des autres, dans un ordre quelconque. Cet ordre est de préférence prédéterminé et est alors l'ordre dans lequel seront ensuite décompressés, ou décodés, les blocs, ce qui rend inutile de repérer les blocs par un indice ou par des coordonnées. En variante, il est possible de repérer les blocs et d'associer le repérage, indice ou coordonnées, au bloc codé, ce qui permet de décompresser les blocs dans un ordre quelconque, qui peut être différent de l'ordre utilisé à la compression. In all cases, the division of the image results in a set of M blocks An.i to An, M, stored in memory 25. The blocks An 1 to An, M will be compressed, or coded, one at a time. following the others, in any order. This order is preferably predetermined and is then the order in which the blocks will then be decompressed, or decoded, which makes it unnecessary to locate the blocks by an index or by coordinates. As a variant, it is possible to locate the blocks and to associate the identification, index or coordinates, with the coded block, which makes it possible to decompress the blocks in any order, which may be different from the order used for compression.

L'étape E2 est suivie de l'étape E3, qui est un test sur la valeur du paramètre n. Si le paramètre n est égal à 1, L'étape E3 est suivie de l'étape E4 à laquelle une image supplémentaire g0 est ajoutée à la séquence en tant qu'image de référence pour la première image f1 de la séquence. L'image supplémentaire g0 est quelconque, par exemple une image uniformément grise. Step E2 is followed by step E3, which is a test on the value of the parameter n. If the parameter n is equal to 1, step E3 is followed by step E4 in which an additional image g0 is added to the sequence as a reference image for the first image f1 of the sequence. The additional image g0 is arbitrary, for example a uniformly gray image.

Si à l'étape E3 le paramètre n est supérieur à 1, L'étape E3 est suivie de l'étape E5, de même que l'étape E4 est suivie de l'étape E5. Cette dernière est une initialisation d'un paramètre m à 1, pour considérer le premier bloc A dans l'image f,.  If in step E3 the parameter n is greater than 1, step E3 is followed by step E5, just as step E4 is followed by step E5. The latter is an initialization of a parameter m to 1, to consider the first block A in image f ,.

L'étape suivante E6 est la division de une ou plusieurs images de référence en blocs de pixels adjacents, mémorisés en mémoire 25. La taille des blocs dépend de la taille des blocs à coder An,m. De préférence, les blocs des images de référence sont F2 fois plus grands que les blocs à coder, où F est un entier par exemple égal à deux, ce qui permet d'exploiter beaucoup de détails de l'image de référence. Les blocs des images de référence sont ensuite souséchantillonnés du facteur F, pour travailler sur des blocs ayant le même nombre de pixels que les blocs à coder. Selon une variante plus simple à mettre en oeuvre, les blocs des images de référence ont la même taille que les blocs à coder. The next step E6 is the division of one or more reference images into blocks of adjacent pixels, stored in memory 25. The size of the blocks depends on the size of the blocks to be coded An, m. Preferably, the blocks of the reference images are F2 times larger than the blocks to be coded, where F is an integer for example equal to two, which makes it possible to exploit many details of the reference image. The blocks of the reference images are then sub-sampled by the factor F, to work on blocks having the same number of pixels as the blocks to be coded. According to a variant that is simpler to implement, the blocks of the reference images have the same size as the blocks to be coded.

L'étape E6 est suivie de l'étape E7 qui est la sélection de blocs source Dni,m,i à Dn1,m,K dans une ou plusieurs images de référence relativement au bloc à coder Anm de l'image f, selon l'une des variantes suivantes
- les blocs source sont sélectionnés dans une image de référence qui précède l'image en cours de codage;
- les blocs source sont sélectionnés dans plusieurs images de référence qui précèdent l'image en cours de codage;
- les blocs source sont sélectionnés dans une image de référence qui précède, et dans une image de référence qui suit, L'image en cours de codage;
- les blocs source sont sélectionnés dans plusieurs images de référence qui précèdent, et/ou dans plusieurs images de référence qui suivent,
L'image en cours de codage.
Step E6 is followed by step E7 which is the selection of source blocks Dni, m, i to Dn1, m, K in one or more reference images relative to the block to be coded Anm of the image f, according to l one of the following variants
the source blocks are selected in a reference image which precedes the image being coded;
- the source blocks are selected from several reference images which precede the image being coded;
the source blocks are selected in a reference image which precedes, and in a reference image which follows, the image being coded;
the source blocks are selected from several preceding reference images, and / or from several reference images which follow,
The image being coded.

Dans chacune des variantes précédentes, la ou les images de référence sont des images de la séquence, ou sont des images de la séquence qui ont été codées puis décodées selon l'invention. Ce dernier cas permet de mieux restituer l'image lors du décodage qui sera exposé dans la suite. En effet, seules des images décodées seront disponibles lors du décodage ; il est donc préférable d'utiliser également des images décodées en tant qu'images de référence pour le codage afin de ne pas introduire d'erreur. In each of the preceding variants, the reference image or images are images of the sequence, or are images of the sequence which have been coded and then decoded according to the invention. This last case makes it possible to better restore the image during decoding which will be explained below. Indeed, only decoded images will be available during decoding; it is therefore preferable to also use decoded images as reference images for coding so as not to introduce an error.

Selon un mode préféré de réalisation qui est plus particulièrement pris en compte ici, on considère une seule image de référence g1 qui est l'image précédant l'image fn, préalablement codée puis décodée selon l'invention. According to a preferred embodiment which is more particularly taken into account here, we consider a single reference image g1 which is the image preceding the image fn, previously coded and then decoded according to the invention.

Le nombre K de blocs source est prédéterminé, et vaut par exemple 4. En variante, le nombre K est un paramètre de réglage de l'algorithme. Les blocs source sont sélectionnés par leur emplacement dans l'image de référence gn-1 en fonction de l'emplacement du bloc à coder An,m dans l'image f,. De manière générale, les blocs source sont sélectionnés dans une région de l'image précédente qui dépend de la région du bloc à coder dans l'image considérée. De préférence, les deux régions sont similaires, c'est-à-dire que la superposition de l'image considérée et de l'image source conduit au recouvrement partiel des blocs source par le bloc à coder. The number K of source blocks is predetermined, and is for example equal to 4. As a variant, the number K is a parameter for adjusting the algorithm. The source blocks are selected by their location in the reference image gn-1 as a function of the location of the block to be coded An, m in the image f ,. In general, the source blocks are selected in a region of the previous image which depends on the region of the block to be coded in the image considered. Preferably, the two regions are similar, that is to say that the superposition of the image under consideration and of the source image leads to partial overlapping of the source blocks by the block to be coded.

En variante, il est possible de sélectionner les blocs source dans une région "translatée" par rapport à la région du bloc à coder. Cette variante est intéressante dans le cas où l'on sait que l'image à coder représente une scène translatée par rapport à l'image de référence. As a variant, it is possible to select the source blocks in a "translated" region relative to the region of the block to be coded. This variant is advantageous in the case where it is known that the image to be coded represents a scene translated with respect to the reference image.

Les figures 8a à 8f représentent différents exemples de sélection de blocs source. Dans chacune des figures 8a à 8f, le bloc à coder An.m de l'image considérée fn a été superposé aux blocs source Dn.i,m.i à Dn1,m4 de l'image source gon 1. Dans les six exemples, on considère quatre blocs source de même taille que le bloc à coder An,m.  Figures 8a to 8f show different examples of source block selection. In each of FIGS. 8a to 8f, the block to be coded An.m of the image considered fn has been superimposed on the source blocks Dn.i, mi to Dn1, m4 of the source image gon 1. In the six examples, we consider four source blocks of the same size as the block to be coded An, m.

A la figure 8a, le bloc à coder An,m est dans une partie centrale de l'image f, ; les quatre blocs source sont adjacents et le bloc à coder est globalement centré sur les quatre blocs source sélectionnés. In FIG. 8a, the block to be coded An, m is in a central part of the image f,; the four source blocks are adjacent and the block to be coded is generally centered on the four selected source blocks.

Aux figures 8b à 8e, le bloc à coder An,m se trouve sur un bord de l'image représenté par une ligne en trait pointillé. Deux des blocs source recouvrent partiellement les deux autres blocs source, de sorte que le bloc à coder recouvre une partie de chacun des blocs source. In FIGS. 8b to 8e, the block to be coded An, m is located on an edge of the image represented by a line in dotted lines. Two of the source blocks partially overlap the other two source blocks, so that the block to be coded covers part of each of the source blocks.

A la figure 8f, le bloc à coder An,rn est dans un coin de l'image, et les quatre blocs source se recouvrent partiellement, de sorte que le bloc à coder recouvre une partie de chacun des blocs source. In FIG. 8f, the block to be coded An, rn is in a corner of the image, and the four source blocks partially overlap, so that the block to be coded covers part of each of the source blocks.

En variante, lorsque le bloc à coder est sur un bord ou dans un coin de l'image, les quatre blocs source sont adjacents, et deux ou trois des blocs source sont tronqués et complétés soit par un complément uniformément gris, soit par un complément déterminé par extension de l'image, par exemple par symétrie ou par périodisation de l'image. As a variant, when the block to be coded is on an edge or in a corner of the image, the four source blocks are adjacent, and two or three of the source blocks are truncated and completed either by a uniformly gray complement or by a complement determined by extension of the image, for example by symmetry or by periodization of the image.

L'étape E7 est suivie de l'étape E8, à laquelle une transformation entre les blocs source et le bloc à coder est calculée. Step E7 is followed by step E8, at which a transformation between the source blocks and the block to be coded is calculated.

Selon un mode préféré de réalisation, la transformation est une approximation multilinéaire, de la forme : Tn.m = n,mk , bnm} permettant de construire le bloc ARn,m = #k ( an,m,k X Dn-1,m,k ) + bn,m .  According to a preferred embodiment, the transformation is a multilinear approximation, of the form: Tn.m = n, mk, bnm} making it possible to construct the block ARn, m = #k (an, m, k X Dn-1, m, k) + bn, m.

Dans cette expression, an m k est une fonction d'échelle, ici une fonction constante, ou coefficient, pour un bloc source donné Dn1mk et de norme inférieure à l'unité, et b n,m est une fonction de décalage des niveaux de gris, ici une fonction constante, ou coefficient, pour le bloc à coder Anm. La fonction an,m,k s'applique à chacun des pixels du bloc Dn-1,m,k, ce qui revient ici à multiplier tous les pixels par le coefficient n,m,k.  In this expression, an mk is a scale function, here a constant function, or coefficient, for a given source block Dn1mk and of norm less than unity, and bn, m is a gray level shift function, here a constant function, or coefficient, for the block to be coded Anm. The function an, m, k applies to each of the pixels of the block Dn-1, m, k, which amounts here to multiplying all the pixels by the coefficient n, m, k.

Les fonctions, ici les coefficients, an,m,k et b n,m sont déterminées pour minimiser une distance d(An,m, ARn,m) entre le bloc à coder An,m et le bloc reconstruit ARnrn en appliquant la transformation Tn,m aux blocs source selon la formule donnée plus haut. The functions, here the coefficients, an, m, k and bn, m are determined to minimize a distance d (An, m, ARn, m) between the block to be coded An, m and the reconstructed block ARnrn by applying the transformation Tn , m to the source blocks according to the formula given above.

Selon un mode de réalisation simple à mettre en oeuvre, les fonctions an,m,k et bn,m sont discrétisées et un nombre limité de valeurs possibles pour les coefficients an,m,k est testé. Par exemple, chaqu
- la transformation combine une approximation multilinéaire calculée sur les blocs source et des transformations géométriques, telles que rotation, des blocs source,
- la transformation est de forme polynomiale, par exemple d'ordre deux ou trois, calculée sur les valeurs des pixels des blocs source. Ce type de transformation donne des résultats plus précis, tout en étant plus long à calculer.
According to an embodiment which is simple to implement, the functions an, m, k and bn, m are discretized and a limited number of possible values for the coefficients an, m, k is tested. For example, each
- the transformation combines a multilinear approximation calculated on the source blocks and geometric transformations, such as rotation, of the source blocks,
the transformation is of polynomial form, for example of order two or three, calculated on the values of the pixels of the source blocks. This type of transformation gives more precise results, while taking longer to calculate.

L'étape suivante El 0 est un test pour vérifier si m est égal à M, c'està-dire si le bloc qui vient d'être codé est le dernier de l'image courante. S'il reste au moins un bloc à coder dans l'image fn, L'étape ElO est suivie par l'étape El 1 à laquelle le paramètre m est incrémenté de une unité, pour considérer le bloc suivant dans l'image fn. L'étape El 1 est suivie de l'étape E7 précédemment décrite. The following step El 0 is a test to check if m is equal to M, that is to say if the block which has just been coded is the last of the current image. If at least one block remains to be coded in the image fn, the step ElO is followed by the step El 1 in which the parameter m is incremented by one, to consider the next block in the image fn. Step E11 is followed by step E7 previously described.

Lorsque le bloc qui vient d'être codé est le dernier de l'image courante, L'étape E10 est suivie de l'étape E12 qui est un test pour vérifier si l'image fn qui vient d'être compressée est la dernière de la séquence. Si ce n'est pas le cas, L'étape E12 est suivie de l'étape E13 qui est la construction de l'image décompressée gon . L'application de chacune des transformations Tn,m précédemment déterminées aux blocs source reconstruit chacun des blocs ARn,m, dont la totalité forme l'image décodée gn. L'image gn est mémorisée en mémoire 25 pour être utilisée pour le codage de l'image suivante fn+i (étape
E6).
When the block which has just been coded is the last of the current image, step E10 is followed by step E12 which is a test to check whether the image fn which has just been compressed is the last of the sequence. If this is not the case, step E12 is followed by step E13 which is the construction of the decompressed image gon. The application of each of the transformations Tn, m previously determined to the source blocks reconstructs each of the blocks ARn, m, the whole of which forms the decoded image gn. The image gn is stored in memory 25 to be used for coding the following image fn + i (step
E6).

L'étape E13 est suivie de l'étape E14 pour incrémenter le paramètre n de une unité. L'étape E14 est suivie de l'étape E2 précédemment décrite. Step E13 is followed by step E14 to increment the parameter n by one. Step E14 is followed by step E2 previously described.

Dans le cas où n=N, c'est-à-dire pour la dernière image de la séquence, il n'est pas nécessaire ici de reconstruire l'image gN.In the case where n = N, that is to say for the last image of the sequence, it is not necessary here to reconstruct the image gN.

Lorsque la réponse à l'étape El 1 est positive, toutes les images f1 à fN de la séquence ont été compressées en des images compressées h1 à hN. When the response to step E11 is positive, all the images f1 to fN of the sequence have been compressed into compressed images h1 to hN.

Selon un autre mode de réalisation, non représenté, le procédé de codage est modifié de la manière suivante.  According to another embodiment, not shown, the coding method is modified in the following manner.

Pour coder une image de la séquence, on considère une image de référence, choisie comme exposé plus haut. To code an image of the sequence, we consider a reference image, chosen as described above.

Les blocs source ne sont plus sélectionnés pour chacun des blocs à coder de l'image ; des blocs source sont sélectionnés dans l'image de référence, une fois pour toutes pour l'image à coder, et sont ensuite utilisés pour coder tous les blocs de l'image à coder. Le codage est ainsi plus rapide, puisque la sélection des blocs source n'est effectuée qu'une seule fois par image; les distorsions introduites par le codage seront cependant plus grandes qu'avec le mode de réalisation précédemment décrit. The source blocks are no longer selected for each of the blocks to be coded in the image; source blocks are selected in the reference image, once and for all for the image to be coded, and are then used to code all the blocks of the image to be coded. Coding is thus faster, since the selection of the source blocks is carried out only once per image; the distortions introduced by the coding will however be greater than with the embodiment described above.

En référence à la figure 9, le premier mode de réalisation d'algorithme de décodage de la séquence compressée d'images numériques comporte des étapes E20 à E30. L'étape E20 est une initialisation à laquelle le paramètre n est initialisé à 1, pour traiter la première image compressée h1 de la séquence. With reference to FIG. 9, the first embodiment of the algorithm for decoding the compressed sequence of digital images comprises steps E20 to E30. Step E20 is an initialization at which the parameter n is initialized at 1, to process the first compressed image h1 of the sequence.

A l'étape suivante E21, une image supplémentaire g0 est ajoutée à la séquence en tant qu'image source pour la première image compressée h1 de la séquence. L'image supplémentaire g0 est identique à celle considérée à l'étape
E4 précédemment décrite, et est par exemple une image uniformément grise.
In the next step E21, an additional image g0 is added to the sequence as a source image for the first compressed image h1 of the sequence. The additional image g0 is identical to that considered in step
E4 previously described, and is for example a uniformly gray image.

L'étape suivante E22 est l'initialisation du paramètre m à 1, pour considérer le premier bloc à reconstruire. Les blocs sont de préférence traités dans le même ordre qu'à la compression, ce qui évite d'avoir à mémoriser et à traiter un indice, ou des coordonnées, pour repérer les blocs. The next step E22 is the initialization of the parameter m to 1, to consider the first block to be reconstructed. The blocks are preferably treated in the same order as in compression, which avoids having to memorize and process an index, or coordinates, to locate the blocks.

L'étape suivante E23 est la division de l'image de référence g.1 en blocs de pixels adjacents, qui sont les blocs source mémorisés en mémoire 55. The next step E23 is the division of the reference image g.1 into blocks of adjacent pixels, which are the source blocks stored in memory 55.

L'étape E23 est identique à l'étape E6. L'étape suivante E24 est la sélection de blocs source Dnî,mi à Dn-l,m,K dans l'image de référence go 1, relativement au bloc à reconstruire ARnm. L'image de référence est sélectionnée de la même manière que pour le codage, avec les mêmes variantes possibles. Selon le mode préféré de réalisation, L'image de référence g1 est l'image décodée précédant l'image hn. Les blocs source sont sélectionnés de la même manière que pour le codage (étape E6), avec les mêmes variantes possibles. Step E23 is identical to step E6. The next step E24 is the selection of source blocks Dnî, mi to Dn-l, m, K in the reference image go 1, relative to the block to be reconstructed ARnm. The reference image is selected in the same way as for coding, with the same possible variants. According to the preferred embodiment, the reference image g1 is the decoded image preceding the image hn. The source blocks are selected in the same way as for coding (step E6), with the same possible variants.

L'étape E24 est suivie de l'étape E25 à laquelle la transformation Tn,m définie par les fonctions an,m,k et bn,m est appliquée aux blocs source Dn 1 m 1 à Dn-l,m,K sélectionnés à l'étape précédente E24, selon la formule:
ARn,m = Zk an,m,k X Dn-1,m,k ) + bn,m.
Step E24 is followed by step E25 in which the transformation Tn, m defined by the functions an, m, k and bn, m is applied to the source blocks Dn 1 m 1 to Dn-l, m, K selected at the previous step E24, according to the formula:
ARn, m = Zk an, m, k X Dn-1, m, k) + bn, m.

L'étape E25 a pour résultat le bloc décodé ARn,m mémorisé en mémoire 55. Step E25 results in the decoded block ARn, m stored in memory 55.

L'étape suivante E26 est un test pour déterminer si le bloc qui vient d'être décompressé est le dernier de l'image en cours de décompression. Si ce n'est pas le cas, L'étape E26 est suivie de l'étape E27 à laquelle le paramètre m est incrémenté de une unité pour considérer le bloc suivant. L'étape E27 est suivie de l'étape E24 précédemment décrite. The next step E26 is a test to determine whether the block which has just been decompressed is the last of the image being decompressed. If this is not the case, step E26 is followed by step E27 in which the parameter m is incremented by one unit to consider the next block. Step E27 is followed by step E24 previously described.

Lorsque tous les blocs de l'image en cours ont été décompressés,
L'étape E26 est suivie de l'étape E28 à laquelle l'image décompressée gn est reconstruite et par exemple affichée sur un écran, et/ou mémorisée. De manière générale, L'étape E28 est le transfert de l'image gn aux moyens utilisateurs 6.
When all the blocks of the current image have been decompressed,
Step E26 is followed by step E28 in which the decompressed image gn is reconstructed and for example displayed on a screen, and / or stored. In general, Step E28 is the transfer of the image gn to the user means 6.

L'étape suivante E29 est un test pour déterminer si l'image qui vient d'être décompressée est la dernière image de la séquence. S'il reste au moins une image à décompresser, L'étape E29 est suivie de l'étape E30 à laquelle le paramètre n est incrémenté de une unité, pour considérer l'image suivante dans la séquence. L'étape E30 est suivie de l'étape E22 précédemment décrite. The next step E29 is a test to determine whether the image which has just been decompressed is the last image of the sequence. If at least one image remains to be decompressed, step E29 is followed by step E30 in which the parameter n is incremented by one, to consider the next image in the sequence. Step E30 is followed by step E22 previously described.

Un autre mode de réalisation du procédé de codage selon l'invention est représenté aux figures 10, Il et 12 sous la forme d'un algorithme comportant des étapes E31 à E41 mémorisées en mémoire 23 (figure 3). Another embodiment of the coding method according to the invention is represented in FIGS. 10, 11 and 12 in the form of an algorithm comprising steps E31 to E41 stored in memory 23 (FIG. 3).

Dans ce mode de réalisation, la taille des blocs à coder est déterminée de manière adaptative, en fonction de la quantité d'information présente dans les blocs à coder et en fonction du "mouvement" des blocs à coder par rapport à l'image de référence, c'est-à-dire des modifications entre les pixels du bloc à coder et les pixels des blocs source de l'image de référence. In this embodiment, the size of the blocks to be coded is determined adaptively, as a function of the quantity of information present in the blocks to be coded and as a function of the "movement" of the blocks to be coded with respect to the image of reference, that is to say modifications between the pixels of the block to be coded and the pixels of the source blocks of the reference image.

Un arbre de découpe, ici un arbre quaternaire, est associé à chaque image à coder. L'arbre quaternaire représente la découpe particulière de chaque image. Chaque image compressée hn comporte un ensemble de transformations {Tn,m} et l'arbre quaternaire associé. A cutting tree, here a quaternary tree, is associated with each image to be coded. The quaternary tree represents the particular cutout of each image. Each compressed image hn has a set of transformations {Tn, m} and the associated quaternary tree.

L'étape E31 est une initialisation d'un paramètre n à 1, pour considérer tout d'abord la première image f1 de la séquence. Step E31 is an initialization of a parameter n to 1, to first consider the first image f1 of the sequence.

L'étape suivante E32 est la division de l'image courante fn en blocs de taille initiale. Par exemple, comme représenté à la figure 11, L'image fn a une taille de 128x96 pixels, et elle est divisée en douze blocs de taille 32x32 pixels. The next step E32 is the division of the current image fn into blocks of initial size. For example, as shown in Figure 11, The image fn has a size of 128x96 pixels, and it is divided into twelve blocks of size 32x32 pixels.

Chaque bloc de taille initiale An à à An 12 est associé à une racine de l'arbre quaternaire représenté à la figure 12, c'est-à-dire à un noeud de l'arbre qui n'a pas de données associées et qui n'a pas encore été subdivisé. Un marqueur est initialisé à la valeur zéro pour chaque racine. Each block of initial size An to through An 12 is associated with a root of the quaternary tree represented in FIG. 12, that is to say with a node of the tree which has no associated data and which has not yet been subdivided. A marker is initialized to zero for each root.

L'étape suivante E33 est la recherche d'une transformation entre un bloc An,m de l'image à coder fn et des blocs source. L'étape E33 est similaire aux étapes E3 à E8 précédemment détaillées en référence à la figure 5. The next step E33 is the search for a transformation between a block An, m of the image to be coded fn and source blocks. Step E33 is similar to steps E3 to E8 previously detailed with reference to FIG. 5.

L'étape E33 a pour résultat une transformation Tn,m déterminée pour le bloc à coder An,m. Les différentes variantes possibles pour la sélection de l'image de référence et des blocs source, pour le choix de la transformation et de la distance, précédemment exposées, sont ici applicables de la même manière que pour le premier mode de réalisation. Step E33 results in a transformation Tn, m determined for the block to be coded An, m. The different possible variants for the selection of the reference image and the source blocks, for the choice of the transformation and of the distance, previously exposed, are here applicable in the same way as for the first embodiment.

L'étape suivante E34 est un test pour déterminer si la distance d(Anm, ARn,m) calculée à l'étape précédente est inférieure à un seuil prédéterminé S. The next step E34 is a test to determine whether the distance d (Anm, ARn, m) calculated in the previous step is less than a predetermined threshold S.

Si la réponse est positive, cela signifie que l'approximation calculée permet de reconstruire un bloc ARnm suffisamment proche du bloc à coder An,m ; I'étape E34 est suivie de l'étape E35 à laquelle la transformation Tn,m est mémorisée en tant que bloc de données D associé au noeud du bloc Ans .  If the answer is positive, this means that the calculated approximation makes it possible to reconstruct an ARnm block sufficiently close to the block to be coded An, m; Step E34 is followed by step E35 in which the transformation Tn, m is stored as a data block D associated with the node of the block Ans.

dans l'arbre quaternaire de l'image fn. Le marqueur demeure à la valeur zéro.in the quaternary tree of the image fn. The marker remains at zero.

Le bloc reconstruit ARn,m est calculé et mémorisé pour construire l'image gn. The reconstructed block ARn, m is calculated and stored to construct the image gn.

L'étape E35 est suivie de l'étape E36 à laquelle il est testé si le bloc qui vient d'être traité est le dernier de l'image en cours de codage. Si ce n'est pas le cas, L'étape E36 est suivie de l'étape E37 pour considérer un autre bloc de l'image f,. L'étape E37 est suivie de l'étape E33 précédemment décrite. Step E35 is followed by step E36 in which it is tested whether the block which has just been processed is the last one of the image being coded. If this is not the case, step E36 is followed by step E37 to consider another block of the image f i. Step E37 is followed by step E33 previously described.

Lorsque tous les blocs de l'image fn ont été codés, L'étape E36 est suivie de l'étape E38 à laquelle il est testé si toutes les images de la séquence ont été traitées. S'il reste au moins une image à coder, étape E38 est suivie de l'étape
E39 pour considérer une autre image de la séquence. L'étape E39 est suivie de l'étape E32.
When all the blocks of the image fn have been coded, step E36 is followed by step E38 in which it is tested if all the images of the sequence have been processed. If at least one image remains to be coded, step E38 is followed by step
E39 to consider another image of the sequence. Step E39 is followed by step E32.

Si, à l'étape E34, la distance d(An,m ARnm) calculée à l'étape précédente E33 est supérieure au seuil S, L'étape E33 est suivie par l'étape
E40 à laquelle il est testé si la taille du bloc à coder courant Anm a atteint une valeur minimale prédéterminée. Si la réponse est positive, L'étape E40 est suivie de l'étape E35, c'est-à-dire que la transformation déterminée est mémorisée, même si elle ne satisfait pas au critère de l'étape E34, dans le cas où la taille du bloc à coder courant An,m a atteint la valeur minimale.
If, at step E34, the distance d (An, m ARnm) calculated in the previous step E33 is greater than the threshold S, Step E33 is followed by step
E40 at which it is tested if the size of the block to be coded current Anm has reached a predetermined minimum value. If the answer is positive, step E40 is followed by step E35, that is to say that the determined transformation is stored, even if it does not satisfy the criterion of step E34, in the case where the size of the block to be coded current An, ma reaches the minimum value.

Si la réponse au test de l'étape E40 est négative, cette étape est suivie de l'étape E41 à laquelle le bloc à coder courant An,m est divisé en un nombre prédéterminé M1 de sous-blocs A1n.m à Aï nom Comme représenté à la figure 11, la division est par exemple réalisée en quatre sous-blocs. Dans l'arbre quaternaire, le marqueur du noeud associé au bloc divisé An,m est mis à la valeur 1, pour indiquer que le bloc correspondant a été divisé. La division du bloc a pour résultat quatre sous-blocs, dont les noeuds dans l'arbre quaternaire ont des marqueurs initialisés à zéro. L'ordre des sous-blocs dans l'arbre quaternaire correspond à leur position dans le bloc divisé, et cet ordre est le même pour tous les blocs divisés : par exemple, sous-bloc bas droit, sous-bloc bas gauche, sous-bloc haut droit, sous-bloc haut gauche. L'information de position des sous-blocs est exploitée au décodage.  If the response to the test in step E40 is negative, this step is followed by step E41 in which the current block to be coded An, m is divided into a predetermined number M1 of sub-blocks A1n.m to Ai name As shown in Figure 11, the division is for example carried out in four sub-blocks. In the quaternary tree, the marker of the node associated with the divided block An, m is set to the value 1, to indicate that the corresponding block has been divided. The division of the block results in four sub-blocks, whose nodes in the quaternary tree have markers initialized to zero. The order of the sub-blocks in the quaternary tree corresponds to their position in the divided block, and this order is the same for all the divided blocks: for example, lower right sub-block, lower left sub-block, top right block, top left sub-block. The position information of the sub-blocks is used during decoding.

L'étape E41 est suivie de l'étape E33 de calcul d'une transformation, pour chacun des sous-blocs déterminés à l'étape E41. Chacun de ces sousblocs est codé de la même manière qu'un bloc An,m. Les étapes suivantes sont parcourues successivement pour chaque sous-bloc A1nm à AMln,m , ce qui conduit notamment à la détermination d'une transformation pour le sous-bloc courant, et à sa mémorisation si le critère de l'étape E34 est satisfait, ou si la taille minimale de sous-bloc est atteinte (étape E40). Step E41 is followed by step E33 for calculating a transformation, for each of the sub-blocks determined in step E41. Each of these sub-blocks is coded in the same way as a block An, m. The following steps are followed successively for each sub-block A1nm to AMln, m, which leads in particular to the determination of a transformation for the current sub-block, and to its storage if the criterion of step E34 is satisfied, or if the minimum sub-block size is reached (step E40).

Pour chaque sous-bloc, si le critère de l'étape E34 n'est pas satisfait, et si la taille minimale de sous-bloc n'est pas atteinte (étape E40), le sous-bloc considéré est lui-même divisé à l'étape E41 en sous-blocs de taille inférieure. For each sub-block, if the criterion of step E34 is not satisfied, and if the minimum size of sub-block is not reached (step E40), the sub-block considered is itself divided to step E41 in sub-blocks of smaller size.

Ainsi, par exemple, à la figure 11, L'image fn est divisée en douze blocs An 1 à An 12 les blocs An,3 et An,6 sont divisés en quatre sous-blocs, et l'un de ces sous-blocs A4n,6 est divisé en quatre sous-blocs A4 l n 6, A4,2,6, A4 3n 6 et
A4,4n,6.
Thus, for example, in FIG. 11, the image fn is divided into twelve blocks An 1 to An 12 the blocks An, 3 and An, 6 are divided into four sub-blocks, and one of these sub-blocks A4n, 6 is divided into four sub-blocks A4 ln 6, A4,2,6, A4 3n 6 and
A4.4n, 6.

Comme déjà précisé, le codage d'une image fn de la séquence a pour résultat une image compressée hn comportant un ensemble de transformations (T,,) associé à un arbre quaternaire. As already specified, the coding of an image fn of the sequence results in a compressed image hn comprising a set of transformations (T ,,) associated with a quaternary tree.

L'algorithme de décodage correspondant à ce mode de réalisation est représenté à la figure 13 et comporte des étapes E200 à E300 respectivement analogues aux étapes E20 à E30 de l'algorithme décrit en référence à la figure 9 avec les modifications suivantes:
- les étapes E220 et E270 de sélection du premier bloc à reconstruire ARn,m et du bloc suivant, respectivement, comportent la lecture de l'arbre quaternaire associé à l'image, notamment pour déterminer la taille et la position du bloc à reconstruire.
The decoding algorithm corresponding to this embodiment is represented in FIG. 13 and comprises steps E200 to E300 respectively analogous to steps E20 to E30 of the algorithm described with reference to FIG. 9 with the following modifications:
the steps E220 and E270 of selecting the first block to be reconstructed ARn, m and of the following block, respectively, comprise the reading of the quaternary tree associated with the image, in particular to determine the size and the position of the block to be reconstructed.

- L'étape E270 est suivie de l'étape E230 de division de l'image de référence. - Step E270 is followed by step E230 of dividing the reference image.

Ces modifications sont nécessaires pour tenir compte de la taille et de la position des blocs lors du décodage ; notamment, la taille et la position des blocs source dépendent de celles du bloc à reconstruire.  These modifications are necessary to take account of the size and the position of the blocks during decoding; in particular, the size and the position of the source blocks depend on those of the block to be reconstructed.

Un autre mode de réalisation de procédé de codage selon l'invention est représenté à la figure 14, et comporte des étapes E51 à E67 mémorisées en mémoire 23 (figure 3). Par rapport au premier mode de réalisation, ce mode de réalisation consiste à rechercher tout d'abord, pour chaque bloc à coder, s'il peut être codé par mise en correspondance avec un bloc de l'image de référence. Si ce codage est possible, le bloc est codé par mise en correspondance de bloc (en Anglais : block matching) ; sinon, le bloc est codé au moyen d'une transformation déterminée comme dans le premier mode de réalisation. Another embodiment of the coding method according to the invention is shown in FIG. 14, and includes steps E51 to E67 stored in memory 23 (FIG. 3). Compared to the first embodiment, this embodiment consists in firstly finding, for each block to be coded, whether it can be coded by matching with a block of the reference image. If this coding is possible, the block is coded by block matching (in English: block matching); otherwise, the block is coded by means of a determined transformation as in the first embodiment.

Les étapes E51 à E56 sont identiques aux étapes El à E6 précédemment décrites en référence au premier mode de réalisation (figure 5). Steps E51 to E56 are identical to steps E1 to E6 previously described with reference to the first embodiment (FIG. 5).

L'étape E56 est suivie de l'étape E57 à laquelle le bloc à coder courant Anm est codé par mise en correspondance de bloc : il est recherché dans l'image de référence g1 un bloc de correspondance Dni,mj qui soit le plus semblable possible au bloc à coder, selon un critère prédéterminé, par exemple une mesure de distance d(Anm, Dn1mj) entre le bloc à coder et le bloc de correspondance. Comme exposé plus haut, différents types de distance peuvent être mis en oeuvre. Le bloc de correspondance pour lequel le critère est minimisé est sélectionné. Step E56 is followed by step E57 to which the current block to be coded Anm is coded by block matching: a reference block Dni, mj which is most similar is sought in the reference image g1 possible for the block to be coded, according to a predetermined criterion, for example a measurement of distance d (Anm, Dn1mj) between the block to be coded and the correspondence block. As explained above, different types of distance can be implemented. The match block for which the criterion is minimized is selected.

L'étape suivante E58 est un test pour vérifier si le critère est inférieur à un seuil prédéterminé. Si la réponse est positive, la position relative du bloc de correspondance Dni,mji dans l'image de référence go 1, par rapport à la position du bloc à coder An,m, dans l'image en cours de codage fn, c'est-à-dire le vecteur de mouvement Vn m j, est mémorisée en mémoire 25, à l'étape E59. Un indicateur In m est également mémorisé, pour indiquer que le bloc considéré est codé par mise en correspondance de bloc. Cet indicateur est par exemple un bit supplémentaire mis à la valeur un. Le vecteur de mouvement Vnmj et l'indicateur 1n,m représentent l'information de codage du bloc An,m.  The next step E58 is a test to check whether the criterion is below a predetermined threshold. If the answer is positive, the relative position of the correspondence block Dni, mji in the reference image go 1, with respect to the position of the block to be coded An, m, in the image being coded fn, c ' that is to say the motion vector Vn mj, is stored in memory 25, in step E59. An indicator In m is also stored, to indicate that the block in question is coded by block matching. This indicator is for example an additional bit set to the value one. The motion vector Vnmj and the indicator 1n, m represent the coding information of the block An, m.

L'étape E59 est suivie des étapes E63 à E67, respectivement identiques aux étapes E70 à E14 précédemment décrites.  Step E59 is followed by steps E63 to E67, respectively identical to steps E70 to E14 previously described.

Si la réponse est négative à l'étape E58, c'est-à-dire si le codage par mise en correspondance de bloc ne donne pas un résultat satisfaisant, l'étape
E58 est suivie des étapes E60 à E67, respectivement analogues aux étapes E7 à E14 précédemment décrites. L'étape E61 a pour résultat une transformation Tnm . L'indicateur In,m, par exemple le bit supplémentaire mis à la valeur zéro, est associé à chaque transformation Tn m.
If the answer is negative in step E58, that is to say if the coding by block matching does not give a satisfactory result, the step
E58 is followed by steps E60 to E67, respectively analogous to steps E7 to E14 previously described. Step E61 results in a transformation Tnm. The indicator In, m, for example the additional bit set to the value zero, is associated with each transformation Tn m.

En variante, les deux modes de réalisation précédents sont combinés . on essaie tout d'abord de coder les blocs par mise en correspondance de blocs, et ensuite, si ce premier codage n'est pas possible, au moyen d'une transformation ; les étapes de codage par détermination d'une transformation incluent alors la variation de la taille du bloc à coder en fonction d'un critère. Alternatively, the two previous embodiments are combined. we first try to code the blocks by matching blocks, and then, if this first coding is not possible, by means of a transformation; the steps of coding by determining a transformation then include the variation of the size of the block to be coded according to a criterion.

Le procédé de décodage correspondant au codage de la figure 14 est représenté à la figure 15 et comporte des étapes E70 à E91 mémorisées en mémoire 53 du dispositif 5 (figure 4). The decoding method corresponding to the coding in FIG. 14 is shown in FIG. 15 and includes steps E70 to E91 stored in memory 53 of the device 5 (FIG. 4).

Les étapes E70 à E73 sont respectivement identiques aux étapes
E20 à E23 décrites en référence à la figure 9.
Steps E70 to E73 are respectively identical to steps
E20 to E23 described with reference to Figure 9.

L'étape suivante E74 est un test pour déterminer si le bloc en cours de construction ARn,m a été codé par mise en correspondance de blocs. Le test consiste à analyser la valeur de l'indicateur Inm et à rechercher si l'indicateur ,m est à la valeur un. The next step E74 is a test to determine whether the block under construction ARn, m has been coded by block matching. The test consists in analyzing the value of the indicator Inm and in searching if the indicator, m is at the value one.

Si la réponse est positive, alors l'étape suivante E75 consiste à lire dans l'image de référence gn-1 le bloc de correspondance Dn 1 m j qui est déterminé par le vecteur de mouvement formant la forme compressée Vn m j et à recopier ce bloc en tant que bloc décodé Arum. L'étape E75 est suivie des étapes E78 à E91 qui sont respectivement identiques aux étapes E25 à E30 précédemment décrite (figure 9). If the answer is positive, then the following step E75 consists in reading in the reference image gn-1 the correspondence block Dn 1 mj which is determined by the motion vector forming the compressed form Vn mj and in copying this block as an Arum decoded block. Step E75 is followed by steps E78 to E91 which are respectively identical to steps E25 to E30 previously described (FIG. 9).

Si la réponse à l'étape E74 est négative, l'étape E74 est suivie des étapes E76 à E91 qui sont respectivement identiques aux étapes E24 à E30 précédemment décrites (figure 9).  If the response to step E74 is negative, step E74 is followed by steps E76 to E91 which are respectively identical to steps E24 to E30 previously described (FIG. 9).

Un autre mode de réalisation de procédé de codage selon l'invention est représenté à la figure 16 et comporte des étapes E401 à E414 mémorisées en mémoire 23 (figure 3). Another embodiment of the coding method according to the invention is shown in FIG. 16 and includes steps E401 to E414 stored in memory 23 (FIG. 3).

Par rapport au premier mode de réalisation, ce mode de réalisation consiste à diviser chaque image à coder en zones, à analyser les zones pour déterminer si elles sont fixes ou mobiles, puis à coder les zones fixes selon un procédé de codage d'image fixe, et les zones mobiles comme dans le premier mode de réalisation. Compared to the first embodiment, this embodiment consists in dividing each image to be coded into zones, in analyzing the zones to determine whether they are fixed or mobile, then in coding the fixed zones according to a method of coding a fixed image. , and the mobile zones as in the first embodiment.

L'étape E401 est la division de chacune des images en zones prédéterminées Zon,1 à Zn,El OÙ E est un entier valant cinq à titre d'exemple. La figure 17 représente l'image fn divisée en cinq zones Z,1 à Zn,E qui sont des bandes de même taille. Step E401 is the division of each of the images into predetermined zones Zon, 1 to Zn, El WHERE E is an integer equal to five by way of example. FIG. 17 represents the image fn divided into five zones Z, 1 to Zn, E which are bands of the same size.

L'étape suivante E402 est une analyse des zones pour déterminer si chacune des zones Zne est "fixe" ou "mobile". Par zone fixe, on entend une zone identique, ou très peu différente, de la zone ayant le même emplacement dans l'image précédente dans la séquence. Inversement, la zone est dite mobile si elle est suffisamment différente de la zone ayant le même emplacement dans l'image précédente dans la séquence. La différence entre la zone en cours de traitement et la zone ayant le même emplacement dans l'image précédente est évaluée par une mesure de distance entre les deux zones et la comparaison de la distance à un seuil. Comme exposé précédemment, différents types de distance sont envisageables. Un indicateur de zone lN ne est associé à chacune des zones pour indiquer si la zone considérée est fixe ou mobile. L'indicateur de zone lN n,e comporte par exemple un bit mis à un ou à zéro pour signifier zone fixe ou zone mobile. The next step E402 is an analysis of the zones to determine whether each of the zones Zne is "fixed" or "mobile". By fixed zone is meant an identical, or very little different, zone from the zone having the same location in the previous image in the sequence. Conversely, the area is said to be mobile if it is sufficiently different from the area having the same location in the previous image in the sequence. The difference between the area being processed and the area having the same location in the previous image is evaluated by measuring the distance between the two areas and comparing the distance to a threshold. As explained above, different types of distance are possible. A zone indicator lN is not associated with each of the zones to indicate whether the zone considered is fixed or mobile. The zone indicator lN n, e comprises for example a bit set to one or to zero to signify fixed zone or mobile zone.

L'étape E402 est suivie de l'étape E403, qui est une initialisation à laquelle le paramètre n est initialisé à un, pour considérer tout d'abord la première image f1 de la séquence. Step E402 is followed by step E403, which is an initialization at which the parameter n is initialized to one, to first consider the first image f1 of the sequence.

L'étape E403 est suivie de l'étape E404 à laquelle la première image f1 de la séquence est codée selon une méthode de codage d'image fixe. Cette méthode est par exemple une méthode de type JPEG (Joint Picture Expert
Group), ou le procédé de codage décrit dans la demande de brevet intilulée "Procédé et dispositif de codage et décodage de données, notamment d'images numériques" et déposée le même jour que la présente demande par la demanderesse. Le type de codage, en l'occurrence codage d'image fixe, est mémorisé par un indicateur. Cet indicateur n'est mémorisé que pendant le codage et n'est pas associé à la forme codée des zones de l'image f1. Le paramètre n est incrémenté de un pour considéré ensuite l'image suivante f2.
Step E403 is followed by step E404 in which the first image f1 of the sequence is coded according to a method of coding a fixed image. This method is for example a JPEG type method (Joint Picture Expert
Group), or the coding method described in the intilulated patent application "Method and device for coding and decoding data, in particular digital images" and filed on the same day as the present application by the applicant. The type of coding, in this case still image coding, is memorized by an indicator. This indicator is only memorized during coding and is not associated with the coded form of the areas of the image f1. The parameter n is incremented by one to then consider the following image f2.

L'étape suivante E405 est une initialisation d'un paramètre e à 1, pour considérer la première zone Zn 1 dans l'image courante fn.  The next step E405 is an initialization of a parameter e to 1, to consider the first zone Zn 1 in the current image fn.

L'étape suivante E406 est un test pour déterminer si la zone courante Zn,e est fixe ou mobile. Le test consiste à lire et analyser la valeur de l'indicateur de zone INn,e.  The next step E406 is a test to determine whether the current zone Zn, e is fixed or mobile. The test consists of reading and analyzing the value of the zone indicator INn, e.

Si la zone en cours de traitement Zn,e est mobile, l'étape E406 est suivie de l'étape E407 à laquelle la zone Zn.e est divisée en blocs, chaque bloc est ensuite codé par une transformation Tnm entre le bloc et des blocs source pris dans l'image de référence. L'étape E407 est équivalente aux étapes E2 et E5 à El 1 précédemment décrites (figure 5). If the zone being processed Zn, e is mobile, step E406 is followed by step E407 in which the zone Zn.e is divided into blocks, each block is then coded by a transformation Tnm between the block and source blocks taken from the reference image. Step E407 is equivalent to steps E2 and E5 to El 1 previously described (Figure 5).

Si la zone en cours de traitement Zn,e est fixe, l'étape E406 est suivie de l'étape E408 qui est un test pour déterminer si la zone a déjà été codée au cours du codage d'une image précédente. Ce test consiste à lire l'indicateur de type de codage de la zone considérée de l'image précédente. If the zone being processed Zn, e is fixed, step E406 is followed by step E408 which is a test to determine if the zone has already been coded during the coding of a previous image. This test consists in reading the coding type indicator of the zone considered in the previous image.

Si la réponse à l'étape E408 est négative, cette étape est suivie de l'étape E409 à laquelle la zone Zne est codée selon la méthode de codage d'image fixe, par exemple la méthode de type JPEG (Joint Picture Expert
Group), ou le procédé de codage décrit dans la demande de brevet intilulée "Procédé et dispositif de codage et décodage de données, notamment d'images numériques" et déposée le même jour que la présente demande par la demanderesse. L'indicateur de type de codage indique que la zone considérée est codée selon un codage d'image fixe.
If the response to step E408 is negative, this step is followed by step E409 in which the zone Zne is coded according to the method of coding a fixed image, for example the method of the JPEG type (Joint Picture Expert
Group), or the coding method described in the intilulated patent application "Method and device for coding and decoding data, in particular digital images" and filed on the same day as the present application by the applicant. The coding type indicator indicates that the zone in question is coded according to a still image coding.

Si la réponse est positive, la zone considérée n'est pas codée. Ainsi, une zone fixe dans plusieurs images successives est codée une seule fois pour la première de ces images, puis n'est pas codée pour les images suivantes. En conséquence, le codage est rapide et nécessite peu de bits. If the answer is positive, the zone considered is not coded. Thus, a fixed area in several successive images is coded only once for the first of these images, then is not coded for the following images. As a result, coding is fast and requires few bits.

L'étape suivante E410 est un test pour vérifier si e est égal à E, c'est-à-dire si la zone qui vient d'être codée est la dernière zone à coder de l'image courante fn. S'il reste au moins une zone à coder dans l'image fnl l'étape
E410 est suivie par l'étape E411 à laquelle le paramètre e est incrémenté de une unité, pour considérer la zone suivante dans l'image fn. L'étape E41 1 est suivie de l'étape E406 précédemment décrite.
The next step E410 is a test to check whether e is equal to E, that is to say if the zone which has just been coded is the last zone to be coded of the current image fn. If at least one area remains to be coded in the fnl image, the step
E410 is followed by step E411 in which the parameter e is incremented by one, to consider the next area in the image fn. Step E41 1 is followed by step E406 previously described.

Lorsque la zone qui vient d'être codée est la dernière de l'image courante, l'étape E410 est suivie de l'étape E412 qui est un test pour vérifier si l'image fn qui vient d'être compressée est la dernière de la séquence. Si ce n'est pas le cas, l'étape E412 est suivie de l'étape E413 qui est la construction des zones mobiles de l'image décompressée gn Une zone mobile est reconstruite par l'application de chacune des transformations Tn m précédemment déterminées aux blocs source pour former des blocs Au nom Les zones mobiles de l'image gn sont mémorisées en mémoire 25 pour être utilisées pour le codage des zones mobiles de l'image suivante fun+1.  When the zone which has just been coded is the last of the current image, step E410 is followed by step E412 which is a test to check whether the image fn which has just been compressed is the last of the sequence. If this is not the case, step E412 is followed by step E413 which is the construction of the mobile areas of the decompressed image gn A mobile area is reconstructed by the application of each of the transformations Tn m previously determined to the source blocks to form blocks In the name The mobile areas of the image gn are stored in memory 25 to be used for coding the mobile areas of the following image fun + 1.

L'étape E413 est suivie de l'étape E414 pour incrémenter le paramètre n de une unité. L'étape E414 est suivie de l'étape E402 précédemment décrite. Dans le cas où n=N, c'est-à-dire pour la dernière image de la séquence, il n'est pas nécessaire ici de reconstruire les zones mobiles de l'image gN
Lorsque la réponse à l'étape El 1 est positive, toutes les images f1 à fun de la séquence ont été compressées en des images compressées h1 à hN.
Step E413 is followed by step E414 to increment the parameter n by one. Step E414 is followed by step E402 previously described. In the case where n = N, that is to say for the last image of the sequence, it is not necessary here to reconstruct the mobile areas of the image gN
When the response to step E11 is positive, all the images f1 to fun of the sequence have been compressed into compressed images h1 to hN.

En variante, l'analyse des zones est effectuée au fur et à mesure du codage des images. As a variant, the analysis of the zones is carried out as the images are coded.

Le procédé de décodage correspondant au codage de la figure 16 est représenté à la figure 18 et comporte des étapes E520 à E530 mémorisées en mémoire 53 du dispositif 5 (figure 4). The decoding method corresponding to the coding in FIG. 16 is shown in FIG. 18 and includes steps E520 to E530 stored in memory 53 of the device 5 (FIG. 4).

L'étape E520 est une initialisation à laquelle le paramètre n est initialisé à 1, pour traiter la première image compressée h1 de la séquence.  Step E520 is an initialization at which the parameter n is initialized at 1, to process the first compressed image h1 of the sequence.

A l'étape suivante E521, la première image compressée h1 de la séquence est décodée selon une méthode qui dépend de la méthode de codage de l'étape E409 précédemment décrite. Le paramètre n est incrémenté de un pour passer à l'image suivante h2. In the next step E521, the first compressed image h1 of the sequence is decoded according to a method which depends on the coding method of step E409 previously described. The parameter n is incremented by one to go to the next image h2.

L'étape suivante E522 est l'initialisation du paramètre e à 1, pour considérer la première zone à reconstruire. Les zones sont de préférence traitées dans le même ordre qu'à la compression, ce qui évite d'avoir à mémoriser et à traiter un indice, ou des coordonnées, pour repérer les zones. The next step E522 is the initialization of the parameter e to 1, to consider the first area to be reconstructed. The zones are preferably treated in the same order as with compression, which avoids having to memorize and process an index, or coordinates, to locate the zones.

L'étape suivante E523 est un test pour déterminer si la zone courante a été codée en tant que zone fixe ou en tant que zone mobile. Le test consiste à lire la valeur de l'indicateur de zone IN,..  The next step E523 is a test to determine whether the current area has been coded as a fixed area or as a mobile area. The test consists in reading the value of the zone indicator IN, ..

Si la zone courante est une zone fixe, L'étape E523 est suivie de l'étape E524 à laquelle il est testé si la zone ayant le même emplacement dans l'image précédente a été décodée lors de la réalisation précédente de l'étape
E526.
If the current area is a fixed area, Step E523 is followed by step E524 in which it is tested whether the area having the same location in the previous image was decoded during the previous implementation of the step
E526.

Si la zone ayant le même emplacement dans l'image précédente a été décodée, cela signifie que la zone courante est identique à une zone déjà décodée. L'étape E524 est suivie de l'étape E525 à laquelle cette zone précédemment décodée est recopiée en tant que zone décodée pour la zone courante de l'image courante. Si la zone ayant le même emplacement dans l'image précédente n'a pas été décodée, L'étape E524 est suivie de l'étape
E526 à laquelle la zone courante est décodée selon une méthode qui dépend de la méthode de codage. Un indicateur de zone décodée est mémorisé pour être testé lors d'une réalisation ultérieure de l'étape E524. Ainsi, une zone qui est fixe dans plusieurs image successives est décodée pour la première de ces images puis est recopiée pour les images suivantes.
If the area with the same location in the previous image has been decoded, this means that the current area is identical to an area already decoded. Step E524 is followed by step E525 in which this previously decoded area is copied as a decoded area for the current area of the current image. If the area having the same location in the previous image has not been decoded, step E524 is followed by step
E526 to which the current area is decoded according to a method which depends on the coding method. A decoded area indicator is memorized to be tested during a subsequent execution of step E524. Thus, an area which is fixed in several successive images is decoded for the first of these images then is copied for the following images.

Si la zone courante est une zone mobile, l'étape E523 est suivie de l'étape E527 à laquelle la zone mobile est décodée. Des blocs source Dni,nn,i à Dn-l,m,K sont sélectionnés dans l'image de référence go 1, relativement à chaque bloc à reconstruire Art m de la zone courante. L'image de référence est sélectionnée de la même manière que pour le codage, la transformation Tn,m définie par les fonctions an,m,k et bn,m est appliquée aux blocs source Dn1m1 à Dn1.m,K sélectionnés, selon la formule:
ARn,m = Zk ( an,m,k X Dn-l,m,k) + bn,m.
If the current zone is a mobile zone, step E523 is followed by step E527 in which the mobile zone is decoded. Source blocks Dni, nn, i to Dn-l, m, K are selected in the reference image go 1, relative to each block to be reconstructed Art m of the current area. The reference image is selected in the same way as for coding, the transformation Tn, m defined by the functions an, m, k and bn, m is applied to the source blocks Dn1m1 to Dn1.m, K selected, according to the formula:
ARn, m = Zk (an, m, k X Dn-l, m, k) + bn, m.

L'étape E527 a pour résultat les blocs décodés ARn,m de la zone courante, qui sont mémorisés en mémoire 55. Step E527 results in the decoded blocks ARn, m of the current area, which are stored in memory 55.

L'étape suivante E528 est un test pour déterminer si la zone qui vient d'être décompressée est la dernière de l'image en cours de décompression. Si ce n'est pas le cas, l'étape E528 est suivie de l'étape E529 à laquell  The next step E528 is a test to determine whether the zone which has just been decompressed is the last of the image being decompressed. If not, step E528 is followed by step E529 where

Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier.  Of course, the present invention is not limited to the embodiments described and shown, but encompasses, quite the contrary, any variant within the reach of ordinary skill in the art.

Claims (38)

REVENDICATIONS 1. Procédé de codage d'un ensemble de données représentatives de grandeurs physiques, ledit ensemble étant composé de sous-ensembles (fn), 1. Method for coding a set of data representative of physical quantities, said set being composed of subsets (fn), caractérisé en ce qu'il comporte pour chacun des sous-ensembles, les étapes de: characterized in that it comprises, for each of the subsets, the steps of: - division (E2) du sous-ensemble en blocs de données à coder (An,m)7  - division (E2) of the subset into data blocks to be coded (An, m) 7 - division (E6) d'au moins un sous-ensemble de référence (gn-1) en blocs source, - division (E6) of at least one reference subset (gn-1) into source blocks, puis, pour chacun des blocs de données à codeur, les étapes de: then, for each of the coded data blocks, the steps of: - sélection (E7) d'un nombre prédéterminé de blocs source (Dn 1,m,1, i 1,m,K) dans ledit au moins un sous-ensemble de référence,  selection (E7) of a predetermined number of source blocks (Dn 1, m, 1, i 1, m, K) in said at least one reference subset, - détermination (E8) d'une transformation (Tnm) entre les blocs source sélectionnés et le bloc à coder. - determination (E8) of a transformation (Tnm) between the selected source blocks and the block to be coded. 2. Procédé de codage d'un ensemble de données représentatives de grandeurs physiques, ledit ensemble étant composé de sous-ensembles (fn), 2. Method for coding a set of data representative of physical quantities, said set being composed of subsets (fn), caractérisé en ce qu'il comporte pour chacun des sous-ensembles, les étapes de: characterized in that it comprises, for each of the subsets, the steps of: - division (E52) du sous-ensemble en blocs de données à coder, - division (E52) of the subset into data blocks to be coded, - division (E56) d'au moins un sous-ensemble de référence (go 1) en blocs source, - division (E56) of at least one reference subset (go 1) into source blocks, puis, pour chacun des blocs de données à coder, les étapes de: then, for each of the data blocks to be coded, the steps of: - mise en correspondance (E57) du bloc à coder avec l'un des blocs source, et, si un critère de correspondance n'est pas satisfait (E58), - matching (E57) of the block to be coded with one of the source blocks, and, if a matching criterion is not satisfied (E58), - sélection (E60) d'un nombre prédéterminé de blocs source (Dn 1,m,1, i 1,m,K) dans ledit au moins un sous-ensemble de référence, - selection (E60) of a predetermined number of source blocks (Dn 1, m, 1, i 1, m, K) in said at least one reference subset, - détermination (E61) d'une transformation entre les blocs source sélectionnés et le bloc à coder.  - determination (E61) of a transformation between the selected source blocks and the block to be coded. 3. Procédé de codage selon la revendication 2, caractérisé en ce que le critère de correspondance de l'étape de mise en correspondance comporte une mesure d'une première distance entre le bloc à coder (An,m) et le bloc source (Dni,mj).  3. Coding method according to claim 2, characterized in that the matching criterion of the matching step comprises a measurement of a first distance between the block to be coded (An, m) and the source block (Dni , mj). 4. Procédé de codage d'un ensemble de données représentatives de grandeurs physiques, ledit ensemble étant composé de sous-ensembles (fn), 4. Method for coding a set of data representative of physical quantities, said set being composed of subsets (fn), caractérisé en ce qu'il comporte pour chacun des sous-ensembles, les étapes de: characterized in that it comprises, for each of the subsets, the steps of: - division (E401) du sous-ensemble en zones (Zn,1 à Zn,E),  - division (E401) of the subset into zones (Zn, 1 to Zn, E), - détermination (E402) du type de chaque zone, parmi un premier type de zone et un second type de zone, en fonction d'un critère de zone, - determination (E402) of the type of each zone, from a first type of zone and a second type of zone, according to a criterion of zone, - division (E407) de chaque zone de second type en blocs de données à coder (An,m), - division (E407) of each second type area into data blocks to be coded (An, m), - division (E407) d'au moins un sous-ensemble de référence (gn-1) en blocs source, - division (E407) of at least one reference subset (gn-1) into source blocks, puis, pour chacun des blocs de données à coder, les étapes de: then, for each of the data blocks to be coded, the steps of: - sélection (E407) d'un nombre prédéterminé de blocs source (Dn 1,m,1, i 1,m,K) dans ledit au moins un sous-ensemble de référence,  - selection (E407) of a predetermined number of source blocks (Dn 1, m, 1, i 1, m, K) in said at least one reference subset, - détermination (E407) d'une transformation (Tn,m) entre les blocs source sélectionnés et le bloc à coder. - determination (E407) of a transformation (Tn, m) between the selected source blocks and the block to be coded. 5. Procédé de codage selon la revendication 4, caractérisé en ce qu'il comporte le calcul (E406) d'une seconde distance entre chaque zone et une zone correspondante dans un sous-ensemble adjacent, en ce que le critère de zone consiste à comparer cette distance à un seuil, et en ce que, si cette distance est inférieure au seuil, la zone considérée est de premier type, et de second type sinon. 5. Coding method according to claim 4, characterized in that it comprises the calculation (E406) of a second distance between each zone and a corresponding zone in an adjacent subset, in that the zone criterion consists in compare this distance to a threshold, and in that, if this distance is less than the threshold, the zone considered is of the first type, and of the second type otherwise. 6. Procédé de codage selon l'une quelconque des revendications 1 à 5, caractérisé en ce que la transformation minimise une troisième distance (d(Anm, Tn,m)) entre le bloc à coder (An,m) et son approximation calculée en appliquant la transformation aux blocs source sélectionnés (Dn.i,m,i s Dni,m,K)  6. Coding method according to any one of claims 1 to 5, characterized in that the transformation minimizes a third distance (d (Anm, Tn, m)) between the block to be coded (An, m) and its calculated approximation by applying the transformation to the selected source blocks (Dn.i, m, is Dni, m, K) 7. Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la transformation est une approximation multilinéaire. 7. Coding method according to any one of claims 1 to 6, characterized in that the transformation is a multilinear approximation. 8. Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la transformation est une approximation multilinéaire combinée avec une transformation géométrique. 8. Coding method according to any one of claims 1 to 6, characterized in that the transformation is a multilinear approximation combined with a geometric transformation. 9. Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la transformation est un polynôme sur les valeurs des coefficients des blocs source. 9. Coding method according to any one of claims 1 to 6, characterized in that the transformation is a polynomial on the values of the coefficients of the source blocks. 10. Procédé de codage selon l'une quelconque des revendications 6 à 9, caractérisé en ce que le calcul de la troisième distance comporte le calcul d'une différence entre les valeurs des données du bloc à coder et les valeurs de son approximation calculée en appliquant la transformation aux blocs source. 10. Coding method according to any one of claims 6 to 9, characterized in that the calculation of the third distance comprises the calculation of a difference between the values of the data of the block to be coded and the values of its approximation calculated in applying the transformation to the source blocks. 11. Procédé de codage selon l'une quelconque des revendications 6 à 11, caractérisé en ce que la troisième distance est l'erreur quadratique moyenne calculée entre les valeurs du bloc à coder (An,m) et les valeurs du bloc résultant de l'application de l'approximation aux blocs source (Dn.i,m,i à Dni,m.K).  11. Coding method according to any one of claims 6 to 11, characterized in that the third distance is the mean square error calculated between the values of the block to be coded (An, m) and the values of the block resulting from l application of the approximation to the source blocks (Dn.i, m, i to Dni, mK). 12. Procédé de codage selon l'une quelconque des revendications 1 à 11, caractérisé en ce que, pour le premier sous-ensemble à coder, ledit au moins un sous-ensemble de référence (g0) est un sous-ensemble prédéterminé. 12. Coding method according to any one of claims 1 to 11, characterized in that, for the first subset to be coded, said at least one reference subset (g0) is a predetermined subset. 13. Procédé de codage selon l'une quelconque des revendications 1 à 11, caractérisé en ce que ledit au moins un sous-ensemble de référence est un sous-ensemble de l'ensemble. 13. Coding method according to any one of claims 1 to 11, characterized in that said at least one reference subset is a subset of the set. 14. Procédé de codage selon l'une quelconque des revendications 1 à 11, caractérisé en ce que ledit au moins un sous-ensemble de référence est un sous-ensemble (go 1) de l'ensemble, qui a été préalablement codé puis décodé. 14. Coding method according to any one of claims 1 to 11, characterized in that said at least one reference subset is a subset (go 1) of the set, which has been previously coded and then decoded . 15. Procédé de codage selon l'une quelconque des revendications 1 à 14, caractérisé en ce qu'au moins deux sous-ensembles de référence sont considérés, dont au moins un premier est situé parmi les sous-ensembles précédants le sous-ensemble en cours de codage et au moins un second est situé parmi les sous-ensembles suivants le sous-ensemble en cours de codage. 15. Coding method according to any one of claims 1 to 14, characterized in that at least two reference subsets are considered, at least one of which is located among the subsets preceding the subset in coding course and at least a second is located among the subsets following the subset being coded. 16. Procédé de codage selon l'une quelconque des revendications 1 à 15, caractérisé en ce que les blocs source (Dn1m1 , Dn1,mK) sont sélectionnés dans une partie du sous-ensemble de référence (gn-1) qui dépend de la partie dans laquelle est situé le bloc à coder (An,m) dans le sous-ensemble en cours de codage (fn). 16. Coding method according to any one of claims 1 to 15, characterized in that the source blocks (Dn1m1, Dn1, mK) are selected from a part of the reference subset (gn-1) which depends on the part in which the block to be coded (An, m) is located in the subset being coded (fn). 17. Procédé de codage selon l'une quelconque des revendications 1 à 15, caractérisé en ce que les blocs source (Dn1,m,1,Dn1mK) ont une taille qui est déterminée en fonction de la taille du bloc à coder (An,m).  17. Coding method according to any one of claims 1 to 15, characterized in that the source blocks (Dn1, m, 1, Dn1mK) have a size which is determined as a function of the size of the block to be coded (An, m). 18. Procédé de codage selon l'une quelconque des revendications 1 à 17, caractérisé en ce que les blocs source (Dn 1,m,1, i 1,m,K) ont une taille multiple d'un facteur F2 de celle du bloc à coder (An,m) et sont souséchantillonnés du facteur F, où F est un entier. 18. Coding method according to any one of claims 1 to 17, characterized in that the source blocks (Dn 1, m, 1, i 1, m, K) have a size multiple of a factor F2 of that of block to be coded (An, m) and are subsampled by the factor F, where F is an integer. 19. Procédé de codage selon l'une quelconque des revendications 1 à 17, caractérisé en ce que les blocs source (Dn 1,m,1, i 1,m,K) ont la même taille que le bloc à coder (An,m).  19. Coding method according to any one of claims 1 to 17, characterized in that the source blocks (Dn 1, m, 1, i 1, m, K) have the same size as the block to be coded (An, m). 20. Procédé de codage selon l'une quelconque des revendications 1 à 19, caractérisé en ce que le bloc à coder (Anm) est de taille prédéterminée. 20. Coding method according to any one of claims 1 to 19, characterized in that the block to be coded (Anm) is of predetermined size. 21. Procédé de codage selon l'une quelconque des revendications 1 à 19, caractérisé en ce que le bloc à coder (Anm) est de taille variable, en fonction d'un critère de taille. 21. Coding method according to any one of claims 1 to 19, characterized in that the block to be coded (Anm) is of variable size, according to a size criterion. 22. Procédé de codage selon la revendication 21, caractérisé en ce qu'il comporte le calcul (E38) d'une quatrième distance entre le bloc à coder et l'approximation calculée par l'application de la transformation aux blocs source, en ce que le critère de taille consiste à comparer (E39) la quatrième distance à un seuil, et en ce que si la quatrième distance est supérieure au seuil, et si une taille minimale de bloc n'a pas été atteinte, le bloc en cours de codage est divisé (E47) en blocs de taille inférieure.  22. Coding method according to claim 21, characterized in that it comprises the calculation (E38) of a fourth distance between the block to be coded and the approximation calculated by applying the transformation to the source blocks, in that that the size criterion consists in comparing (E39) the fourth distance to a threshold, and in that if the fourth distance is greater than the threshold, and if a minimum block size has not been reached, the block in progress coding is divided (E47) into blocks of smaller size. 23. Procédé de décodage d'un ensemble de données représentatives de grandeurs physiques, L'ensemble étant composé de sousensembles (hn) qui comportent chacun des représentations codées de blocs de données, chacun des blocs étant codé au moyen d'une transformation (Tn,m) entre des blocs source sélectionnés dans au moins un sous-ensemble de référence et le bloc, 23. Method for decoding a set of data representative of physical quantities, the set being composed of subsets (hn) which each include coded representations of data blocks, each of the blocks being coded by means of a transformation (Tn , m) between source blocks selected in at least one reference subset and the block, caractérisé en ce qu'il comporte, pour chacun des blocs de chacun des sous-ensembles à décoder, l'étape d'application (E25) de la transformation aux blocs source pour décoder le bloc (ARn,m).  characterized in that it comprises, for each of the blocks of each of the subsets to be decoded, the step of applying (E25) the transformation to the source blocks to decode the block (ARn, m). 24. Procédé de décodage d'un ensemble de données représentatives de grandeurs physiques, L'ensemble étant composé de sousensembles (hn) qui comportent chacun des représentations codées de blocs de données, 24. Method for decoding a set of data representative of physical quantities, the set being composed of subsets (hn) which each include coded representations of data blocks, caractérisé en ce qu il comporte, pour chacun des blocs de chacun des sous-ensembles à décoder, les étapes de: characterized in that it comprises, for each of the blocks of each of the subsets to be decoded, the steps of: - recherche (E74) si le bloc est codé par mise en correspondance de blocs, - search (E74) if the block is coded by matching of blocks, et, en cas de réponse négative, le bloc étant alors codé au moyen d'une transformation (Tn,m) entre des blocs source sélectionnés dans au moins un sous-ensemble de référence et le bloc: and, in the event of a negative response, the block then being coded by means of a transformation (Tn, m) between source blocks selected in at least one reference subset and the block: - application (E77) de la transformation aux blocs source pour décoder le bloc. - application (E77) of the transformation to the source blocks to decode the block. 25. Procédé de décodage selon la revendication 24, caractérisé en ce que, en cas de réponse positive à l'étape de recherche, le bloc est décodé par recopie d'un bloc de correspondance déterminé par la mise en correspondance de blocs. 25. A decoding method according to claim 24, characterized in that, in the event of a positive response to the search step, the block is decoded by copying a correspondence block determined by the matching of blocks. 26. Procédé de décodage selon l'une quelconque des revendications 23 à 25, caractérisé en ce qu'il comporte la lecture (E220, E270) de la taille et de la position des blocs à décoder. 26. A decoding method according to any one of claims 23 to 25, characterized in that it comprises the reading (E220, E270) of the size and the position of the blocks to be decoded. 27. Procédé de décodage d'un ensemble de données représentatives de grandeurs physiques, L'ensemble étant composé de sous ensembles (hn) qui comportent chacun des représentations codées de zones appartenant à un premier ou un second type de zone, les représentations codées du second type de zone étant réalisées par blocs de données, 27. Method for decoding a set of data representative of physical quantities, the set being composed of subsets (hn) which each include coded representations of areas belonging to a first or a second type of area, the coded representations of the second type of area being produced by data blocks, caractérisé en ce qu'il comporte, pour chacun des blocs des zones de second type de chacun des sous-ensembles à décoder, l'étape d'application (E525) de la transformation aux blocs source pour décoder le bloc. characterized in that it comprises, for each of the blocks of the second type areas of each of the subsets to be decoded, the step of applying (E525) the transformation to the source blocks to decode the block. 28. Dispositif de codage (2) d'un ensemble de données représentatives de grandeurs physiques, ledit ensemble étant composé de sous-ensembles (fn)l  28. Coding device (2) for a set of data representative of physical quantities, said set being composed of subsets (fn) l caractérisé en ce qu'il comporte (24): characterized in that it comprises (24): - des moyens de division des sous-ensembles (fn) en blocs de données à coder (An,m),  means for dividing the subsets (fn) into data blocks to be coded (An, m), - des moyens de division d'au moins un sous-ensemble de référence (go 1) en blocs source, pour chacun des sous-ensembles, means for dividing at least one reference subset (go 1) into source blocks, for each of the subsets, - des moyens de sélection d'un nombre prédéterminé de blocs source (Dn 1,m,1, i 1,m,K) dans ledit au moins un sous-ensemble de référence (gon 1), pour chacun des blocs de données à coder (An m) de chacun des sousensembles (fn), et means for selecting a predetermined number of source blocks (Dn 1, m, 1, i 1, m, K) in said at least one reference subset (gon 1), for each of the data blocks to code (An m) of each of the subsets (fn), and - des moyens de détermination d'une transformation (Tnm) entre les blocs source sélectionnés et le bloc à coder. - Means for determining a transformation (Tnm) between the selected source blocks and the block to be coded. 29. Dispositif de codage (2) d'un ensemble de données représentatives de grandeurs physiques, ledit ensemble étant composé de sous-ensembles (fn), 29. Coding device (2) of a set of data representative of physical quantities, said set being composed of subsets (fn), caractérisé en ce qu'il comporte (24): characterized in that it comprises (24): - des moyens de division des sous-ensembles en blocs de données à coder (An,m),  means for dividing the subsets into data blocks to be coded (An, m), - des moyens de division d'au moins un sous-ensemble de référence (gon 1) en blocs source, pour chacun des sous-ensembles, means for dividing at least one reference subset (gon 1) into source blocks, for each of the subsets, - des moyens de mise en correspondance, pour chacun des blocs de données à coder, du bloc à coder avec l'un des blocs source, et, si un critère de correspondance n'est pas satisfait,  means for matching, for each of the data blocks to be coded, the block to be coded with one of the source blocks, and, if a correspondence criterion is not satisfied, - des moyens de sélection d'un nombre prédéterminé de blocs source (Dn 1 m 1 . Dni,m,K) dans ledit au moins un sous-ensemble de référence, pour chacun des blocs de données de chacun des sous-ensembles, et means for selecting a predetermined number of source blocks (Dn 1 m 1. Dni, m, K) in said at least one reference subset, for each of the data blocks of each of the subsets, and - des moyens de détermination d'une transformation (Tn,m) entre les blocs source sélectionnés et le bloc à coder. means for determining a transformation (Tn, m) between the selected source blocks and the block to be coded. 30. Dispositif de codage (2) d'un ensemble de données représentatives de grandeurs physiques, ledit ensemble étant composé de sous-ensembles (fn), 30. Coding device (2) of a set of data representative of physical quantities, said set being composed of subsets (fn), caractérisé en ce qu'il comporte (24): characterized in that it comprises (24): - des moyens de division du sous-ensemble en zones (Zn1 à Zn E).  - means for dividing the subset into zones (Zn1 to Zn E). - des moyens de détermination d'une transformation (Tn,m) entre les blocs source sélectionnés et le bloc à coder. means for determining a transformation (Tn, m) between the selected source blocks and the block to be coded. - des moyens de sélection d'un nombre prédéterminé de blocs source (Dn-1,m,1 . Dni,m,K) dans ledit au moins un sous-ensemble de référence, pour chacun des blocs de données des zones de second type des sousensembles, et means for selecting a predetermined number of source blocks (Dn-1, m, 1. Dni, m, K) in said at least one reference subset, for each of the data blocks of the second type areas subsets, and - des moyens de division d'au moins un sous-ensemble de référence (gon 1) en blocs source, means for dividing at least one reference subset (gon 1) into source blocks, - des moyens de division de chaque zone de second type en blocs de données à coder (An m),  means for dividing each second type area into data blocks to be coded (An m), - des moyens de détermination du type de chaque zone, parmi un premier type de zone et un second type de zone, en fonction d'un critère de zone, means for determining the type of each zone, from a first type of zone and a second type of zone, according to a zone criterion, 31. Dispositif de codage selon l'une quelconque des revendications 28 à 30, caractérisé en ce que les moyens de division, sélection et détermination sont incorporés dans: 31. Coding device according to any one of claims 28 to 30, characterized in that the means of division, selection and determination are incorporated in: - un contrôleur (24), - a controller (24), - une mémoire morte (23) comportant un programme pour coder chacun des blocs de données, et - a read only memory (23) comprising a program for coding each of the data blocks, and - une mémoire vive (25) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme.  - a random access memory (25) comprising registers adapted to record variables modified during the execution of said program. 32. Dispositif de décodage (5) d'un ensemble de données représentatives de grandeurs physiques, L'ensemble étant composé de sousensembles (hn) qui comportent chacun des représentations codées de blocs de données, chacun des blocs étant codé au moyen d'une transformation entre des blocs source sélectionnés dans un sous-ensemble de référence (g-j) et le bloc, 32. Decoding device (5) for a set of data representative of physical quantities, the set being composed of subsets (hn) which each include coded representations of data blocks, each of the blocks being coded by means of a transformation between source blocks selected in a reference subset (gj) and the block, caractérisé en ce qu'il comporte des moyens (54) d'application de la transformation aux blocs source, pour chacun des blocs de chacun des sousensembles à décoder. characterized in that it comprises means (54) for applying the transformation to the source blocks, for each of the blocks of each of the subsets to be decoded. 33. Dispositif de décodage (5) d'un ensemble de données représentatives de grandeurs physiques, L'ensemble étant composé de sousensembles (hn) qui comportent chacun des représentations codées de blocs de données, 33. Decoding device (5) of a set of data representative of physical quantities, the set being composed of subsets (hn) which each include coded representations of data blocks, caractérisé en ce qu'il comporte (54): characterized in that it comprises (54): - des moyens de recherche, pour chacun des blocs (An,m) de chacun des sous-ensembles à décoder, si le bloc est codé par mise en correspondance de blocs, - search means, for each of the blocks (An, m) of each of the subsets to be decoded, if the block is coded by matching of blocks, et en cas de réponse négative, le bloc étant alors codé au moyen d'une transformation (Tn,m) entre des blocs source sélectionnés dans un sousensemble de référence et le bloc: and in the event of a negative response, the block then being coded by means of a transformation (Tn, m) between source blocks selected in a reference subset and the block: - des moyens d'application de la transformation aux blocs source pour reconstruire le bloc (ARn,m). - means of applying the transformation to the source blocks to reconstruct the block (ARn, m). 34. Dispositif de décodage selon la revendication 32 ou 33, caractérisé en ce qu'il comporte des moyens de lecture de la taille et de la position des blocs à décoder. 34. Decoding device according to claim 32 or 33, characterized in that it comprises means for reading the size and the position of the blocks to be decoded. 35. Dispositif de décodage d'un ensemble de données représentatives de grandeurs physiques, L'ensemble étant composé de sousensembles (hn) qui comportent chacun des représentations codées de zones appartenant à un premier ou un second type de zone, les représentations codées du second type de zone étant réalisées par blocs de données,  35. Device for decoding a set of data representative of physical quantities, the set being composed of subsets (hn) which each include coded representations of zones belonging to a first or a second type of zone, the coded representations of the second type of area being carried out by data blocks, caractérisé en ce qu'il comporte des moyens d'application de la transformation aux blocs source, pour chacun des blocs des zones de second type de chacun des sous-ensembles à décoder. characterized in that it comprises means for applying the transformation to the source blocks, for each of the blocks of the second type areas of each of the subsets to be decoded. 36. Dispositif de décodage selon l'une quelconque des revendications 32 à 34, caractérisé en ce que les moyens d'application sont incorporés dans: 36. Decoding device according to any one of claims 32 to 34, characterized in that the application means are incorporated in: - un contrôleur (54), - a controller (54), - une mémoire morte (53) comportant un programme pour décoder chacun des blocs de données, et - a read only memory (53) comprising a program for decoding each of the data blocks, and - une mémoire vive (55) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. - A random access memory (55) comprising registers adapted to record variables modified during the execution of said program. 37. Appareil numérique comportant des moyens adaptés à mettre en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 22, et/ou des moyens adaptés à mettre en oeuvre le procédé de décodage selon l'une quelconque des revendications 23 à 27. 37. Digital apparatus comprising means suitable for implementing the coding method according to any one of claims 1 to 22, and / or means suitable for implementing the decoding method according to any one of claims 23 to 27. 38. Appareil numérique comportant le dispositif de codage selon l'une quelconque des revendications 28 à 31, et/ou le dispositif de décodage selon l'une quelconque des revendications 32 à 36.  38. Digital apparatus comprising the coding device according to any one of claims 28 to 31, and / or the decoding device according to any one of claims 32 to 36.
FR9708647A 1997-07-08 1997-07-08 Compressed data coding-decoding method Pending FR2766033A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR9708647A FR2766033A1 (en) 1997-07-08 1997-07-08 Compressed data coding-decoding method
EP98401708A EP0891100A1 (en) 1997-07-08 1998-07-06 Method and device for coding and decoding data, notably digital images and sequences of digital images
JP10208625A JP2000196460A (en) 1997-07-08 1998-07-08 Method and device for encoding and decoding concerned digital image data and continued digital image data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9708647A FR2766033A1 (en) 1997-07-08 1997-07-08 Compressed data coding-decoding method

Publications (1)

Publication Number Publication Date
FR2766033A1 true FR2766033A1 (en) 1999-01-15

Family

ID=9508996

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9708647A Pending FR2766033A1 (en) 1997-07-08 1997-07-08 Compressed data coding-decoding method

Country Status (1)

Country Link
FR (1) FR2766033A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0248711A1 (en) * 1986-05-29 1987-12-09 Jacques Guichard Method of transform coding for the transmission of image signals
US5416856A (en) * 1992-03-30 1995-05-16 The United States Of America As Represented By The Secretary Of The Navy Method of encoding a digital image using iterated image transformations to form an eventually contractive map
EP0749245A2 (en) * 1995-06-12 1996-12-18 ALCATEL ITALIA S.p.A. Method and equipment for coding and decoding a digital image

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0248711A1 (en) * 1986-05-29 1987-12-09 Jacques Guichard Method of transform coding for the transmission of image signals
US5416856A (en) * 1992-03-30 1995-05-16 The United States Of America As Represented By The Secretary Of The Navy Method of encoding a digital image using iterated image transformations to form an eventually contractive map
EP0749245A2 (en) * 1995-06-12 1996-12-18 ALCATEL ITALIA S.p.A. Method and equipment for coding and decoding a digital image

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ANDONOVA S ET AL: "VIDEO CODING USING FRACTAL-BASED IMAGE COMPRESSION", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN, AND CYBERNETICS, SAN ANTONIO, OCT. 2 - 5, 1994, vol. 1 OF 3, 2 October 1994 (1994-10-02), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 343 - 348, XP000530699 *
GHARAVI-ALKHANSARI M ET AL: "FRACTAL-BASED TECHNIQUES FOR A GENERALIZED IMAGE CODING METHOD", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (IC, AUSTIN, NOV. 13 - 16, 1994, vol. 3, 13 November 1994 (1994-11-13), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 122 - 126, XP000572262 *
JACQUIN A E: "IMAGE CODING BASED ON A FRACTAL THEORY OF ITERATED CONTRACTIVE IMAGE TRANSFORMATIONS", IEEE TRANSACTIONS ON IMAGE PROCESSING, vol. 1, no. 1, 1 January 1992 (1992-01-01), pages 18 - 30, XP000367530 *
LEPSOY S ET AL: "ATTRACTOR IMAGE COMPRESSION WITH A FAST NON-ITERATIVE DECODING ALGORITHM", IMAGE AND MULTIDIMENSIONAL SIGNAL PROCESSING, MINNEAPOLIS, APR. 27 - 30, 1993, vol. 5 OF 5, 27 April 1993 (1993-04-27), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages V-337 - V-340, XP000437679 *

Similar Documents

Publication Publication Date Title
EP0448491B1 (en) Method of coding and transmitting digital images of an image sequence with at least two quality levels and corresponding devices
EP0310175B1 (en) Coding device for digital video signals, and decoding device therefor
EP0654910B1 (en) Iterative decoding method for concatenated block codes
FR2889382A1 (en) Multidimensional digital signal e.g. digital image, filtering method for e.g. coding device, involves obtaining filtering value of filtered sample in selecting one value among simulated filtering values of sample based on preset criterion
EP1603341B1 (en) Method and device for image interpolation systems using motion estimation and compensation
FR2846835A1 (en) Data e.g. digital image coding process for digital camera and photocopier, involves selecting coding mode based on coding costs calculated according to same throughput-distortion bias for overall image
EP1591962A2 (en) Method and device for generating candidate vectors for image interpolation systems using motion estimation and compensation
EP0332553B1 (en) Method for reallocating the choice of processing for sub-sampling upon the criterium of a bit rate reduction of assistance data which serve in the reconstruction of a sub-sampled electronic image
EP0117161B1 (en) Method and device for the digital coding of a picture, in particular a television picture
EP0053064B1 (en) Digital transmission system with adaptive coding of sampled and orthogonally transformed analogue information
FR2766033A1 (en) Compressed data coding-decoding method
FR2816138A1 (en) DECODING OF DIGITAL DATA
EP1812903A1 (en) Method of coding wavelet-coded images with data rate control and corresponding coding device and computer program
FR2776411A1 (en) Method and device for coding and decoding sequence of digital image data
FR2769454A1 (en) Digital images coding and decoding method e.g. for gray level images, color images
EP0427653A1 (en) System for the compression of digital images belonging to a sequence of images using adaptive quantisation with psycho-visual transformation function
FR2766034A1 (en) Compressed data coding-decoding method
WO2004112398A1 (en) Method and device for encoding and decoding a video image sequence
FR2717927A1 (en) Compression, palette generation, emission and reception of colour images
EP0524871B1 (en) Method of adaptive hybrid signal coding
WO2022263297A1 (en) Methods and devices for decoding at least part of a data stream, computer program and associated data streams
FR2848765A1 (en) Digital image JPEG signal data configuration determination procedure determines minimum data rate reduction for resolution as function of signal quality
EP0348321A1 (en) Method of regulating the auxiliary data rate for the reconstruction of undersampled electronic images
FR2788641A1 (en) Coding and decoding of digital signals for image processing
WO2023247208A1 (en) Method for segmenting a plurality of data, and corresponding coding method, decoding method, devices, systems and computer program