FR2724792A1 - DATA COMPRESSION METHOD USING REVERSIBLE IMPLANTED ELEMENTARY WAVES - Google Patents

DATA COMPRESSION METHOD USING REVERSIBLE IMPLANTED ELEMENTARY WAVES Download PDF

Info

Publication number
FR2724792A1
FR2724792A1 FR9511024A FR9511024A FR2724792A1 FR 2724792 A1 FR2724792 A1 FR 2724792A1 FR 9511024 A FR9511024 A FR 9511024A FR 9511024 A FR9511024 A FR 9511024A FR 2724792 A1 FR2724792 A1 FR 2724792A1
Authority
FR
France
Prior art keywords
coefficients
data
memory
coding
coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9511024A
Other languages
French (fr)
Other versions
FR2724792B1 (en
Inventor
Ahmad Zandi
James D Allen
Edward L Schwartz
Martin Boliek
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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
Priority claimed from US08/310,146 external-priority patent/US5748786A/en
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of FR2724792A1 publication Critical patent/FR2724792A1/en
Application granted granted Critical
Publication of FR2724792B1 publication Critical patent/FR2724792B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/148Wavelet transforms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G7/00Volume compression or expansion in amplifiers
    • H03G7/007Volume compression or expansion in amplifiers of digital or coded signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • 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
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • 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
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • 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/98Adaptive-dynamic-range coding [ADRC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Discrete Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

L'invention concerne un procédé de codage et de décodage de données. Le procédé produit des signaux transformés en réponse à des données d'entrée (101). Les signaux transformés sont obtenus à l'aide d'une transformation par ondes élémentaires réversible (102). La décomposition des données d'entrée s'effectue à l'aide d'un filtre réversible de longueur non minimale (103). Ce filtre comprend plusieurs filtres unidimensionnels.The invention relates to a method for encoding and decoding data. The method produces transformed signals in response to input data (101). The transformed signals are obtained using a reversible elementary wave transformation (102). The decomposition of the input data is carried out using a non-minimum length reversible filter (103). This filter includes several one-dimensional filters.

Description

La présente invention concerne les systèmes de compression et deThe present invention relates to compression and

décompression de données; plus particulièrement, l'invention concerne un proc6dé et un appareil de codage et de décodage de données avec ou sans pertes dans un  data decompression; more particularly, the invention relates to a method and apparatus for encoding and decoding data with or without loss in a

système de compression et de décompression.  compression and decompression system.

La compression des données est un outil extrêmement utile pour l'enregistrement et la transmission de grandes quantités de données. Par exemple, on réduit fortement le temps nécessaire à la transmission d'une image, par exemple la transmission d'un document en télécopie, lorsqu'on fait appel à une compression  Data compression is an extremely useful tool for recording and transmitting large amounts of data. For example, greatly reduces the time required for the transmission of an image, for example the transmission of a document in fax, when using a compression

pour réduire le nombre de bits nécessaires à la re-création d'imagc.  to reduce the number of bits needed to re-create imagc.

Il existe de nombreuses techniques différentes de compression de données. Les techniques de compression se divisent en deux grandes catégories, le codage avec pertes et le codage et sans pertes. Un codage avec pertes signifie un codage qui amène des pertes d'informations, de sorte qu'il n'existe aucune garantie qu'on puisse reconstituer parfaitement les données initiales. Dans la compression avec pertes, le but visé est que les modifications apportées aux données initiales ne soient pas préjudiciables ou détectables. Dans la compression sans pertes, toutes les informations sont conservées et les données sont comprimées d'une manière qui  There are many different techniques of data compression. Compression techniques fall into two broad categories, lossy coding and coding and lossless. Lossy coding means coding that causes loss of information, so there is no guarantee that the original data can be reconstructed perfectly. In lossy compression, the goal is that changes to the original data are not detrimental or detectable. In lossless compression, all the information is kept and the data is compressed in a way that

permet une reconstruction parfaite.allows a perfect reconstruction.

Dans la compression sans pertes, on convertit des données d'intensité ou des symboles d'entrée en des mots codés de sortie. Les signaux d'entrée peuvent comporter des données d'images, des données audio, des données unidimensionnelles (par exemple des données qui varient dans l'espace ou dans le temps), des données bidimensionnelles (par exemple des données qui varient dans deux directions de l'espace ou dans une direction de l'espace et dans le temps), ou des données multidimensionnelles et, ou bien, multispectrales. Si la compression est réussie, les mots codés sont représentés à l'aide de moins de bits que le nombre nécessaire pour former les symboles d'entrée non codés (ou les données d'intensité). Les procédés de codage sans pertes comprennent des procédés du type dictionnaire de codage (par exemple Lempel-Ziv), le codage de la longueur des points mémoire, le codage énumératif et le codage entropique. Dans la compression d'images sans pertes, la compression repose sur des prédictions ou des contextes, plus un codage. La norme JBIG de compression pour télécopieurs et la DPCM (modulation différentielle par impulsions codées, qui est une option de la norme JPEG) pour images à modelé continu sont des exemples de compression sans pertes appliquée à des images. Dans la compression avec pertes, on quantifie les symboles d'entrée ou les données d'intensité avant la conversion en mots codés de sortie. La quantification vise à préserver les caractéristiqucs voulues des données tout en éliminant les caractéristiques dépourvues d'importance. Avant la quantification, le système de compression avec pertes fait souvent appel à une transformation réalisant une certaine compaction de l'énergie. La norme JPEG est un exemple d'un procédé de codage avec pertes pour données d'images. Les récents progrès réalisés dans le traitement des signaux d'images continuent de se concentrer sur la nécessité d'obtenir des formes efficaces et  In lossless compression, intensity data or input symbols are converted into output codewords. The input signals may include image data, audio data, one-dimensional data (e.g. spatially and temporally varying data), two-dimensional data (e.g., data that varies in two directions space or in a direction of space and time), or multidimensional and / or multispectral data. If the compression is successful, the coded words are represented using fewer bits than the number necessary to form the uncoded input symbols (or the intensity data). Lossless coding methods include coding dictionary methods (eg Lempel-Ziv), memory point length coding, enumerative coding, and entropy coding. In lossless image compression, compression is based on predictions or contexts, plus coding. The JBIG compression standard for fax machines and DPCM (differential pulse code modulation, which is an option of the JPEG standard) for continuous-tone images are examples of lossless compression applied to images. In lossy compression, input symbols or intensity data are quantized before conversion to output codewords. Quantification aims at preserving the desired characteristics of the data while eliminating the unimportant characteristics. Before quantization, the lossy compression system often involves a transformation that achieves some compaction of energy. The JPEG standard is an example of a lossy encoding method for image data. Recent advances in the processing of image signals continue to focus on the need for effective forms and

précises pour le codage de compression des données.  accurate for data compression coding.

Diverses formes de traitements pyramidaux ou par transformation des signaux ont été proposées, qui comprennent le traitement pyramidal multirésolution et le traitement pyramidal par ondes élémentaires (connu aussi sous l'appelation de traitement "Wavelet"). On rapporte aussi ces formes au traitement par sous-bandes et au traitement hiérarchique. Le traitement pyramidal par ondes élémentaires des données d'images est un type particulier de traitement pyramidal multirésolution qui peut utiliser des filtres miroirs en quadrature (QMF) afin de produire une décomposition en sous-bandes d'une image initiale. On note qu'il existe d'autres types d'ondes élémentaires non QMF. Pour plus d'infmatio sur le traitement par ondes élémentaires, on se reportera à Antonini, M., et al. , "Image Coding Using Wavelet Transform", IEEE Transactions on Image Processing vol. 1, n 2, avril 1992; et Shapiro, J., "An Embedded Hierarhical Image Coder Using Zerotrees of Wavelet Coefficients", Proc. IEEE Data  Various forms of pyramidal or signal transformation treatments have been proposed, which include multiresolution pyramidal processing and elemental wave pyramidal processing (also known as "Wavelet" treatment). These forms are also related to subband processing and hierarchical processing. Elemental wave pyramid processing of image data is a particular type of multiresolution pyramidal processing that can use quadrature mirror filters (QMF) to produce subband decomposition of an initial image. It is noted that there are other types of non-QMF elementary waves. For further infmatio on elemental wave processing, see Antonini, M., et al. , "Image Coding Using Wavelet Transform", IEEE Transactions on Image Processing vol. 1, No. 2, April 1992; and Shapiro, J., "An Embedded Hierarchical Image Coder Using Zerotrees of Wavelet Coefficients", Proc. IEEE Data

Compression Conference. p. 214-223, 1993.  Compression Conference. p. 214-223, 1993.

Un problème que l'on rencontre dans la plupart des traitements par ondes élémentaires selon la technique antérieure est qu'il faut une grande mémoire pour enregistrer toutes les données pendant leur traitement. En d'autres termnncs, pour effectuer un traitement par ondes élémentaires, il faut que toutes les domnes soient examinées avant l'application du codage aux données. Dans un tel cas, aucune donnée n'est délivrée avant que toutes les données n'aient passé au moins une fois dans le traitement. De fait, le traitement par ondes élémentaires implique typiquement plusieurs passages des données. De ce fait, une grande mémoire est souvent nécessaire. Il serait souhaitable de pouvoir faire appel au traitement par ondes élémentaires tout en évitant de devoir employer une grande mémoire. De plus, il serait souhaitable de pouvoir effectuer le traitement par ondes élémentaires  A problem encountered in most prior art elementary wave processing is that a large memory is required to record all data during processing. In other words, in order to perform elemental wave processing, all the parameters must be examined before the encoding is applied to the data. In such a case, no data is delivered until all the data has been processed at least once. In fact, elemental wave processing typically involves several passes of the data. Because of this, a large memory is often needed. It would be desirable to be able to use elemental wave processing while avoiding having to use a large memory. In addition, it would be desirable to be able to carry out the treatment by elementary waves

en n'utilisant qu'un seul passage des données.  using only one pass of the data.

De nombreuses mises en oeuvre de transformations par ondes élémentaires ou sous-bandes nécessitent des filtres se présentant sous une fome canonique particulière. Par exemple, il faut que les filtres passe-bas et passe-haut aient la même longueur, que la somme des carrés des coefficients soit égale à 1, que le filtre passe-haut soit l'inverse du filtre passe-bas en ce qui concerne le temps et la fréquence, etc. (voir le brevet des Etats-Unis d'Amérique n 5 014 134 délivré en mai 1991). Il serait souhaitable de pouvoir disposer d'une plus largec classe de filtres. Plus précisément, il serait souhaitable de réaliser des mises en oeuvre de transformations par ondes élémentaires ou sous-bandes utilisant des filtres passe-bas et passe-haut qui n'aient pas la même longueur, dont la somme des carés des coefficients ne soit pas nécessairement égale à 1, le filtre passc-haut ne devant pas nécessairement être l'inverse du filtre passe-bas en temps et en fréquence, etc. L'invention fournit une compression avec ou sans pertes qui utilise une transformation assurant une bonne compaction de l'énergie. L'invention permet aussi unc modélisation de données dans le domaine conjoint espace/fréquen (le domaine de la transformation par ondes élémentaires), qui permet une compression efficace. Est également permise une transmission s'effectuant au fur et à mesure avec une vitesse ou un taux de distorsion laissés au choix de l'utilisateur, après le codage. Il est décrit un procédé et un appareil de codage et de décodage de données. L'invention comprend un procédé et un appareil permettant de produire des signaux transformés en réponse à des données d'entrée. Selon un mode de réalisation, les signaux transformés sont produits à l'aide d'une transformation par ondes élémentaires réversible. L'invention comprend également un procédé et un appareil permettant de comprimer les signaux transformés en des données représentant une version comprimée, sans pertes, des données d'entrcée. Selon un mode de réalisation, l'invention décompose les données d'entrée en utilisant un filtre réversible de longueur non minimale. La décomposition peut être effectuée à  Many implementations of transformations by elementary waves or subbands require filters under a particular canonical fome. For example, the low-pass and high-pass filters must be the same length, the sum of the squares of the coefficients equal to 1, and the high-pass filter must be the inverse of the low-pass filter. time and frequency, etc. (see U.S. Patent No. 5,014,134 issued May, 1991). It would be desirable to have a wider class of filters. More precisely, it would be desirable to implement implementations of elementary wave or subband transformations using low-pass and high-pass filters which do not have the same length, whose sum of the squares of the coefficients are not necessarily equal to 1, the high-pass filter need not necessarily be the inverse of the low-pass filter in time and frequency, etc. The invention provides lossy or lossy compression that utilizes a conversion that provides good energy compaction. The invention also allows data modeling in the space / frequency joint domain (the domain of elementary wave transformation), which allows efficient compression. It is also permissible a transmission being carried out as and with a speed or a rate of distortion left to the choice of the user, after the coding. There is described a method and apparatus for encoding and decoding data. The invention includes a method and apparatus for producing transformed signals in response to input data. According to one embodiment, the transformed signals are produced using a reversible elementary wave transformation. The invention also includes a method and apparatus for compressing the transformed signals into data representing a compressed, lossless version of the input data. According to one embodiment, the invention decomposes the input data using a reversible filter of non-minimum length. The decomposition can be carried out at

l'aide de filtres unidimensionnels multiples.  using multiple one-dimensional filters.

L'invention comporte également un procédé et un appareil permettant d'effectuer un codage par implantation (connu aussi sous l'appelation de "embedded coding") des signaux transformés. Le codage par implantation selon l'invention comporte une mise en ordre de la série de coefficients et l'exécution d'une implantation du degré de signification (correspondant généralement au  The invention also includes a method and apparatus for performing implantation encoding (also known as embedded coding) of the transformed signals. The implantation coding according to the invention comprises arranging the series of coefficients and performing an implementation of the degree of significance (generally corresponding to the

poids) des bits sur les signaux transformés.  weight) of the bits on the transformed signals.

L'invention comporte également un procédé et un appareil de décompression de la version des données d'entrée comprimée sans pertes en des signaux transformés. L'invention permet aussi une compression des signaux  The invention also includes a method and apparatus for decompressing the version of the compressed input data without loss of transformed signals. The invention also allows a compression of the signals

d'entrée avec pertes, par troncation de données comprimées sans pertes.  lossy input, by truncation of compressed data without losses.

L'invention comporte aussi un procédé et un appareil permettant de produire les données d'entrée à partir des signaux transformés en les mettant sous la formc d'une version reconstruite des données d'entrée, à l'aide d'un transformation par  The invention also includes a method and apparatus for producing the input data from the transformed signals by putting them in the form of a reconstructed version of the input data, using a transformation by

ondes élémentaires réversible inverse.  reversible elementary waves.

La description suivante, conçue à titre d'illustration de l'invention, vise  The following description, designed as an illustration of the invention, aims to

à donner une meilleure compréhension de ses caractéristiques et avantages; elle s'appuie sur les dessins annexes, parmi lesquels: la figure IA est un schéma fonctionnel d'un mode de réalisation de la partie de codage du système de codage selon l'invention; la figure lB est un schéma fonctionnel d'un mode de réalisation de l'implantation du degré de signification des bits, selon l'invention;  to give a better understanding of its features and benefits; it is based on the accompanying drawings, among which: Figure IA is a block diagram of an embodiment of the coding part of the coding system according to the invention; FIG. 1B is a block diagram of one embodiment of the implementation of bit significance, according to the invention;

la figure 2A est un schéma fonctionnel montrant un système d'analyse-  FIG. 2A is a block diagram showing a system of analysis-

synthèse par ondes élémentaires; la figure 2B illustre des représentations directe et inverse de systèmes de transformation s'appliquant au filtrage par des filtres réversibles de longueur minimale sans chevauchement; les figures 3A à 3D illustrent les résultats découlant de l'exécution d'une décomposition à quatre niveaux; la figure 4A est un schéma fonctionnel montrant une transformation pyramidale à trois niveaux; la figure 4B est un schéma fonctionnel montrant une transformation bidimensionnelle à deux niveaux; la figure 4C est un schéma fonctionnel montrant des filtres bidimensionnels effectuant une décompression du type multirésolution; la figure 4D est un schéma fonctionnel montrant un système qui utilise les ondes élémentaires réversibles de l'invention; la figure 4E représente des schémas fonctionnels d'un système d'amélioration et d'analyse utilisant les ondes élémentaires réversibles de l'invention; la figure 5 illustre une structure ramifiée de coefficients d'ondes élémentaires; les figures 6A et 6A (suite) représentent un organigramme d'un mode de réalisation de la modélisation à ramification zéro ("zerotrce") à liste unique servant à effectuer le codage selon l'invention; la figure 6B et 6B (suite) représentent un organigramme d'un mode de réalisation de la modélisation à ramification zéro à liste unique qui effectue le codage selon l'invention en utilisant une mémoire de drapeau réduite; la figure 6C est un organigramme d'un -mode de réalisation de la modélisation à ramification zéro à liste unique servant à effectuer le décodage selon l'invention; la figure 6D est un organigramme d'un mode de réalisation dc la modélisation à ramification zéro à liste unique qui effectue le décodage selon l'invention en utilisant une mémoire de drapeau réduite; la figure 7A est un organigramme d'un mode de réalisation de la modélisation du type horizon servant à effectuer le codage selon l'invention; la figure 7B est un organigramme d'un mode de réalisation de la modélisation du type horizon qui effectue le codage selon l'invention en utilisant une mémoire de drapeau réduite; la figure 7C est un organigramme de la modélisation du type horizon servant à effectuer le décodage selon l'invention; la figure 7D est un organigramme de la modélisation du type horizon qui effectue le décodage selon l'invention en utilisant une mémoire de drapeau réduite; la figure 8A est un organigramme d'un mode de réalisation du type passage B servant à effectuer le codage selon l'invention; la figure 8B est un organigramme d'un mode de réalisation du type passage B qui effectue le codage selon l'invention en utilisant une mémoire de drapeau réduite; la figure 9A est un organigramme d'un mode de réalisation du type passage B servant à effectuer le décodage selon l'invention; la figure 9B est un organigramme d'un mode de réalisation du type passage B qui effectue le décodage selon l'invention en utilisant une méemoire de drapeau réduite; la figure 10 est un mode de réalisation du filtre à ondes élémentaires du type direct selon l'invention; la figure 11 est un schéma fonctionnel montrant un mode de réalisation d'un filtre à ondes élémentaires du type inverse selon l'invention; la figure 12 représente une image et des coefficients placés dans un tampon de ligne dans le cas d'une décomposition pyramidale à quatre niveaux; la figure 13 est un schéma fonctionnel d'un mode de réalisation de filtrage par ondes élémentaires utilisant une unité de commande de filtre; la figure 14 est un schéma fonctionnel d'un autre mode dc réalisation de filtrage par ondes élémentaires utilisant une unité de commande de filtre; la figure 15 illustre l'affectation de groupes de mémoire assurant des accès horizontaux et verticaux; la figure 16 illustre l'opération de filtrage associée à une décomposition à deux niveaux; la figure 17 est un schéma fonctionnel d'un mode de r6alisation du modèle de contexte selon l'invention; la figure 18 est un schéma fonctionnel d'un mode de réalisation de l'unité de mise au format signe/amplitude selon l'invention; la figure 19 est un schéma fonctionnel d'un mode de réalisation de l'unité de mémorisation d'amplitudes selon l'invention; la figure 20 est un schéma fonctionnel d'un mode de réalisation de l'unité de détection de degré de signification selon l'invention; la figure 21 est un schéma fonctionnel d'un mode de réalisation de l'unité de mémorisation de ramifications selon l'invention; la figure 22 est un schéma fonctionnel d'un mode de réalisation de l'unité de décalage de coefficient selon l'invention; la figure 23 est un schéma fonctionnel d'un autre mode de réalisation de l'unité de détection de degré de signification selon l'invention, qui fait appel à un alignement de 1,5; la figure 24 illustre l'affectation dynamique de la mémoire de données codées pour un fonctionnement à un seul passage; les figures 25A et 25B représentent un organigramme d'un mode de réalisation du processus de codage selon l'invention; les figures 26A et 26B représentent un organigramme d'un mode de réalisation du processus de décodage selon l'invention; les figures 27A et 27B représentent un organigramme d'un mode de réalisation du processus consistant à modéliser chaque coefficient à la fois pour le processus de codage et celui de décodage, selon l'invention; les figures 28A et 28B représentent un organigramme d'un autre mode de réalisation du processus de codage selon l'invention; les figures 29A et 29B représentent un organigramme d'un autre mode de réalisation du processus de décodage selon l'invention; les figures 30A et 30B représentent un organigramme dun autre mode de réalisation du processus consistant à modéliser chaque coefficient dans les processus de codage et de décodage, selon l'invention; et la figure 31 est un mode de réalisation des multiplicateurs associés à la bande de fréquence servant pour l'alignement des coefficients selon l'invention. On va maintenant décrire un procédé et un appareil de compression et  elementary wave synthesis; FIG. 2B illustrates direct and inverse representations of transformation systems applying to the filtering by reversible filters of minimum length without overlap; Figures 3A to 3D illustrate the results of performing a four-level decomposition; Fig. 4A is a block diagram showing a three-level pyramidal transformation; Fig. 4B is a block diagram showing a two-dimensional two-dimensional transformation; Fig. 4C is a block diagram showing two-dimensional filters performing multiresolution type decompression; Fig. 4D is a block diagram showing a system that uses the reversible elementary waves of the invention; FIG. 4E shows functional diagrams of an improvement and analysis system using the reversible elementary waves of the invention; Figure 5 illustrates a branched structure of elementary wave coefficients; Figs. 6A and 6A (continued) show a flowchart of an embodiment of the single-list zero-zerotic ("zerot") modeling for performing the coding according to the invention; Fig. 6B and 6B (continued) show a flowchart of an embodiment of the single-list zero-branch modeling that performs the coding according to the invention using a reduced flag memory; FIG. 6C is a flowchart of an embodiment of the zero-list single-lane modeling for decoding according to the invention; Fig. 6D is a flowchart of an embodiment of the single-list zero-branch modeling which performs the decoding according to the invention using reduced flag memory; Fig. 7A is a flowchart of an embodiment of the horizon type modeling for performing the coding according to the invention; Fig. 7B is a flowchart of an embodiment of the horizon type modeling that performs the coding according to the invention using a reduced flag memory; Figure 7C is a flowchart of the horizon type modeling for performing the decoding according to the invention; Fig. 7D is a flowchart of horizon type modeling which performs decoding according to the invention using reduced flag memory; Fig. 8A is a flowchart of a pass B embodiment for performing the coding according to the invention; Fig. 8B is a flowchart of a pass B embodiment which performs the coding according to the invention using a reduced flag memory; Fig. 9A is a flowchart of a pass B embodiment for performing the decoding according to the invention; Fig. 9B is a flowchart of a pass B embodiment which performs decoding according to the invention using a reduced flag memory; FIG. 10 is an embodiment of the direct type elementary wave filter according to the invention; Fig. 11 is a block diagram showing an embodiment of an inverse type elementary wave filter according to the invention; Fig. 12 shows an image and coefficients placed in a line buffer in the case of a four-level pyramidal decomposition; Fig. 13 is a block diagram of an elementary wave filtering embodiment using a filter control unit; Fig. 14 is a block diagram of another embodiment of elementary wave filtering using a filter control unit; Figure 15 illustrates the assignment of memory groups providing horizontal and vertical accesses; Fig. 16 illustrates the filtering operation associated with a two-level decomposition; Figure 17 is a block diagram of one embodiment of the context model according to the invention; Fig. 18 is a block diagram of an embodiment of the sign / amplitude formatting unit according to the invention; Fig. 19 is a block diagram of an embodiment of the amplitude storage unit according to the invention; Fig. 20 is a block diagram of one embodiment of the degree of significance detection unit according to the invention; Fig. 21 is a block diagram of an embodiment of the branch storage unit according to the invention; Fig. 22 is a block diagram of one embodiment of the coefficient shift unit according to the invention; Fig. 23 is a block diagram of another embodiment of the degree of significance detection unit according to the invention, which uses an alignment of 1.5; Fig. 24 illustrates the dynamic assignment of the coded data memory for single-pass operation; Figs. 25A and 25B show a flowchart of one embodiment of the encoding process according to the invention; Figs. 26A and 26B show a flowchart of an embodiment of the decoding process according to the invention; Figs. 27A and 27B show a flowchart of one embodiment of the process of modeling each coefficient for both the encoding and decoding processes according to the invention; Figs. 28A and 28B show a flowchart of another embodiment of the encoding process according to the invention; Figs. 29A and 29B show a flowchart of another embodiment of the decoding process according to the invention; Figs. 30A and 30B show a flow chart of another embodiment of the process of modeling each coefficient in the encoding and decoding processes according to the invention; and FIG. 31 is an embodiment of the multipliers associated with the frequency band serving for the alignment of the coefficients according to the invention. We will now describe a method and apparatus for compression and

de décompression. Dans la description détaillée suivante de l'invention, de  decompression. In the following detailed description of the invention,

nombreux détails particuliers sont précisés, tels que types de codeurs, nombres de bits, noms de signaux, etc., de façon à donner une compréhension complète de l'invention. L'homme de l'art comprendra toutefois que l'invention peut être mise en oeuvre pratiquement sans ces détails particuliers. Dans d'autres cas, des structures et des dispositifs bien connus sont présentés sous formnne de schémas fonctionnels, et non pas de façon détaillée, de façon à éviter de compliquer la  many particular details are specified, such as types of encoders, numbers of bits, signal names, etc., so as to give a complete understanding of the invention. Those skilled in the art will understand, however, that the invention can be practically implemented without these particular details. In other cases, well known structures and devices are presented in the form of functional diagrams, and not in detail, so as to avoid complicating the

description de l'invention.description of the invention.

Certaines parties de la description détaillée qui va suivre sont  Parts of the following detailed description are

présentées sous la forme d'algorithmes et de représentations symboliques d'opérations effectuées sur des bits de données à l'intérieur d'une mémoire  presented in the form of algorithms and symbolic representations of operations performed on data bits within a memory

d'ordinateur. Ces descriptions et représentations à base d'algorithmes sont les  computer. These descriptions and representations based on algorithms are the

moyens utilisés par l'homme de l'art dans les affaires de traitement de données pour communiquer de la manière la plus efficace, à d'autres spécialistes, la substance de leurs travaux. Ici, comme cela est d'ailleurs généralement le cas, un algorithme est conçu sous la forme d'une succession cohérente d'opérations conduisant à un résultat voulu. Ces opérations sont des opérations demandant des manipulations physiques de quantités matérielles. Ordinairement, bien que ceci ne soit pas nécessaire, ces quantités prennent la forme de signaux électriques ou magnétiques pouvant être enregistrés, transférés, combinés, comparés et traités de toutes sortes de manières. Il s'est parfois révélé commode, principalement pour des raisons d'usage courant, de faire référence à ces signaux sous forme de bits, de valeurs, d'éléments, de symboles, de caractères, d'expressions, de nombres, etc. Il faut toutefois avoir bien à l'esprit que tous ces termes ainsi que d'autres termes analogues doivent être associés à des quantités matérieclles  means used by those skilled in the data processing business to communicate in the most effective manner, to other specialists, the substance of their work. Here, as is generally the case, an algorithm is designed as a coherent sequence of operations leading to a desired result. These operations are operations requiring physical manipulations of material quantities. Ordinarily, although not necessary, these quantities take the form of electrical or magnetic signals that can be recorded, transferred, combined, compared, and processed in a variety of ways. It has sometimes proved convenient, mainly for reasons of common use, to refer to these signals as bits, values, elements, symbols, characters, expressions, numbers, and so on. It must be borne in mind, however, that all these terms and other similar terms must be associated with material quantities.

appropriées et ne sont que des étiquettes commodes qu'on applique à ces quantités.  and are only convenient labels applied to these quantities.

A moins qu'on ne dise spécialement le contraire, comme cela apparaîtra de façon évidente dans la discussion suivante, on comprendra que, tout au long de l'invention, des discussions utilisant des termes tels que "traitement", "calcul"', "détermination", "affichage", ou autres, se rapportent à l'action et aux processus d'un système informatique, ou d'un dispositif analogue de calcul électronique, qui, à l'intérieur de registres et de mémoires du système informatique, manipulent des données représentant des quantités matérielles (électroniques) et les transformnc en d'autres données représentant de même des quantités matérielles, à l'intéeur des mémoires et des registres, ou d'autres moyens d'enregistrement d'informations, de  Unless specifically stated otherwise, as will become evident in the following discussion, it will be understood that throughout the invention discussions using terms such as "processing", "calculation", "determination", "display", or others, refers to the action and processes of a computer system, or similar electronic computing device, which within computer system registers and memories manipulate data representing (electronic) material quantities and transform them into other data similarly representing material quantities, within the memories and registers, or other means of recording information,

dispositifs de transmission ou d'affichage du système informatique.  transmission or display devices of the computer system.

L'invention concerne aussi un appareil permettant d'effectuer les opérations indiquées. Un tel appareil peut être spécialement construit dans le but visé, ou bien il peut être constitué par un ordinateur de type universel spécialement  The invention also relates to an apparatus for carrying out the indicated operations. Such an apparatus may be specially constructed for the purpose intended, or it may be constituted by a computer of universal type specially

activé ou reconfiguré par un programme d'ordinateur mémorisé dans l'ordinateur.  activated or reconfigured by a computer program stored in the computer.

Les algorithmes et les affichages présentés ici ne sont pas intrinsèquement liés à un quelconque ordinateur particulier ou à un autre appareil. On peut utiliser des machines de type universel en liaison avec des programmes selon les enseignements présentés ici, ou bien il peut se révéler commode de construire un appareil plus spécialisé pour effectuer les opérations voulues du procédé. La  The algorithms and displays presented here are not intrinsically related to any particular computer or device. Universal type machines may be used in connection with programs according to the teachings presented herein, or it may be convenient to construct a more specialized apparatus for performing the desired process operations. The

structure nécessaire à cette variété de machine apparaîtra dans la description  structure needed for this variety of machine will appear in the description

suivante. De plus, l'invention n'est pas décrite en liaison avec un langage de programmation particulier. On aura compris que toute une variété de langages de programmation peut être utilisée pour mettre en oeuvre les enseignements de  next. In addition, the invention is not described in connection with a particular programming language. It will be understood that a variety of programming languages can be used to implement the teachings of

l'invention, comme décrit ci-après.  the invention, as described below.

Vue d'ensemble de l'invention L'invention concerne un système de compression/décompression possédant une partie de codage et une partie de décodage. La partie de codage est responsable du codage de données d'entrée, qui vise à créer des données comprimées, tandis que la partie de décodage est responsable du décodage de données antérieurement codées, qui vise à produire une version reconstruite des données d'entrée initiales. Les données d'entrée peuvent comprendre toute une variété de types de données, par exemple des images (fixes ou vidéo), des signaux audio, etc. Dans un mode de réalisation, les données sont des données de signaux numériques; toutefois, des données analogiques numérisées, des formats de données de texte, et d'autres formats sont possibles. En ce qui concerne la partie de codage et, ou bien, la partie de décodage, la source des données peut être une  SUMMARY OF THE INVENTION The invention relates to a compression / decompression system having a coding portion and a decoding portion. The coding portion is responsible for coding input data, which is intended to create compressed data, while the decoding portion is responsible for decoding previously coded data, which is intended to produce a reconstructed version of the initial input data. . The input data can include a variety of data types, for example images (still or video), audio signals, and so on. In one embodiment, the data is digital data data; however, digitized analog data, text data formats, and other formats are possible. With respect to the coding portion and, or the decoding portion, the data source may be a

mémoire ou un canal de transmission.  memory or a transmission channel.

Selon l'invention, des éléments de la partie de codage et, ou bien, de la partie de décodage peuvent être mis en oeuvre sous forme de circuits matériels ou  According to the invention, elements of the coding part and / or the decoding part can be implemented in the form of hardware circuits or

sous forme dc logiciels, comme il en est utilisé dans un système infonatiquc.  in the form of software, as it is used in a computer system.

L'invention fournit un système de compression/décompression sans pertes.  The invention provides a lossless compression / decompression system.

L'invention peut également être configurée de manière à effectuer une  The invention can also be configured to perform a

compression/décompression avec pertes.  compression / decompression with losses.

La figure 1A est un schéma fonctionnel d'un mode de réalisation de la partie de codage du système. On note que la partie de décodage du système exerce  Fig. 1A is a block diagram of one embodiment of the coding part of the system. It is noted that the decoding part of the system exerts

la même action dans l'ordre inverse, par rapport à la circulation des données.  the same action in reverse order, with respect to the flow of data.

Comme on peut le voir sur la figure lA, des données d'image d'entrée 101 sont reçues par un bloc de transformation par ondes élémentaires 102 ("wavelets"). La sortie du bloc 102 de transformation par ondes élémentaires est couplée à un bloc 103 d'implantation ("embedded coding") du degré de signification des bits. En réponse au signal de sortie du bloc 102 de transformation par ondes élémentaires, le bloc 103 d'implantation du degré de signification des bits produit au moins un train de bits qui est reçu par un codeur entropique 104. En réponse au signal d'entrée fourni par le bloc 103 d'implantation du degré de signification des bits, le  As can be seen in FIG. 1A, input image data 101 is received by an elementary wave transformation block 102 ("wavelets"). The output of the elementary wave transformation block 102 is coupled to an "embedded coding" block 103 of the bit significance level. In response to the output signal of the elementary wave transformation block 102, the bit significance level implementation block 103 produces at least one bit stream that is received by an entropy encoder 104. In response to the input signal provided by the block 103 of implementation of the degree of significance of the bits, the

codeur entropique 104 produit un train de signaux codés 107.  entropy encoder 104 produces a coded signal stream 107.

Dans un mode de réalisation, le bloc 103 d'implantation du degré de signification des bits comprend une unité 109 de mise au format signe/amplitude, un modèle 105 de contexte s'appuyant sur la fréquence et un modèle 106 de contexte s'appuyant conjointement sur l'espace géométrique et la fréquence, ainsi que cela est représenté sur la figure lB. Dans un mode de réalisation, le modèle 106 de contexte basé conjointement sur l'espace et la fréquence comprend un modèle de contexte du type horizon. Dans certains modes de réalisation, le bloc 105 associé au modèle de contexte basé sur la fréquence comprend un modèle  In one embodiment, the bit significance level implementation block 103 comprises a sign / amplitude formatting unit 109, a frequency-based context model 105, and a context model 106 based on together on the geometric space and the frequency, as shown in FIG. 1B. In one embodiment, the space-based and frequency-based context model 106 includes a horizon type context model. In some embodiments, the block 105 associated with the frequency-based context model includes a pattern

à ramification zéro (également connu sous l'appellation de modèle "zerotree).  Zero branching (also known as the "zerotree" model).

Dans un autre mode de réalisation, le modèle 105 de contexte basé sur la fréquence comprend un modèle de ramification selon le degré de signification. L'unité 109 de mise au format signe/amplitude, le modèle 105 de contexte basé sur la fréquence et le modèle 106 de contexte basé conjointement sur l'espace et la fréquence (SF)I effectuent un codage par implantation du degré de signification des bits selon l'invention. L'entrée de l'unité 109 de mise au format signe/amplitude est couplée à la sortie du bloc 102 de codage à transformation par ondes élémentaires. La sortie de l'unité de mise au format signe/amplitude 109 est couplée à un commutateur 108. Le commutateur 108 est couplé de façon à fournir le signal de sortie de l'unité 109 de mise au format signe/amplitude à l'entrée du bloc 105 de modélisation basé sur la fréquence ou à celle du bloc 106 de modélisation basé conjointement sur l'espace et la fréquence. Les sorties du bloc 105 de codage basé sur la fréquence et du bloc 106 de codage à mise en ordre du type horizon sont couplées à l'entrée du codeur entropique 104. Le codeur entropique 104 produit le  In another embodiment, the frequency based context model 105 includes a branch pattern according to the degree of significance. The sign / amplitude formatting unit 109, the frequency-based context model 105, and the space-based and frequency-based context model 106 (SF) I perform an implementation encoding of the significance level of the signals. bits according to the invention. The input of the sign / amplitude formatting unit 109 is coupled to the output of the elementary wave transform coding block 102. The output of the sign / amplitude formatting unit 109 is coupled to a switch 108. The switch 108 is coupled to provide the output signal of the sign / amplitude format unit 109 to the input. the frequency-based modeling block 105 or the space-based and frequency-based modeling block 106. The outputs of the frequency-based coding block 105 and the horizon-order coding block 106 are coupled to the entropy encoder 104 input. The entropy coder 104 produces the

train de signaux codés de sortie 107.  encoded output signal stream 107.

On revient à la figure 1A. Selon l'invention, les données d'image 101 sont reçues et codées par transformation à l'aide d'ondes élémentaires réversibles dans le bloc 102 de transformation par ondes élémentaires, comme défini ci-après, de façon à produire une série de coefficients représentant une décomposition du type multirésolution de l'image. Ces coefficients sont reçus par le bloc 103  Return to Figure 1A. According to the invention, the image data 101 is received and encoded by transformation using reversible elementary waves in the elementary wave transformation block 102, as defined hereinafter, so as to produce a series of coefficients. representing a decomposition of the multiresolution type of the image. These coefficients are received by block 103

d'implantation du degré de signification des bits.  implementation of the degree of significance of the bits.

Le bloc 103 d'implantation du degré de signification des bits ordonne les coefficients et les convertit au format signe/amplitude puis, selon leur degré de signification (comme décrit ci-après), les coefficients ainsi mis au format sont  The block 103 for setting the degree of significance of the bits orders the coefficients and converts them to the sign / amplitude format, and then, depending on their degree of significance (as described below), the coefficients thus formatted are

soumis à la combinaison de différents procédés de modélisation par implantation.  subjected to the combination of different methods of modeling by implantation.

Selon l'invention, les coefficients mis au format sont soumis à l'un ou l'autre de deux procédés de modélisation par implantation (par exemple la modélisation  According to the invention, the formatted coefficients are subjected to one or the other of two methods of modeling by implantation (for example modeling

basée sur la fréquence et la modélisation JSF.  based on frequency and JSF modeling.

Dans un mode de réalisation, les coefficients mis au format sont soumis à la modélisation basée sur la fréquence ou bien à la modélisation basée conjointement sur l'espace et la fréquence. Lorsque les données d'entrée comprennent des données d'image ayant plusieurs plans mémoire, selon l'invention, un certain nombre de plans mémoire sont codés selon la modélisation basée sur la fréquence, tandis que les plans mémoire restants sont codés selon la modélisation JSF. La décision indiquant quel procédé on utilise et sur quels plans mémoire on l'utilise peut être liée à un paramètre d'utilisateur. Dans un mode de réalisation, les plans mémoire d'ordres supérieurs des coefficients sont ordonnés et codés à l'aide de la modélisation basée sur la fréquence, selon l'invention. Dans le procédé du modèle de contexte basé sur la fréquence, selon l'invention, la prédiction du degré de signification des bits des coefficients est associée à la structure pyramidale de l'onde élémentaire. Les plans mémoire d'ordres inférieurs des coefficients sont ordonnés et codés à l'aide du modèle de contexte basé conjointement sur l'espace et la fréquence, selon l'invention. La modélisation JSF, par exemple la modélisation du type horizon, offre des avantages, par rapport au codage utilisant la fréquence, pour les plans mémoire qui sont dans une moindre  In one embodiment, formatted coefficients are subjected to frequency-based modeling or space-based and frequency-based modeling. When the input data comprises image data having a plurality of memory arrays, according to the invention, a number of memory arrays are encoded according to the frequency-based modeling, while the remaining memory arrays are encoded according to the JSF modeling. . The decision which process is used and on which memory planes is used can be linked to a user parameter. In one embodiment, the higher order memory arrays of the coefficients are ordered and encoded using frequency-based modeling according to the invention. In the frequency-based context model method, according to the invention, the prediction of the degree of significance of the bits of the coefficients is associated with the pyramidal structure of the elementary wave. The lower order memory banks of the coefficients are ordered and encoded using the context model based jointly on space and frequency, according to the invention. JSF modeling, for example horizon type modeling, offers advantages over frequency-based coding for memory schemes that are in a lesser

corrélation avec des relations de coefficients du domaine de la fréquence.  correlation with frequency relationships of the domain of the frequency.

Les résultats du codage par implantation du degré de signification des  The results of implantation coding of the degree of significance of the

bits sont des décisions (ou des symboles) à coder à l'aide du codeur entropique.  bits are decisions (or symbols) to be encoded using the entropy encoder.

Dans un mode de réalisation, toutes les décisions sont envoyées à un unique codeur. Dans un autre mode de réalisation, les décisions sont étiquetées slon le degré de signification, et, pour chaque degré de signification, les décisious sont  In one embodiment, all decisions are sent to a single encoder. In another embodiment, the decisions are labeled according to the degree of significance, and for each degree of significance the decisious are

traitées par des codeurs multiples des codeurs (matériels ou virtuels) différents.  processed by multiple coders of different coders (hardware or virtual).

Les trains de bits résultant du bloc 105 du modèle de contexte basé sur la fréquence et du bloc 106 du modèle de contexte JSF sont codés, à l'aide du codeur entropiquc 104, suivant l'ordre des degrés de signification. Dans un mode de réalisation, le codeur entropique 104 peut comprendre un codeur entropique binaire. Dans un mode de réalisation, le codeur entropique 104 comprend un codeur Q, un codeur B, comme défini dans le brevet des Etats-Unis d'Amérique n 5 272 478, ou bien un codeur tel que décrit dans la demande de brevet des Etats-Unis d'Amérique n 08/016035, intitulée 'Method and Apparatus for Parallel Decoding and Encoding of Data", et déposée le 10 février 1993. Pour plus d'information concernant le codeur Q, on pourra se reporter à Pennebaker, W.B., et al., "An Overview of the Basic Principles of the Q-coder Adaptive Binary  The bit streams resulting from block 105 of the frequency-based context template and block 106 of the JSF context template are encoded, using the entropy encoder 104, in the order of the degrees of significance. In one embodiment, the entropy encoder 104 may comprise a binary entropy encoder. In one embodiment, the entropy encoder 104 comprises an encoder Q, an encoder B, as defined in US Pat. No. 5,272,478, or an encoder as described in the United States patent application. United States No. 08/016035, entitled 'Method and Apparatus for Parallel Decoding and Encoding of Data', and filed on February 10, 1993. For more information on the Q-encoder, see Pennebaker, WB, et al., "An Overview of the Basic Principles of the Q-coder Adaptive Binary

Arithmetic," IBM Journal of Research and Development vol. 32, p. 717-26, 1988.  Arithmetic, "IBM Journal of Research and Development Vol 32, pp. 717-26, 1988.

Dans un mode de réalisation, un unique codeur produit un unique train de signaux codés de sortie. Dans un autre mode de réalisation, des codeurs multiples (matériels ou virtuels) produisent des trains de données multiples (matériels ou virtuels). Décomposition par ondes élémentaires L'invention effectue initialement la décomposition d'une image (se présentant sous la forme de données d'image) ou d'un autre signal dedonnées à l'aide d'ondes élémentaires réversibles. Selon l'invention, une transformation par ondes élémentaires réversible comprend la mise en oeuvre dun systèm de reconstruction exacte formulé en arithmétique des nombres entiers, de sorte qu'un signal à coefficients entiers peut être reconstitué sans pertes. Du fait qu'elle utilise des ondes élémentaires réversibles, l'invention est en mesure de réaliser une compression sans pertes à l'aide d'une arithmétique de précision finie. Les résultats obtenus par application de la transformation par ondes élémentaires réversible aux données d'image sont constitués d'une série de coefficients. Dans un mode de réalisation de l'invention, la transformation par ondes élémentaires réversible est mise en oeuvre à l'aide d'un ensemble de filtres. Dans un mode de réalisation, les filtres sont respectivement un filtre passe-bas à deux prises intermédiaires et un filtre passe-haut à six prises intermédiaires. Dans un mode de réalisation, ces filtres sont mis en oeuvre à l'aide de seules opérations d'addition et de soustraction (plus un décalage des bits par des moyens câblés). De plus, selon l'invention, le filtre passe-haut produit son signal de sortie en utilisant les résultats du filtre passe-bas. Les coefficients passe- haut résultants dépassent de quelques bits seulement la résolution des pixels et les coefficients passe-bas ont la mnême résolution que les pixels. Puisque seuls les coefficients passe-bas sont filtrés de manière répétée dans une décomposition pyramidale, la résolution n'augmente pas  In one embodiment, a single encoder produces a single output coded signal stream. In another embodiment, multiple encoders (hardware or virtual) produce multiple data streams (hardware or virtual). Elementary Wave Decomposition The invention initially decomposes an image (in the form of image data) or another data signal using reversible elementary waves. According to the invention, a reversible elementary wave transformation comprises the implementation of an exact reconstruction system formulated in integer arithmetic, so that a signal with integer coefficients can be reconstructed without losses. Because it uses reversible elementary waves, the invention is able to achieve lossless compression using finite precision arithmetic. The results obtained by applying the reversible elementary wave transformation to the image data consist of a series of coefficients. In one embodiment of the invention, the reversible elementary wave transformation is implemented using a set of filters. In one embodiment, the filters are respectively a low pass filter with two intermediate taps and a high pass filter with six intermediate taps. In one embodiment, these filters are implemented using only addition and subtraction operations (plus a bit offset by hardwired means). In addition, according to the invention, the high-pass filter produces its output signal using the results of the low-pass filter. The resulting high-pass coefficients are only a few bits higher than the resolution of the pixels and the low-pass coefficients have the same resolution as the pixels. Since only the low-pass coefficients are repeatedly filtered in a pyramid decomposition, the resolution does not increase

dans des décompositions à plusieurs niveaux.  in multi-level decompositions.

Un système de transformation par ondes élémentaires est défini par une paire de filtres d'analyse à réponse impulsionnelle finie ho(n), hl(n), et une paire de filtres de synthèse à réponse impulsionnelle finie go(n), gl(n). Selon l'invention, h0 et go sont des filtres passe-bas et h1 et g, sont des filtres passe-haut. Un schéma fonctionnel du système de transformation par ondes élémentaires est présenté sur la figure 2A. Comme on peut le voir sur la figure 2A, pour un signal d'entrée x(n), les filtres d'analyse h0 et h1 sont appliqués et les signaux de sortie sont soumis à une 'décimation" de facteur 2 (sont sous-échantillonnés de façon critique) de façon à produire les signaux transformés yo(n) et yl(n), qu'on appellera ici respectivement des coefficients filtrés passe-bas et passe-haut. Les filtres d'analyse et les blocs de décimation, ou de sous-échantillonnage, qui leuIs sont associés forment la partie d'analyse du système de transformation par ondes élémentaires. Le dispositif de codage/décodage contient tous les programmes et toutes les logiques de traitement qui s'exécutent dans le domaine transformné (par exemple prédiction, quantification, codage, etc.). Le système de transformation par ondes élémentaires représenté sur la figure 2A comporte également une partie de synthèse dans laquelle les signaux transformes sont suréchantillonnés d'un facteur 2 (par exemple on insère un zéro après chaque terme), puis passent dans des filtres de synthèse, go(n) et gl(n). Les coefficients filtrés passe-bas yo(n) sont envoyés dans le filtre de synthèse passe-bas go et les coefficients filtrés passe-haut (yl)n sont envoyés dans le filtre passe-haut gl. Les signaux de sortie des filtres go(n) et  An elementary wave transformation system is defined by a pair of finite impulse response analysis filters ho (n), hl (n), and a pair of finite impulse response synthesis filters go (n), gl (n). ). According to the invention, h0 and go are low-pass filters and h1 and g are high-pass filters. A block diagram of the elementary wave transformation system is shown in Figure 2A. As can be seen in FIG. 2A, for an input signal x (n), the analysis filters h0 and h1 are applied and the output signals are subjected to a "decimation" of factor 2 (are sub- critically sampled) so as to produce the transformed signals yo (n) and yl (n), which will be referred to here as low-pass and high-pass filtered coefficients, respectively: the analysis filters and the decimation blocks, or subsampling, which they are associated with, form the analysis part of the elementary wave transformation system The coding / decoding device contains all the programs and processing logic that execute in the transformed domain (by example, prediction, quantization, coding, etc.) The elementary wave transformation system shown in FIG. 2A also includes a synthesis part in which the transformed signals are oversampled by a factor of 2 (for example insert a zero after each term), then go into synthesis filters, go (n) and gl (n). The low-pass filtered coefficients yo (n) are sent in the low-pass synthesis filter go and the high-pass filtered coefficients (yl) n are sent in the high-pass filter gl. The output signals of the filters go (n) and

gl(n) sont combinés pour produire x(n).  gl (n) are combined to produce x (n).

Alors qu'on effectue un sous-échantillonnage et un suréchantillonnage dans certains modes de réalisation, dans d'autres, on utilise des filtres de façon à ne pas effectuer les calculs rendus inutiles par le sous-échantillonnage et le suréchantillonnage. Le système dc transformation par ondes élémentaires peut être décrit en fonction de la transformation Z, o X(Z), X(Z) sont respectivement les signaux d'entrée et de sortie, Y0(Z), Y1(Z) sont les signaux transformés filtrés passe- bas et passe-haut, H0(Z), H1(Z) sont les filtres d'analyse passe-haut et passe-bas et, enfin, Go(Z), G1(Z) sont les filtres de synthèse passe- bas et passe-haut. S'il n'y a aucune altération ou quantification dans le domaine de la transformnnation, le signal de sortie X(Z) de la figure 2A est donné par: X(Z) = l[H0(Z)G,(Z)+H,(Z)G,(Z)]X(Z)+  While under-sampling and oversampling are performed in some embodiments, in others, filters are used so as not to perform calculations rendered unnecessary by downsampling and oversampling. The elementary wave transformation system can be described as a function of the transformation Z, where X (Z), X (Z) are respectively the input and output signals, Y0 (Z), Y1 (Z) are the signals low-pass and high-pass filtered transforms, H0 (Z), H1 (Z) are the high-pass and low-pass analysis filters, and finally Go (Z), G1 (Z) are the synthesis filters low pass and high pass. If there is no alteration or quantization in the transformation domain, the output signal X (Z) of Figure 2A is given by: X (Z) = 1 [H0 (Z) G, (Z) + H (Z) G (Z)] X (Z) +

12[Ho(-Z)Go (Z) +Hl (-Z)G1 (Z)]X(-Z).  12 [Ho (-Z) Go (Z) + H1 (-Z) G1 (Z)] X (-Z).

Selon l'invention, le deuxième terme de X(Z), qu'on appellera le terme de "repliement de spectre", s'annule du fait que les filtres de synthèse sont définis comme étant les miroirs en quadrature des filtres d'analyse, c'est-à-dire:  According to the invention, the second term of X (Z), which will be called the term "spectrum folding", is canceled because the synthesis filters are defined as being the quadrature mirrors of the analysis filters. , that is to say:

{G0(Z) = H1(-Z){G0 (Z) = H1 (-Z)

G1(Z) = -H0O(-Z)G1 (Z) = -H0O (-Z)

ce qui donne, pour les coefficients des filtres, go(n) = (-1)nhl(n)  which gives, for the coefficients of the filters, go (n) = (-1) nhl (n)

g l(n) = -(-1)nh0(n).g l (n) = - (- 1) nh0 (n).

Ainsi, pour des paires de filtres qui sont respectivement leurs miroirs en quadrature, on obtient, après substitution, le signal de sortie suivant:  Thus, for pairs of filters which are respectively their quadrature mirrors, the following output signal is obtained after substitution:

X(z) = 2[H0(Z)H1(-Z) -HI(Z)H0(-Z)]X(Z).  X (z) = 2 [H0 (Z) H1 (-Z) -HI (Z) HO (-Z)] X (Z).

Par conséquent, dans le système de miroirs en quadrature selon l'invention, le signal de sortie est défini en fonction des seuls filtres d'analyse. La transformation par ondes élémentaires est appliquée de façon récursive aux signaux transformés dans lesquels les signaux de sortie produits par les filtres sont utilisés comme signaux d'entrée des filtres, directement ou indirectement. Dans le mode de réalisation décrit, seule la composante transformée filtrée passe-bas yO(n) est transformée de façon récursive de sorte que le système est pyramidal. Un  Therefore, in the quadrature mirror system according to the invention, the output signal is defined according to the only analysis filters. The elementary wave transformation is recursively applied to the transformed signals in which the output signals produced by the filters are used as input signals of the filters, directly or indirectly. In the embodiment described, only the filtered low-pass filtered component yO (n) is recursively transformed so that the system is pyramidal. A

exemple d'un tel système pyramidal est présenté sur la figure 4A.  example of such a pyramid system is shown in Figure 4A.

La transformation Z est une notation commode pour exprimer l'action de l'équipement matériel et, ou bien, du logiciel sur les données. La multplication par Z-m forme un modèle de retard de m cycles d'horloge dans un équipement matériel et un accès matriciel au mème élément précédent dans un logiciel. Dc telles mises en oeuvre sous forme d'équipements matériels font intervenir des mémoires, des étages de canaux de communication, des dispositifs dc décalage, des registres, etc. Selon l'invention, les signaux x(n) et x(n) sont identiques à une constante multiplicative et un terme de retard après, c'est-à-dire dans les termes de transformation Z,  The Z transformation is a convenient notation for expressing the action of hardware and / or software over the data. Multiplication by Z-m forms a delay model of m clock cycles in hardware equipment and matrix access to the same previous element in software. Such implementations in the form of hardware equipment involve memories, communication channel stages, offset devices, registers, and so on. According to the invention, the signals x (n) and x (n) are identical to a multiplicative constant and a delay term after, that is to say in the transformation terms Z,

X(Z) = cZ-X(Z).X (Z) = cZ-X (Z).

Ceci constitue ce que l'on appelle un système de reconstruction exacte. Ainsi, dans un mode de réalisation de l'invention, la transformation par ondes élémentaires  This is what is called an exact reconstruction system. Thus, in one embodiment of the invention, the transformation by elementary waves

initialement appliquée aux données d'entrée est reconstructible de façon exacte.  initially applied to the input data is reconstructible exactly.

Un mode de réalisation de l'invention utilisant la transformation de Hadamard est un système de reconstruction exacte qui, sous forme normalisée, possède la représentation suivante dans le domaine Z:  An embodiment of the invention using the Hadamard transformation is an exact reconstruction system which, in standardized form, has the following representation in the Z domain:

11

Ho H(Z)- = l(+Zi)Ho H (Z) - = l (+ Zi)

H1(Z) = 2 (1Z-1)H1 (Z) = 2 (1Z-1)

Après substitution, le signal de sortie est  After substitution, the output signal is

X(Z) = Z-IX(Z)X (Z) = Z-IX (Z)

ce qui constitue de façon évidente une reconstruction exacte. Pour plus d'informations sur la transformation de Hadamard, on se reportera à Anil K Jain,  which is obviously an exact reconstruction. For more information on the transformation of Hadamard, see Anil K Jain,

Fundamentals of Image Processing, p. 155.  Fundamentals of Image Processing, p. 155.

Une version réversible de la transformation de Hadamard sera ici appelée la transformation S. Pour plus d'informations sur la transformation S, on se reportera à Said, A. et Pearlman, W. "Reversible Image Compression via Multiresolution Representation and Predictive Coding, "Dept. of Electrical, Computer and Systems Engineering, Renssealacr Polytechnic Institute, Troy, NY, EUA. 1993. Puisque la transformation de Hadamard est une transformation à reconstruction exacte, la version non normalisée suivante (qui diffère de la transformation de Hadamard par des facteurs constants) cst également unec transformation à reconstruction exacte: I ho(Z) = 1(1+ Z-) hl(Z) = l-Z-1 Etant donné les échantillons du signal d'entrée tels que xo, xl, la transformation S est une mise en oeuvre réversible de cc système sous la forme: YO(O) = L(x(O)+x(1))/2J Y1(O) = x(O) - x(1)  A reversible version of the transformation of Hadamard will here be called the transformation S. For more information on the transformation S, we will refer to Said, A. and Pearlman, W. "Reversible Image Compression via Multiresolution Representation and Predictive Coding," Dept. of Electrical, Computer and Systems Engineering, Renssealacr Polytechnic Institute, Troy, NY, USA. 1993. Since the Hadamard transformation is an exact reconstructed transformation, the following non-normalized version (which differs from the Hadamard transformation by constant factors) is also an exact reconstruction transformation: I ho (Z) = 1 (1+ Z-) hl (Z) = lZ-1 Given the samples of the input signal such that xo, xl, the transformation S is a reversible implementation of this system in the form: YO (O) = L (x (O) + x (1)) / 2 Y1 (O) = x (O) - x (1)

La notation. J signifie un arrondissement vers le bas, ou une tron-  The notation. J means a rounding down, or a section

cation, et correspond à ce que l'on appelle parfois une fonction "plancher'. De même, la fonction plafond F.1 signifie un arrondissement vers le haut jusqu'à  cation, and corresponds to what is sometimes called a "floor function." Similarly, the ceiling function F.1 means a rounding up to

l'entier suivant.the next integer.

La preuve que cette mise en oeuvre est réversible découle du fait que la seule information perdue au cours de l'approximation est le bit le moins significatif de x(O)+x(1). Puisque les bits les moins significatifs de x(0)+(xl) et de x(O)-x(1) sont identiques, ceux-ci peuvent être reconstitués à partir du signal de sortie passe-haut Yl(0). En d'autres termes, X(0) = Yo(O)+[(Yl(O)+l)/2j x(1) = Yo(O)-[(Yl(O)-l)/21 La transformation S est une transformation sans chevauchement qui utilise des filtres révcrsibles de longueur minimale. Des filtres de longueur minimale sont formés d'une paire de filtres, les deux filtres ayant deux prises intermédiaires. Les transformations à longueur minimale ne donnent pas une bonnec compaction de l'énergie. Des filtres de longueur minimale produisent une transformation sans chevauchement puisque la longueur des filtres est égale au nombre des filtres. Les transformations avec chevauchement utilisent au moins un filtre qui possède une longueur plus grande que le nombre des filtres. Des transformations avec chevauchement qui utilisent des filtres plus longs (n'ayant pas  The proof that this implementation is reversible stems from the fact that the only information lost during the approximation is the least significant bit of x (O) + x (1). Since the least significant bits of x (0) + (x1) and x (O) -x (1) are identical, they can be reconstructed from the high-pass output signal Y1 (0). In other words, X (0) = Yo (O) + [(Yl (O) + 1) / 2j x (1) = Yo (O) - [(Yl (O) -l) / 21 The transformation S is a non-overlapping transformation that uses reversible filters of minimum length. Filters of minimum length are formed of a pair of filters, the two filters having two intermediate taps. The minimal length transformations do not give a good energy compaction. Minimal length filters produce a non-overlapping transformation since the length of the filters is equal to the number of filters. Overlap transformations use at least one filter that has a length greater than the number of filters. Overlapping transformations that use longer filters (not having

la longueur minimale) peuvent donner une meilleure compaction de l'énergie.  the minimum length) can give better compaction of energy.

L'invention fournit des filtres réversibles de longueur non minimale qui permettent  The invention provides reversible filters of non-minimal length that allow

une transformation sans chevauchement.  a transformation without overlap.

Un autre exemple d'un système à reconstruction exacte comprend la transformation deux/six (CS), qui possède, dans le domaine Z, la définition: t H (Z) = >22(1+Z-l)  Another example of an exact reconstruction system is the two / six (CS) transformation, which has, in the Z domain, the definition: t H (Z) => 22 (1 + Z-1)

{H(Z) = (-1-Z-1+8Z-2-8Z-3 +Z4+Z-5)-{H (Z) = (-1-Z-1 + 8Z-2-8Z-3 + Z4 + Z-5) -

Après substitution, le signal de sortie est:  After substitution, the output signal is:

X(Z) = 2Z-3X(Z),X (Z) = 2Z-3X (Z),

qui est une transformation à reconstruction exacte.  which is an exact reconstruction transformation.

Une version non normalisée rationnelle de la transformation IS comprend: f ho(Z) = (1+Z-1) hl(Z) =8(--Z-1+8Z-2-8Z-3+Z-4+Z-5) Si x(O), x(1),... x(5) sont six échantillons du signal, alors les trois premiers coefficients filtrés passe-bas yo(O), yO(1), yo(2) et le premier coefficient filtré passe-haut Yl(O) sont donnés par: yo(O) = L(x(0)+x(1))/2J yo(1) = L(x(2)+ x(3)) / 2J yo(2) = L(x(4) + x(5)) /2J  A rational non-standard version of the IS transformation includes: f h (Z) = (1 + Z-1) hl (Z) = 8 (- Z-1 + 8Z-2-8Z-3 + Z-4 + Z -5) If x (O), x (1), ... x (5) are six samples of the signal, then the first three low-pass filtered coefficients yo (O), yO (1), yo (2) and the first high-pass filtered coefficient Yl (O) are given by: yo (O) = L (x (0) + x (1)) / 2J yo (1) = L (x (2) + x (3) )) / 2J yo (2) = L (x (4) + x (5)) / 2J

y,(o) = L(-(x(0) + x(1))) + 8(x(2) - x(3)) + (x(4) + x:(5)) /8J.  y, (o) = L (- (x (0) + x (1))) + 8 (x (2) - x (3)) + (x (4) + x: (5)) / 8J.

Toutefois, la simple mise en oeuvre directe de la version non normalisée rationnelle de la transformation TS n'est pas réversible. L'exemple suivant montre que cette mise en oeuvre n'est pas réversible localement. On peut construire une séquence plus longue à titre d'exemple du cas général. Puisque -(x(O)+x(1))+(x(4)+x(5))"-yo(O)+yo(2) du fait de l'arrondissement intervenant dans le calcul de yo(0) et yo(2), cette transformation n'est pas réversible lorsqu'on  However, the simple direct implementation of the rational non-standard version of the TS transformation is not reversible. The following example shows that this implementation is not reversible locally. A longer sequence can be constructed as an example of the general case. Since - (x (O) + x (1)) + (x (4) + x (5)) "- yo (O) + yo (2) because of the rounding involved in the calculation of yo (0) ) and yo (2), this transformation is not reversible when

utilise une information locale.uses local information.

Par exemple, si x(0)=1, x(1)=1, x(2)=3, x(3)=1, x(4)=1, x(5)=1, alors: y0(O)= L(1+ 1)/2J= 1 yo(1)=L(3+1)/ 2J = 2 yo(2) =L(l + 1) / 2j = 1 y,(O) =[L[-(+ +1)+8(3-1) + (1+1)]/8J= L(-2+16+2)/8J =2 et si x(0)=1, x(1)=2, x(2)=4, x(3)=1, x(4)=1, x(5)=1, alors yo(O)= [(1+ 2) / 2J = 1 y0(1)=L(4 + 1)/2j = 2 y0(2)= L(1+ 1) / 2J = 1 y(O)=L[[-(1+2)+8(41)+(1+1)]J/8=L(-3+24+2)/8J=L[23/8J=2 Puisque yo(O), yo(1), yo(2) et yl(O) sont les mêmes pour deux groupes différents de signaux d'entrée x(0),... x(5), la transformée n'est pas réversible, puisque, étant donnés yO(0),... Yl(0), on ne peut pas déterminer, à partir de cette information locale, lequel des deux groupes a été appliqué en entrée. (On notera qu'il peut être prouvé que la transformation n'est pas réversible à l'aide d'informations globales pour tous les coefficients.) On va maintenant considérer une transformation TS réversible, que l'on  For example, if x (0) = 1, x (1) = 1, x (2) = 3, x (3) = 1, x (4) = 1, x (5) = 1, then: y0 ( O) = L (1+ 1) / 2J = 1 yo (1) = L (3 + 1) / 2J = 2 yo (2) = L (1 + 1) / 2j = 1 y, (O) = [ L [- (+ +1) +8 (3-1) + (1 + 1)] / 8J = L (-2 + 16 + 2) / 8J = 2 and if x (0) = 1, x (1 ) = 2, x (2) = 4, x (3) = 1, x (4) = 1, x (5) = 1, then yo (O) = [(1 + 2) / 2J = 1 y0 ( 1) = L (4 + 1) / 2j = 2 y0 (2) = L (1+ 1) / 2J = 1 y (O) = L [[- (1 + 2) +8 (41) + (1) +1)] J / 8 = L (-3 + 24 + 2) / 8J = L [23 / 8J = 2 Since yo (O), yo (1), yo (2) and yl (O) are the same for two different groups of input signals x (0), ... x (5), the transform is not reversible, since, given yO (0), ... Yl (0), we can not do not determine, from this local information, which of the two groups was applied as input. (Note that it can be proved that the transformation is not reversible using global information for all the coefficients.) We will now consider a reversible transformation TS, which we

appellera ici une transformation RTS, qui réalise une opération de filtrage passe-  will call here an RTS transformation, which performs a pass filtering operation.

haut différente.different top.

Si x(0), x(1), x(2), x(3), x(4), x(5) sont 6 échantillons du signal, alors les trois premiers coefficients filtrés passe-bas yo(0), y0(1), y0(2) et le premier coefficient filtré passe-haut Yl(0) sont donnés respectivement par: y o0(O) =L(x(o)+x(1))/2j yo(o) = L(x(2)+x(3))/2J yo(2) = L(x(4)+x(5))/2J yi(O) = L(-L(x(O) + x(1)) /2j + 4(x(2) - x(3)) + L(x(4)+x(5))/2j)/4j  If x (0), x (1), x (2), x (3), x (4), x (5) are 6 samples of the signal, then the first three low-pass filtered coefficients y 0 (0), y0 (1), y0 (2) and the first high-pass filtered coefficient Yl (0) are respectively given by: y o0 (O) = L (x (o) + x (1)) / 2j yo (o) = L (x (2) + x (3)) / 2J yo (2) = L (x (4) + x (5)) / 2J yi (O) = L (-L (x (O) + x (1)) / 2j + 4 (x (2) - x (3)) + L (x (4) + x (5)) / 2j) / 4j

= L(-yo(O) + 4(x(2)- x(3)) +yO(2)) / 4j-  = L (-yo (O) + 4 (x (2) - x (3)) + y O (2)) / 4j-

puisque: x(2)-x(3) = y, (O)-L-(yo(0) +y0 (2)) / 4J alors x(2)-x(3) est parfaitement connu. Comme yo(1)=Kx(2)+x(3), x(2)-X(3) et x(2)-x(3) sont définis ci-dessus, on peut reconstituer x(2) et x(3) puisque les bits  since x (2) -x (3) = y, (O) -L- (yo (0) + y0 (2)) / 4J then x (2) -x (3) is perfectly well known. Since yo (1) = Kx (2) + x (3), x (2) -X (3) and x (2) -x (3) are defined above, we can reconstruct x (2) and x (3) since the bits

les moins significatifs de x(0)+x(1) et x(O)-x(1) sont identiques.  the least significant of x (0) + x (1) and x (O) -x (1) are identical.

En particulier, soit: d(O) = x(2)- x(3) = y,(o)- L(-yo(o) + yo(2) / 4)J x(2) = y0 (1)+ [(d(O) + 1) / 2J x(3) = yo(1)+ (d(O)-1)/21, Un mode de réalisation du filtre direct associé à la transformation RTS est représenté dans l'appendice A, qui est mis en oeuvre à l'aide du langage de  In particular, let d (O) = x (2) - x (3) = y, (o) - L (-y0 (o) + yo (2) / 4) J x (2) = y0 (1) ) + [(d (O) + 1) / 2J x (3) = yo (1) + (d (O) -1) / 21, An embodiment of the direct filter associated with the RTS transformation is represented in FIG. Appendix A, which is implemented using the language of

programmation "C'."C" programming.

On note que, du point de vue mathématique, l'équation: !(î....(_1_z- + 8Z2 - _8Z3 +Z' +Z5) et l'équation: 4(2(-1 Z-l)+ 4(Z-2 Z-3)+ (Z + Z- s5))  It is noted that, from the mathematical point of view, the equation: ## EQU1 ## and the equation 4 (2 (-1 Z1) + 4 ( Z-2 Z-3) + (Z + Z-s5))

sont les mêmes lorsqu'elles sont exécutées selon une arithmétique à précision finie.  are the same when executed in finite-precision arithmetic.

La raison faisant que la deuxième équation représente un filtre réversible est évidente lorsqu'on la met en oeuvre matériellement en arithmétique des nombres entiers. Des exemples de mise en oeuvre de type matériel pour le filtre passe-bas  The reason that the second equation represents a reversible filter is obvious when it is physically used in integer arithmetic. Examples of hardware-type implementation for the low-pass filter

et le filtre passe-haut sont présentés en liaison avec les figures 10 et 11.  and the high-pass filter are presented in connection with FIGS. 10 and 11.

On note que, dans la transformation S aussi bien que dans la transformation RIS, le filtre passe-bas est mis en oeuvre de façon que le signal d'entrée x(n) ait le même intervalle que le signal de sortie y0(n). Par exemple, si le signal est une image à 8 bits, le signal de sortie du filtre passe-bas est également à 8 bits. Ceci est une propriété importante pour un système pyramidal dans lequel le filtre passe-bas est appliqué de façon répétée, puisque, dans les systèmes de la technique antérieure, l'intervalle du signal de sortie est plus grand que celui du signal d'entrée, ce qui rend difficile d'appliquer successivement le filtre. En outre, le filtre passe-bas n'a que deux prises intermédiaires, qui en font un filtre sans chevauchement. Cette propriété est importante pour la mise en oeuvre sous forme  It is noted that in the transformation S as well as in the transformation RIS, the low-pass filter is implemented so that the input signal x (n) has the same interval as the output signal y0 (n) . For example, if the signal is an 8-bit image, the output signal of the low-pass filter is also 8-bit. This is an important property for a pyramidal system in which the low-pass filter is repeatedly applied, since in the prior art systems the output signal range is larger than that of the input signal, which makes it difficult to successively apply the filter. In addition, the low-pass filter has only two intermediate taps, which make it a non-overlapping filter. This property is important for implementation in form

matérielle, comme cela sera expliqué ci-après.  material, as will be explained below.

Dans un mode de réalisation, en liaison avec la transformation RIS, le filtre passe-bas et le filtre passe-haut sont définis par: hi(Z) = (1+Z-1) + 4(Z2 Z3) (Z4 Ainsi, les résultats issus du filtre passe-bas peuvent être utilisés deux fois (au premier terme et au troisième terme) dans le filtre passe-haut. Par conséquent, il ne  In one embodiment, in connection with the RIS transformation, the low-pass filter and the high-pass filter are defined by: hi (Z) = (1 + Z-1) + 4 (Z2 Z3) (Z4 Thus, the results from the low-pass filter can be used twice (in the first and third term) in the high-pass filter.

faut effectuer que deux autres additions pour arriver aux résultats du filtre passe-  only two more additions to arrive at the results of the pass filter.

haut. De nombreux filtres réversibles à longueur non minimale sans chevauchement peuvent être utilisés dans l'invention. Des représentations directe et inverse du système de transformation assurant un filtrage à l'aide de filtres réversibles de longueur minimale sans chevauchement sont présentés sur la figure 2B. Par exemple, on peut utiliser dans l'invention des filtres de la classe suivante. Pour un entier L >z, d(O) = x(2(LL/2j + 1)) - x(2([L/2J + 1) + 1), yo (O) = L(x(o)+ x(l)) / 2J y.(1) = L(x(2) + x(3)) / 2J yo (L - 1)= L(x(2L(L - 1) / 2J) + x(2L(L- 1) / 2j + 1)) / 2] et L'42J L-l úE aiyo(i)+bd(O)+ lcyo(j) Y (O) = =o i_=-L/2J. 2 k La longueur du filtre passe-haut est 2L Si L est impair, le filtre peut se rapprocher d'un filtre symétrique. Si ai, b, ci et k sont des entiers et que k<b, alors le filtre est réversible. Si ai, b, ci et k sont des puissances de deux (ou bien la négation ou le complément d'une puissance de deux), alors on peut simplifier la mise en oeuvre du filtre. Si k=b (indépendamment des valeurs de ai et dc ci), alois, on minimise l'intervalle du signal de sortie du filtre passe-bas Yl- Pour chaque ai, s'il existe exactement une valeur cj pour laquelle aj=-c, alors le filtre passe-haut n'aura pas de réponse pour un signal d'entrée constant. Si ai=-cj lorsque j-(L,-1)=i, alors le filtre peut se rapprocher d'un filtre symétrique. Une autre propriété utile est: i [(as)(2i)" + (ai)(2i + 1)m] + (b)(2(L/2J + 1)) 1=0 -(b)(2(L/2J+î)+1) + ' [c.(2j) +c1(21 +1)m]=O  above. Many non-overlapping non-minimal length reversible filters can be used in the invention. Direct and inverse representations of the transformation system providing filtering using reversible filters of minimum length without overlap are shown in Figure 2B. For example, filters of the following class may be used in the invention. For an integer L> z, d (O) = x (2 (LL / 2j + 1)) - x (2 ([L / 2J + 1) + 1), yo (O) = L (x (o) + x (l)) / 2J y (1) = L (x (2) + x (3)) / 2J yo (L - 1) = L (x (2L (L - 1) / 2J) + x (2L (L-1) / 2j + 1)) / 2] and L'42J Ll úE aiyo (i) + bd (O) + lcyo (j) Y (O) = = o i _ = - L / 2J. 2 k The length of the high-pass filter is 2L If L is odd, the filter can get closer to a symmetrical filter. If ai, b, ci and k are integers and k <b, then the filter is reversible. If ai, b, ci and k are powers of two (or the negation or the complement of a power of two), then we can simplify the implementation of the filter. If k = b (independently of the values of ai and dc ci), alois, we minimize the interval of the output signal of the low-pass filter Yl- For each ai, if there exists exactly a value cj for which aj = - c, then the high-pass filter will have no response for a constant input signal. If ai = -cj when j- (L, -1) = i, then the filter can move closer to a symmetric filter. Another useful property is: i [(as) (2i) "+ (ai) (2i + 1) m] + (b) (2 (L / 2J + 1)) 1 = 0 - (b) (2 ( L / 2J + 1) + '[c. (2j) + c1 (21 + 1) m] = O

=LL/ZJ.2= LL / ZJ.2

Ceci fait que le filtre passe-haut n'a pas de réponse à un signal d'entrée variant linéairement lorsque m=1 et a un signal d'entrée variant de façon quadratique lorsque m=2, etc., o m est l'état de moment. Cette propriété est la raison de principe faisant que la transformation RTS a une meilleure compaction d'énergie que la transformation S. Alors que des filtres doivent satisfaire un minimum de contraintes pour être réversibles, en ce qui concerne différentes applications, on peut utiliser des filtres qui ne satisfont aucune des autres propriétés, certaines des autres propriétés ou toutes les autres propriétés. Dans certains modes de réalisation, on utilise l'un des filtres passe-haut suivants donnés à titre d'exemples. Les filtres sont indiqués dans une notation qui énumère simplement les coefficients entiers de la version  This causes the high-pass filter to have no response to a linearly varying input signal when m = 1 and has a quadratically varying input signal when m = 2, etc., om is the state of moment. This property is the reason of principle that the RTS transformation has a better energy compaction than the transformation S. While filters must satisfy a minimum of constraints to be reversible, with regard to different applications, one can use filters that do not satisfy any of the other properties, some of the other properties, or any other properties. In some embodiments, one of the following exemplary high pass filters is used. The filters are indicated in a notation that simply enumerates the integer coefficients of the version

rationnelle du filtre, car il faut éviter de compliquer la description de l'invention.  rational filter, because it is necessary to avoid complicating the description of the invention.

1 1-4 -4 16-164 4-1-11 1-4 -4 16-164 4-1-1

1 1-3-3 8-8 3 3-1-11 1-3-3 8-8 3 3-1-1

-1-1 0 0 16-160 0 1 1-1-1 0 0 16-160 0 1 1

-1 -1 4 4 -16 -16 256 -256 16 16 -4 -4 1 1  -1 -1 4 4 -16 -16 256 -256 16 16 -4 -4 1 1

3 3-22-2 128-128 22 22-3-3.3-22-2 128-128 22-2-3-3.

Le dernier filtre est désigné ici comme étant le filtre IT (deux/dix) et il a pour propriété de ne pas avoir de réponse à une fonction qui croît de façon cubique. On note que, puisque 22=16+2x3 et 3=2+1, ce filtre peut être mis en  The last filter is referred to here as the IT filter (two / ten) and has the property of not having a response to a function that grows cubically. Note that since 22 = 16 + 2x3 and 3 = 2 + 1, this filter can be set

oeuvre au moyen de sept additions et soustractions au total.  using seven additions and subtractions in total.

On peut assouplir les exigences de réversibilité strictes des filtres en notant ce qui suit. Les coefficients passe-haut sont codés et décodés dans le même ordre. Les valeurs des pixels correspondant à des coefficients passe-haut précédemment décodés sont connus de façon exacte, de sorte qu'ils peuvent être utilisés dans le filtrage passe-haut en cours. Par exemple, on peut utiliser le filtre  The strict reversibility requirements of filters can be relaxed by noting the following. The high-pass coefficients are coded and decoded in the same order. The pixel values corresponding to previously decoded high-pass coefficients are accurately known, so that they can be used in the current high-pass filtering. For example, we can use the filter

suivant lorsqu'on utilise un ordre de tramage.  next when using a dithering order.

Hl(M)= '[-'(I+Z-)J+ [(8(Z2-z-) + (Z- + z-5))j L'utilisation d'un unique filtre passe-haut fixe n'est pas nécessaire. On peut utiliser des filtres adaptatifs ou des filtres multiples. Les données utilisées pour adapter des filtres ou faire la sélection parmi les filtres multiples doivent être limitées aux données qui sont disponibles dans le décodeur avent une opération de  H1 (M) = '[-' (I + Z-) J + [(8 (Z2-z-) + (Z- + z-5)) The use of a single fixed high-pass filter n ' is not necessary. Adaptive filters or multiple filters can be used. The data used to adapt filters or to make the selection among the multiple filters must be limited to the data that is available in the decoder.

filtrage inverse particulière.special inverse filtering.

Une manière d'utiliser des filtres multiples consiste à traiter les  One way to use multiple filters is to process the

coefficients passe-haut de façon progressive. D'autres opérations de filtrage passe-  high-pass coefficients in a progressive way. Other filtering operations

haut (Y1(0), yl(2), Y1(4),..) peuvent être traitées d'abord à l'aide d'un filtre réversible tel que le filtre passe-haut RTS. La suite du traitement (y1), Y1(3), Y1(5),...) utilise un filtre non réversible pouvant aller jusqu'à 6 prises intermédiaires, puisque les valeurs exactes des signaux d'entrée appliqués à la partie enchevauchement du filtre sont connus. Par exemple, on peut utiliser l'un quelconque des filtres suivants:  high (Y1 (0), yl (2), Y1 (4), ..) can be processed first using a reversible filter such as the high-pass filter RTS. The further processing (y1), Y1 (3), Y1 (5), ...) uses a non-reversible filter of up to 6 intermediate taps, since the exact values of the input signals applied to the overlapping part of the filter are known. For example, any of the following filters may be used:

-1 3 -3 1-1 3 -3 1

-1 4 -4 1-1 4 -4 1

-3 8 -8 3-3 8 -8 3

1 -5 10 -10 5 -11 -5 10 -10 5 -1

1 -4 8-8 4-1-1 -4 8-8 4-1-

Dans certains modes de réalisation, on peut remplacer le filtre passe-  In some embodiments, the pass filter can be replaced.

haut par une opération de prédiction/interpolation. Un dispositif de prédiction/interpolation peut prédire la différence existant entre une paire de signaux d'entrée à l'aide de n'importe quelle donnée qui est disponible dans le décodeur avant une opération de prédiction/interpolation particulière. La différence prédite est alors soustraite de la différence réelle des signaux d'entrée et est délivrée. Dans un mode de réalisation, on utilise des procédés de prédiction selon la technique antérieure, qui sont employés dans la DPCM, le codage progressif ou  up by a prediction / interpolation operation. A prediction / interpolation device can predict the difference between a pair of input signals using any data that is available in the decoder before a particular prediction / interpolation operation. The predicted difference is then subtracted from the actual difference of the input signals and is delivered. In one embodiment, prior art prediction methods, which are employed in the DPCM, are used.

le codage dans le domaine spatial.coding in the spatial domain.

En utilisant les filtres passe-bas et passe-haut selon l'invention, on effectue une décomposition du type multirésolution. Le nombre de niveaux de décomposition est variable et peut être quelconque. Toutefois, le nombre de  By using the low pass and high pass filters according to the invention, a multiresolution type decomposition is carried out. The number of decomposition levels is variable and can be any. However, the number of

niveaux de décomposition est couramment égal à deux, trois, quatre ou cinq.  levels of decomposition is commonly equal to two, three, four or five.

Par exemple, si l'on applique d'une façon récursive à une image la transformation par ondes élémentaires réversible, le premier niveau de décomposition agit sur le détail, ou résolution, le plus fin. Au premier niveau de  For example, if we apply recursively to an image reversible elementary waves transformation, the first level of decomposition acts on the detail, or resolution, the finer. At the first level of

décomposition, l'image est décomposée en quatre sous-images (par exemple sous-  decomposition, the image is decomposed into four sub-images (for example sub-images

bandes). Chaque sous-bande représente une bande de fréquences spatiales. Les sous-bandes du premier niveau sont désignées par 1IO, LHO, HL0 et HHO. Le processus de décomposition de l'image initiale implique un sous-échtilonnage, d'un facteur 2, à la fois dans la dimension horizontale et la dimension verticale, de sorte que les sous-bandes du premier niveau LL0, LHo, HL0 et HH0 ont chacune quatre fois moins de coefficients que le signal d'entrée ne possède de pixels (ou de coefficients) de l'image, comme représenté par exemple sur la figure 3A La sous-bande LLO contient simultanément l'information horizontale de basse fréquence et l'information verticale de basse fréquence. Typiquement, une grande partie de l'énergie de l'image est concentrée dans cette sous-bande. La sous-bande LH0 contient l'information horizontale de basse fréquence et l'information verticale de haute fréquence (par exemple l'information associée aux bords horizontaux). La sous-bande HLO contient l'information horizontale de haute fréquence et l'information verticale de basse fréquence (par exemple l'information associée aux bords verticaux). La sous-bande HHio0 contient l'information horizontale de haute fréquence et l'information verticale de haute  bands). Each subband represents a spatial frequency band. The first level subbands are designated as 1IO, LHO, HL0 and HHO. The process of decomposition of the initial image involves sub-scaling, by a factor of 2, in both the horizontal dimension and the vertical dimension, so that the first level sub-bands LL0, LHo, HL0 and HH0 each have four times less coefficients than the input signal has pixels (or coefficients) of the image, as shown for example in FIG. 3A. The sub-band LLO simultaneously contains the horizontal information of low frequency and low frequency vertical information. Typically, a large part of the image energy is concentrated in this sub-band. The sub-band LH0 contains the low frequency horizontal information and the high frequency vertical information (for example the information associated with the horizontal edges). The HLO sub-band contains the high frequency horizontal information and the low frequency vertical information (for example the information associated with the vertical edges). HHio0 subband contains high frequency horizontal information and high vertical information

fréquence (par exemple l'information concernant les diagonales ou les textures).  Frequency (eg information about diagonals or textures).

On produit chacun des deuxième, troisième et quatrième niveaux successifs inférieurs de décomposition en décomposant la sous-bande LL de basse fréquence du niveau précédent. Cette sous-bande LLO0 du premier niveau est décomposée de façon à produire des sous-bandes LL1, LH1, HL1 et HH1 du deuxième niveau, associé aux détails modérés. De la même façon, on décompose la sous-bande LL1 de façon à produire des sous-bandes LL2, LH2, HL2 et HH2 du troisième niveau, concernant le détail grossier. On décompose la sous-bande LL2 pour produire des sous-bandes LL3, LHI3 HL3 et HH3 du troisième niveau concernant les détails plus grossiers, comme représenté sur la figure 3D. Du fait du sous-échantillonnage de facteur 2, chaque sous-bande du deuxième niveau a une taille correspondant à 1/16 de la taille de l'image initiale. Chaque échantillon (par exemple pixel) de ce niveau représente le détail modéré de l'image initiale pour le même emplacement. De même, chaque sous-bande du troisième niveau a une taille égale à 1/64 de la taille de l'image initiale. Chaque pixel de ce niveau  Each of the second, third and fourth successive lower levels of decomposition is generated by decomposing the low frequency subband LL of the previous level. This first-level LLO0 sub-band is decomposed to produce second-level LL1, LH1, HL1, and HH1 sub-bands associated with moderate details. Similarly, sub-band LL1 is decomposed to produce LL2, LH2, HL2 and HH2 sub-bands of the third level for coarse detail. The LL2 sub-band is decomposed to produce third level LL3, LHI3 HL3 and HH3 sub-bands for the coarser details as shown in FIG. 3D. Because of the factor 2 subsampling, each subband of the second level has a size corresponding to 1/16 of the size of the initial image. Each sample (for example pixel) of this level represents the moderate detail of the initial image for the same location. Likewise, each sub-band of the third level has a size equal to 1/64 of the size of the initial image. Every pixel of this level

correspond au détail relativement grossier de l'image initiale pour le même endroit.  is the relatively coarse detail of the original image for the same location.

De plus, chaque sous-bande du quatrième niveau a une taille égale à 1/256 de la  In addition, each subband of the fourth level has a size equal to 1/256 of the

taille de l'image initiale.size of the initial image.

Puisque les images décomposées sont matériellement plus petites que les images initiales du fait du sous-échantillonnage, on peut utiliser, pour enregistrer toutes les sous-bandes décomposées, la même mémoire que celle ayant  Since the decomposed images are materially smaller than the initial images due to downsampling, the same memory can be used to record all decomposed subbands.

servi à mémoriser l'image initiale. En d'autres termes, l'image initiale et les sous-  served to memorize the initial image. In other words, the initial image and the sub-

bandes décomposées L.O et LL1 sont rejetées et ne sont pas enregistrées dans une  decomposed bands L.O and LL1 are rejected and are not recorded in a

décomposition à trois niveaux.decomposition at three levels.

Il existe une relation parent-enfant entre une composante de sous-  There is a parent-child relationship between a sub-component

bande représentative du détail grossier et une composante de sous-bande correspondante associée au niveau de détail plus fin lui faisant immédiatement  a band representative of the coarse detail and a corresponding subband component associated with the finer level of detail immediately

suite.after.

Alors que l'on n'a représenté que des niveaux de décomposition à quatre sous-bandes, on pourrait aller jusqu'à des niveaux plus élevés selIon les exigences d'un système particulier. De plus, avec d'autres transformations, par exemple DCT ou sous-bandes linéairement séparées, on peut définir des relations  While only four subband levels of decomposition have been shown, higher levels may be possible depending on the requirements of a particular system. In addition, with other transformations, for example DCT or linearly separated subbands, relationships can be defined.

parent-enfant différentes.parent-child different.

Le processus de décomposition du type multirésolution peut être un système de filtrage tel que décrit en liaison avec la figure 4A. Un signal d'entrée représentant un signal unidimensionnel de longueur L est filtré en passe-bas et en passe-haut par des unités de filtrage 401 et 402 avant d'être sous-échantillonné d'un facteur 2 dans des unités 403 et 404. Un signal de sortie sous-échantillonné venant de l'unité 403 est filtré en passe-bas et en passe-haut par des unités de filtrage 405 et 406 avant d'être sous-échantillonné d'un facteur 2 dans des unités respectives 407 et 408. Des composantes de sous-bandes L et H apparaissent sur les sorties respectives des unités 407 et 408. De même, le signal de sortie de l'unité 405 est filtré en passe-bas et en passe-haut par des unités 409 et 410 avant d'être sous-échantillonné par des unités respectives 411 et 412. Des composantes de sous-bandes L et H apparaissent sur les sorties respectives des unités 411 et 412. Comme décrit ci-dessus, les filtres d'un mode de réalisation de l'invention qui sont utilisés dans la décomposition en sous-bandes sont des filtres numériques formant des miroirs en quadrature qui servent à séparer les bandes de faréquence horizontale et verticale en bandes de haute fréquence et de basse fréquence. La figure 4B illustre une transformation bidimensionnelle à deux niveaux. La figure 4C illustre également une transformation bidimensionnelle à deux niveaux, mise en oeuvre à l'aide de filtres unidimensionnels, tels que ceux présentés sur les figures 10 et 11. On applique les filtres bidimensionnels à une  The multiresolution type decomposition process may be a filtering system as described in connection with FIG. 4A. An input signal representing a one-dimensional signal of length L is low-pass and high-pass filtered by filter units 401 and 402 before being downsampled by a factor of 2 in units 403 and 404. A subsampled output signal from the unit 403 is low-pass and high-pass filtered by filter units 405 and 406 before being downsampled by a factor of 2 in respective units 407 and 406. 408. L and H subband components appear on the respective outputs of the units 407 and 408. Similarly, the output signal of the unit 405 is low-pass and high-pass filtered by units 409 and 409. 410 before being downsampled by respective units 411 and 412. Subband components L and H appear on the respective outputs of the units 411 and 412. As described above, the filters of one embodiment of the invention which are used in the subband decomposition are digital filters forming quadrature mirrors used to separate horizontal and vertical frequency bands in high frequency and low frequency bands. Figure 4B illustrates a two-dimensional two-dimensional transformation. FIG. 4C also illustrates a two-dimensional two-dimensional transformation, implemented using one-dimensional filters, such as those shown in FIGS. 10 and 11. The two-dimensional filters are applied to a

position sur deux, de façon à éviter les calculs rendus inutiles par le sous-  position out of two, so as to avoid unnecessary calculations by the sub-

échantillonnage. Dans un mode de réalisation, les filtres unidimensionniels se  sampling. In one embodiment, the unidimensional filters are

partagent les calculs entre calculs passe-bas et calculs passe-haut.  share calculations between low-pass and high-pass calculations.

Ainsi, l'invention fournit un système de compression et de décompression dans lequel on utilise des filtres réversibles avec chevauchement de longueur non minimale. La figure 4D est un schéma fonctionnel d'un mode de réalisation d'un tel système. Comme représenté sur la figure 4D, on effectue initialement une décomposition hiérarchique. Les résultats de la décomposition  Thus, the invention provides a compression and decompression system in which reversible filters with non-minimal length overlap are used. Figure 4D is a block diagram of an embodiment of such a system. As shown in FIG. 4D, a hierarchical decomposition is initially performed. The results of the decomposition

hiérarchique sont envoyés à un dispositif de compression pour y êtrc comprimés.  hierarchical are sent to a compression device to be compressed.

La compression effectuée peut comporter une quantification vectorielle, une quantification scalaire, un comptage des longueurs de points mémoire, un codage de Huffman, etc. A la sortie du dispositif de compression, on trouve des données  The compression performed may include vector quantization, scalar quantization, counting of memory point lengths, Huffman coding, etc. At the output of the compression device, there is data

comprimées qui représentent une version comprimée des données d'entrée initiales.  compressed which represent a compressed version of the initial input data.

Un dispositif de décompression peut recevoir les données à un certain moment dans l'avenir et les décomprimer. L'invention effectue alors une décomposition inverse en utilisant des filtres réversibles avec chevauchement de longueur non  A decompression device can receive the data at some point in the future and decompress them. The invention then performs an inverse decomposition using reversible filters with non-overlapping lengths.

minimale pour produire une version reconstruite des données initiales.  minimum to produce a reconstructed version of the original data.

Les filtres à ondes élémentaires réversible selon l'invention peuvent également être utilisés dans des systèmes d'analyse et d'amélioration, tels que présentés sur la figure 4E. Comme on peut le voir sur la figure 4E, une décomposition hiérarchique est appliquée à des données d'entrée à l'aide de filtres à  The reversible elementary wave filters according to the invention can also be used in analysis and improvement systems, as shown in FIG. 4E. As can be seen in Figure 4E, a hierarchical decomposition is applied to input data using

ondes élémentaires réversibles, avec chevauchement, de longueur non minimale.  Reversible, overlapping elementary waves of non-minimal length.

L'unité d'analyse reçoit les coefficients produits par les filtres et les classe en des décisions, par exemple, plutôt que de coder les coefficients complètement, les informations importantes étant seules extraites. Par exemple, dans un système d'archivage de documents, des pages blanches peuvent être reconnues à l'aide de la seule sous-bande passe-bas la plusgrossière. Un autre exemple consisterait à n'utiliser que l'information passe-haut venant d'une sous-bande particulière pour  The analysis unit receives the coefficients produced by the filters and classifies them into decisions, for example, rather than coding the coefficients completely, the important information being extracted alone. For example, in a document filing system, blank pages can be recognized using only the lowest single-pass sub-band. Another example would be to use only the high-pass information from a particular sub-band for

distinguer entre l'image d'un texte et des images représentant des scènes naturelles.  distinguish between the image of a text and images representing natural scenes.

On peut utiliser la décomposition hiérarchique pour enregistrer des images multiples, de façon qu'un enregistrement grossier soit d'abord effectué à l'aide de sous-bandes grossières. Dans un autre mode de réalisation, on soumet les coefficients à une amélioration ou un filtrage, que l'on fait suivre d'une décomposition inverse. On peut réaliser une meilleur piqué, une amélioration des  Hierarchical decomposition can be used to record multiple images, so that coarse recording is first done using coarse subbands. In another embodiment, the coefficients are subjected to an improvement or a filtering, which is followed by an inverse decomposition. We can achieve a better dive, an improvement of

bords, un contrôle du bruit, etc., en utilisant une décomposition hiérarchique.  edges, a noise control, etc., using a hierarchical decomposition.

Ainsi, l'invention fournit une transformation par ondes élémentaires qui sera utilisée dans des systèmes d'analyse et de filtrage/amélioration dans le domaine de  Thus, the invention provides an elementary wave transformation which will be used in analysis and filtering / enhancement systems in the field of

la fréquence et dans le domaine conjoint temps/espace.  frequency and in the joint time / space domain.

Codage par implantation du degré de signification des bits Selon l'invention, les coefficients produits en résultat de la décomposition par ondes élémentaires sont soumis à un codage entropique. Selon l'invention, les coefficients subissent initialement un codage par implantation dans lequel les coefficients sont ordonnés suivant un ordre visuellement significatif ou, plus généralement, ordonnés par rapport à une certaine métrique d'erreur (par exemple une métrique de distorsion). Une métrique d'erreur ou de distorsion comporte une erreur de crête et une erreur quadratique moyenne (MSE). De plus, la mise en ordre peut être effectuée pour privilégier la position spatiale de signification (ou de poids) des bits, parce que celle-ci est mieux adaptée à l'interrogation d'une base de données, ou selon un critère directionnel (verticalement, horizontalement, diagonalement, etc.). L'invention utilise des techniques multiples de codage par implantation, o une partie des coefficients, ayant un certain degré de signification, sont codés à l'aide d'une technique de  Coding by implementation of the degree of significance of the bits According to the invention, the coefficients produced as a result of the elementary wave decomposition are subjected to entropy coding. According to the invention, the coefficients initially undergo an implantation coding in which the coefficients are ordered according to a visually significant order or, more generally, ordered with respect to a certain error metric (for example a distortion metric). An error or distortion metric has a peak error and a mean squared error (MSE). In addition, the ordering can be done to favor the spatial position of significance (or weight) of the bits, because it is better adapted to the interrogation of a database, or according to a directional criterion ( vertically, horizontally, diagonally, etc.). The invention uses multiple implantation coding techniques, where part of the coefficients, having a certain degree of significance, are coded using a technique of

codage, tandis que les coefficients restants sont codés avec d'autres techniques.  coding, while the remaining coefficients are coded with other techniques.

Selon l'invention, une modélisation basée sur la fréquence et une modélisation basée conjointement sur l'espace et la fréquence sont deux systèmes différents de codage par implantation utilisés pour coder les coefficients produits à l'aide de la transformation par ondes élémentaires selon l'invention. La modélisation basée sur la fréquence implique la prédiction d'un certain nombre de coefficient à une fréquence plus élevée que lors du codage d'un coefficient à une frtéqunce inférieure. La modélisation basée conjointement sur l'espace et la fréquence tire avantage à la fois des bandes de fréquence connues et des pixels (ou données) voisins. Un mode de réalisation de la modélisation basée conjointement sur l'espace et la fréquence, à laquelle on se rapporte ici, est une modélisation du type horizon. On met initialement les données dans lc format signe/plitu, axès quoi on trie les données en fonction de leur degré de signification. Après que les données ont été triées par rapport à la métrique de signification donnée, on code les données. Le codage basé sur la fréquence et le codage de type horizon peuvent s'appuyer tous deux sur une mise en ordre d'après le degré de signification des bits,  Frequency-based modeling and space-based and frequency-based modeling are two different implementation coding schemes used to code the coefficients produced using the elementary wave transformation according to the present invention. invention. Frequency-based modeling involves the prediction of a number of coefficients at a higher frequency than when encoding a coefficient at a lower frequency. Space-based and frequency-based modeling takes advantage of both known frequency bands and neighboring pixels (or data). One embodiment of space and frequency-based modeling, to which reference is made here, is horizon-type modeling. The data is initially put in the sign / plitu format, where the data are sorted according to their degree of significance. After the data has been sorted with respect to the given meaning metric, the data is coded. Frequency-based coding and horizon-type coding can both rely on ordering according to the bit significance level,

mais ils utilisent des procédés différents pour le codage des événements.  but they use different methods for event coding.

Si l'on suppose un signal numérique, x(n) est représenté pour chaque x(n), par R bits de précision, et le codage implanté selon l'invention code le bit le plus significatif (ou les bits les plus significatifs) de chaque x(n) du signal, puis le bit ayant le degré suivant de signification (ou les bits), et ainsi de suite. Par exemple, dans le cas d'une mise en ordre visuellement définie, une image qui demande une meilleure qualité au centre que dans les coins ou près des bords (par exemple certaines images médicales) peut être soumise à un codage tel que les bits d'ordre inférieur des pixels centraux peuvent être codés avant les bits d'ordre  Assuming a digital signal, x (n) is represented for each x (n), by R precision bits, and the encoding implemented according to the invention encodes the most significant bit (or the most significant bits) each x (n) of the signal, then the bit having the next degree of meaning (or the bits), and so on. For example, in the case of a visually defined ordering, an image that requires a better quality in the center than in the corners or near the edges (for example some medical images) can be subjected to a coding such that the bits of lower order of the center pixels can be encoded before the order bits

supérieur des pixels situés sur les bords.  higher pixels on the edges.

Pour un système à implantation s'appuyant sur une mesure de distorsion du degré de signification des bits, les valeurs binaires des données sont ordonnées en fonction de l'amplitude. Dans le cas o les valeurs sont des entiers non négatifs, comme c'est le cas pour l'intensité des pixels, l'ordre qui peut être utilisé est l'ordre des plans mémoire (en allant par exemple du plan mémoire le plus significatif au plan mémoire le moins significatif). Dans des modes de réalisation o les entiers négatifs par complémentation à 2 sont également autorisés, l'ordre d'implantation du bit de signe est le même que le premier bit non nul de la valeur absolue de l'entier. Par conséquent, on ne tient pas compte du bit de signe avant qu'un bit non nul n'ait été codé. De ce fait, les valeurs possibles d'unm événement du système à implantation du degré de signification des bits selon l'invention sont des valeurs ternaires avant le codage du bit de signe. Ces événements ternaires sont 'non significatif", 'significatif positif" et 'significatif négatif". Par exemple, si l'on utilise la notation signe/amplitude, le nombre de 16 bits désignant 7 est: Du point de vue du plan mémoire, les douze premières décisions seront 'non significatif". Le premier bit 1 apparaît à la treizième décision. La treizième décision sera "significatif négatif". Apres codage du bit de signe, les événements possibles se ramènent à des valeurs binaires, à savoir 0 ou 1. Les quatozime et  For a siting system based on bit distortion measurement of the bit significance, the binary values of the data are ordered according to the amplitude. In the case where the values are non-negative integers, as is the case for the intensity of the pixels, the order that can be used is the order of the memory planes (by going for example from the most significant memory plane at the least significant memory level). In embodiments where the negative integers by complementation to 2 are also allowed, the order of implementation of the sign bit is the same as the first non-zero bit of the absolute value of the integer. Therefore, the sign bit is ignored before a non-zero bit has been encoded. As a result, the possible values of an event of the Bit Significance System according to the invention are ternary values prior to encoding the sign bit. These ternary events are 'not significant', 'significant positive' and 'negative significant' For example, if we use the notation sign / amplitude, the number of 16 bits designating 7 is: From the point of view of the memory plane, the first twelve decisions will be 'not significant'. The first bit 1 appears in the thirteenth decision. The thirteenth decision will be "significant negative". After coding the sign bit, the possible events are reduced to binary values, namely 0 or 1. The quatozime and

quinzième décisions sont toutes deux "1".  Fifteenth decisions are both "1".

Selon un mode de réalisation de l'invention, on utilise une liste pour conserver la trace des coefficients. Dans un mode de réalisation, un drapeau à 1 bit, appelé drapeau de groupe, associé à chaque coefficient, différencie les coefficients dont le bit de signe n'a pas encore été codé des coefficients sont le bit de signe a déjà été codé. Dans un autre mode de réalisation, on peut utiliser, au lieu d'un bit de drapeau, deux listes ou plus. Dans un autre mode de réalisation, on utilise une  According to one embodiment of the invention, a list is used to keep track of the coefficients. In one embodiment, a 1-bit flag, called a group flag, associated with each coefficient, differentiates the coefficients whose sign bit has not yet been encoded, and the sign bit has already been encoded. In another embodiment, two or more lists may be used instead of a flag bit. In another embodiment, a

seule liste sans drapeau.only list without flag.

Dans un autre mode de réalisation, on n'utilise pas de listes. Toutes les décisions concernant un coefficient sont produites et étiquetées selon le degré de signification, avant qu'aucune décision concernant le coefficient suivant ne soit produite. Ceci supprime la nécessité d'enregistrer tous les coefficients dans des listes. Processus de codage et de décodage selon l'invention Les organigrammes suivants, présentés sur les figures 25A, 25B à 30A, B, décrivent des modes de réalisation des processus de codage et de décodage  In another embodiment, no lists are used. All decisions concerning a coefficient are produced and labeled according to the degree of significance, before any decision concerning the following coefficient is produced. This eliminates the need to record all coefficients in lists. Coding and Decoding Process According to the Invention The following flow diagrams, shown in FIGS. 25A, 25B to 30A, B, describe embodiments of the coding and decoding processes.

selon l'invention.according to the invention.

Les figures 25A et 25B représentent un organigrammc illustrant le  Figures 25A and 25B show an organigram illustrating the

processus de transformation et de modélisation du codeur selon l'invention.  process for transforming and modeling the encoder according to the invention.

Comme on peut le voir sur les figures 25A, 25B, le processus de transformation et de modélisation du codeur commence par l'acquisition de données d'entrée (bloc de traitement 2501). Apres l'acquisition de données d'entrée, l'invention applique  As can be seen in Figs. 25A, 25B, the encoder transformation and modeling process begins with the acquisition of input data (processing block 2501). After the acquisition of input data, the invention applies

un filtre à ondes élémentaires réversible (bloc de traitement 2502).  a reversible elementary wave filter (treatment block 2502).

Un essai détermine ensuite si un autre niveau de décomposition est souhaité (bloc de traitement 2503). Si un autre niveau de décomposition est souhaité, le traitement se poursuit, dans le bloc de traitement 2504, o le filtre réversible est appliqué aux coefficients LL résultant de la décomposition immédiatement précédente, et le traitement revient au bloc de traitement 2503. De cette manière, l'invention permet d'effectuer tout nombre de niveaux de décomposition. Si aucun autre niveau de décomposition n'est souhaité, le traitement se poursuit, dans le bloc de traitement 2506, o le drapeau de groupe relatif à chaque coefficient est initialisé au groupe A. Apres initialisation du drapeau de groupe, le plan mémoire associé au passage A, soit SA, est positionné sur le plan mémoire le plus significatif (max) (bloc de traitement 2507). Ensuite, le plan mémoire associé au passage B, soit SB, est positionné sur le plan mémoire le plus significatif venant  A test then determines whether another level of decomposition is desired (processing block 2503). If another level of decomposition is desired, processing continues in the process block 2504 where the reversible filter is applied to the LL coefficients resulting from the immediately preceding decomposition, and the process returns to the process block 2503. In this way the invention makes it possible to perform any number of decomposition levels. If no other level of decomposition is desired, the processing continues, in the processing block 2506, where the group flag relating to each coefficient is initialized to group A. After initialization of the group flag, the memory plane associated with the passage A, ie SA, is positioned on the most significant memory plane (max) (processing block 2507). Then, the memory plane associated with the passage B, ie SB, is positioned on the most significant memory plane coming from

ensuite (max-1) (bloc de traitement 2508).  then (max-1) (processing block 2508).

Ensuite, un essai détermine s'il faut coder le plan mémoire associé au passage A, SA, avec un modèle basé sur la fréquence (bloc de traitement 2509). Si le plan mémoire SA doit être codé à l'aide d'un modale basé sur la mémoire, le traitement se poursuit dans le bloc de traitement 2510, o chaque cocfficient est modélisé à l'aide du modèle basé sur la fréquence et du codage entropique. Au contraire, si le plan mémoire SA ne doit pas être codé à l'aide du modèle basé sur la fréquence, le traitement se poursuit dans le bloc de traitement 2511, o chaque coefficient est modélisé à l'aide d'un modèle basé conjointement sur l'espace et la  Then, a test determines whether to encode the memory array associated with the A, SA pass, with a frequency-based model (processing block 2509). If the memory array SA is to be encoded using a memory-based modal, the processing proceeds to the processing block 2510, where each cue is modeled using the frequency-based model and the encoding entropic. On the contrary, if the SA memory plane is not to be encoded using the frequency-based model, the processing continues in the processing block 2511, where each coefficient is modeled using a jointly-based model. on space and the

* fréquence et d'un codage entropique.* Frequency and entropy coding.

Dans l'un ou l'autre cas, le traitement se poursuit après cela dans le bloc de traitement 2512, o un essai détermine si le plan mémoire SA est supérieur ou égal à zéro, afin d'indiquer s'il s'agit du dernier plan mémoire. Si le plan mémoire  In either case, the processing continues after that in the processing block 2512, where a test determines whether the SA memory plane is greater than or equal to zero, to indicate whether it is the last memory map. If the memory map

SA est supérieur ou égal à zéro, le traitement revient au bloc de traitement 2509.  SA is greater than or equal to zero, the processing returns to the processing block 2509.

Inversement, si le plan mémoire SA n'est pas supérieur ou égal à zéro, le traitement se poursuit dans le bloc de traitement 2513, o un essai détermine si le plan mémoire SB est supérieur ou égal à zéro, de sorte que le traitement détermine si le plan mémoire est le dernier plan mémoire devant subir un passage B. Si le plan mémoire SB est supérieur ou égal à zéro, le traitement se poursuit dans le bloc de traitement 2509. Toutefois, si le plan mémoire SB n'est pas supérieur ou égal à zéro, le traitement se poursuit dans le bloc de traitement 2514, o les donnces codées sont émises sur un canal ou enregistrées dans une mémoire. Après l'enregistrement ou l'émission des données codées, le processus de transformation  Conversely, if the memory plane SA is not greater than or equal to zero, the processing continues in the processing block 2513, where a test determines whether the memory plane SB is greater than or equal to zero, so that the processing determines if the memory plane is the last memory plane to undergo a passage B. If the memory plane SB is greater than or equal to zero, the processing continues in the processing block 2509. However, if the memory plane SB is not greater than or equal to zero, the processing continues in the processing block 2514, where the coded data is transmitted on a channel or stored in a memory. After the recording or transmission of the coded data, the transformation process

et de modélisation du codeur selon l'invention prend fin.  and modeling of the encoder according to the invention ends.

Les figures 26A et 26B illustrent un processus de transformation et de modélisation du décodeur selon l'invention. Comme on peut le voir sur les figures 26A, 26B, le processus de transformation et de modélisation du décodeur selon  FIGS. 26A and 26B illustrate a transformation and modeling process of the decoder according to the invention. As can be seen in FIGS. 26A, 26B, the process of transforming and modeling the decoder according to

l'invention commence par extraire des données codées (bloc de traitement 2601).  the invention begins by extracting coded data (processing block 2601).

Les données codées peuvent être reçues de la part d'un canal, d'une mémoire ou d'un autre système de transmission. Après extraction des données codées, un drapeau de groupe relatif à chaque coefficient est initialisé sur le groupe A (bloc de traitement 2602). Suite à cette initialisation, le plan mémoire associé au passage A, soit SA, est positionné sur le plan mémoire le plus significatif (max) (bloc de traitement 2603) et le plan mémoire associé au passage B, soit SB, est positionné  The encoded data may be received from a channel, memory, or other transmission system. After extracting the coded data, a group flag relating to each coefficient is initialized on the group A (processing block 2602). Following this initialization, the memory plane associated with the passage A, ie SA, is positioned on the most significant memory plane (max) (processing block 2603) and the memory plane associated with the passage B, namely SB, is positioned.

sur le plan mémoire le plus significatif suivant (max-1) (bloc de traitement 2604).  on the next most significant memory plane (max-1) (processing block 2604).

Alors, la valeur de chaque coefficient est positionnée sur une valeur initiale zéro  Then the value of each coefficient is set to an initial value of zero

(bloc de traitement 2605).(processing block 2605).

Après initialisation à zéro de la valeur de chaque coefficient, un essai détermine si le plan mémoire SA doit ou non être décodé à l'aide d'un modèle basé sur la fréquence (bloc de traitement 2606). Si le plan mémoire SA doit être décodé à l'aide d'un modèle basé sur la fréquence, le traitement passe au bloc de traitement 2607, o chaque coefficient est modélisé à l'aide d'un modèle basé sur la fréquence et d'un décodage entropique. Si le plan mémoire SA ne doit pas être décodé à l'aide d'un modèle basé sur la fréquence, le traitement se poursuit dans le bloc de traitement 2608, o chaque coefficient est modélisé à l'aide d'un modèle  After initializing the value of each coefficient to zero, a test determines whether or not the memory array SA is to be decoded using a frequency-based model (processing block 2606). If the SA memory plane is to be decoded using a frequency-based model, the processing proceeds to processing block 2607, where each coefficient is modeled using a frequency-based model. an entropy decoding. If the SA memory plane is not to be decoded using a frequency-based model, processing continues in the process block 2608, where each coefficient is modeled using a model

basé conjointement sur l'espace et la fréquence et un décodage entropiquc.  based jointly on space and frequency and entropy decoding.

Après que chaque coefficient a été modélisé, le traitement se poursuit dans le bloc de traitement 2609, o il est déterminé si le plan mémoire SA est le dernier plan mémoire au moyen d'un essai visant à indiquer s'il est ou non supérieur ou égal à zéro. Si le plan mémoire SA est supérieur ou égal à zéro, le traitement se poursuit dans le bloc de traitement 2606. Inversement, si le plan, mémoire SA n'est pas supérieur ou égal à zéro, alors un essai détermine si le plan mémoire SB associé au passage B est supérieur ou égal à zéro (bloc de traitement 2610), ceci indiquant qu'il est le dernier plan mémoire associé à un passage B. S'il en est ainsi, le traitement se poursuit dans le bloc de traitement 2606 en vue de continuer le décodage. Inversement, si le plan mémoire associé au passage B, soit SB, n'est pas supérieur ou égal à zéro, un filtre réversible inverse est appliqué sur les coefficients, à partir du niveau le plus grosier de la décomposition (bloc de traitement 2611). Un essai détermine ensuite si tous les niveaux ont été soumis à un filtrage inverse (bloc de traitement 2612). S'il n'en est pas ainsi, le filtre réversible inverse est appliqué de nouveau sur les coefficients, au  After each coefficient has been modeled, the processing continues in the processing block 2609, where it is determined whether the memory array SA is the last memory array by means of an attempt to indicate whether or not it is higher or lower. equal to zero. If the memory plane SA is greater than or equal to zero, the processing continues in the processing block 2606. Conversely, if the plane, memory SA is not greater than or equal to zero, then a test determines whether the memory plane SB associated with the passage B is greater than or equal to zero (processing block 2610), this indicating that it is the last memory plane associated with a passage B. If this is so, the processing continues in the processing block 2606 to continue decoding. Conversely, if the memory plane associated with the passage B, ie SB, is not greater than or equal to zero, an inverse reversible filter is applied to the coefficients, starting from the coarsest level of the decomposition (processing block 2611). . A test then determines whether all levels have been subjected to inverse filtering (processing block 2612). If this is not the case, the inverse reversible filter is applied again to the coefficients, to the

niveau le plus grossier restant de la décomposition (bloc de traitement 2613).  the coarsest level remaining from the decomposition (processing block 2613).

Après cela, le traitement revient au bloc de traitement 2612 afin qu'il soit de  After that, the treatment returns to processing block 2612 so that it is

nouveau vérifié si tous les niveaux ont été soumis au filtrage inverse.  again checked if all levels were subjected to reverse filtering.

Une fois que tous les niveaux ont été soumis au filtrage inverse, le traitement passa au bloc de traitement 2612, dans lequel l'enregistrement ou  Once all the levels have been subjected to the inverse filtering, the processing proceeds to the processing block 2612, in which the recording or

l'émission de données reconstruites a lieu.  the emission of reconstructed data takes place.

Les figures 27A et 27B illustrent un mode de réalisation du processus de modélisation de chaque coefficient. Lc processus décrit représente le processus de modélisation relatif à la modélisation basée sur la fréquence ou à la modélisation JSF et au codage ou au décodage. Ainsi, chacun des quatre blocs (2507, 2508, 2607, 2608) peuvent être mis en oeuvre au moyen du proccssus de modélisation des figures 27A et 27B. Comme on peut le voir sur les figures 27A et 27B, le processus commence par vérifier initialement si la modélisation doit être effectuée en un seul passage (bloc de traitement 2701). Si la modélisation n'a pas lieu en un seul passage, un essai détermine si le plan mémoire SA est supérieur au plan mémoire SB (bloc de traitement 2702). Si ce n'est pas le cas, alors le processus passe au bloc de traitement 2703, o un drapeau ("faire drapeau A") est effacé afin d'indiquer qu'un passage A ne doit pas être effectué. Si le plan mémoire SA est supérieur au plan mémoire SB, alors le traitement se poursuit dans le bloc de traitement 2704, o le drapeau "faire drapeau A" est positionné pour  Figs. 27A and 27B illustrate one embodiment of the modeling process of each coefficient. The described process represents the modeling process related to frequency-based modeling or JSF modeling and coding or decoding. Thus, each of the four blocks (2507, 2508, 2607, 2608) can be implemented using the modeling process of Figs. 27A and 27B. As can be seen in Figs. 27A and 27B, the process initially begins with checking whether the modeling is to be performed in a single pass (processing block 2701). If the modeling does not take place in a single pass, a test determines whether the memory plane SA is greater than the memory plane SB (processing block 2702). If this is not the case, then the process proceeds to processing block 2703, where a flag ("flag A") is cleared to indicate that a passage A should not be performed. If the memory plane SA is greater than the memory plane SB, then the processing continues in the processing block 2704, where the flag "flag A" is set to

indiquer qu'un passage A doit être effectué.  indicate that a passage A must be made.

Après l'un ou l'autre des blocs de traitement 2703 et 2704, lec traitement passe au bloc de traitement 2705, o un essai détermine si le plan mémoire SB est égal au plan mémoire SA. Si les plans mémoire ne sont pas égaux, l'invention efface un drapeau ("faire drapeau B") afin d'empêcher qu'un passage B ait lieu  After either of the process blocks 2703 and 2704, the process proceeds to the process block 2705, where an experiment determines whether the memory plane SB is equal to the memory plane SA. If the memory plans are not equal, the invention erases a flag ("flag B") to prevent a passage B takes place

(bloc de traitement 2705), et le traitement passe ensuite au bloc de traitement 2707.  (processing block 2705), and the treatment then proceeds to processing block 2707.

Si le plan mémoire SB est égal au plan mémoire SA, le drapeau "faire drapeau B" est positionné pour indiquer qu'un passage B doit être effectué (bloc de traitement 2706), et le traitement passe ensuite également au bloc de  If the memory plane SB is equal to the memory plane SA, the flag "flag B" is set to indicate that a passage B must be performed (processing block 2706), and the processing then also passes to the block of

traitement 2707.2707 treatment.

Dans le bloc de traitement 2707, un essai détermine si le drapeau de passage A est positionné et si la modélisation à ramification zéro doit être effectuée. Si le drapeau indique qu'un passage A doit avoir lieu et qu'une modélisation à ramification zéro doit être effectuée, un drapeau 'déterminé/non déterminé" est initialisé dans l'état "non déterminé" pour chaque coefficient (bloc de traitement 2708), et le traitement passe au bloc de traitement 2709. Inversement, si le drapeau d'indication de passage A ou l'indication de modélisation à ramification zéro ne sont positionnés, le traitement passe directement au bloc de traitement 2709. Dans le bloc de traitement 2709, le premier coefficient est fixé à la variable C. Une fois que le premier coefficient s'est vu attribuer la variable C, un essai détermine si le drapeau d'indication de passage B est positionné (bloc de traitement 2719). Si le drapeau d'indication de passage B (faire drapeau B) est positionné, l'invention applique un passage B sur le coefficient C (bloc de traitement 2710), et le traitement passe au bloc de traitement 2711. Inversement, si le drapeau de passage B n'est pas positionné, alors un passage B n'est pas appliqué  In the process block 2707, a test determines whether the passage flag A is set and the zero branching modeling is to be performed. If the flag indicates that a passage A is to occur and zero branching modeling is to be performed, a 'determined / undetermined' flag is initialized in the 'not determined' state for each coefficient (processing block 2708 ), and the processing proceeds to the processing block 2709. Conversely, if the passing indication flag A or the zero branching indication is set, the processing goes directly to the processing block 2709. In the block of 2709, the first coefficient is set to the variable C. Once the first coefficient is assigned the variable C, a test determines whether the passage indication flag B is set (processing block 2719). the flag of passage B (flag B) is set, the invention applies a passage B on the coefficient C (processing block 2710), and the treatment passes to the processing block 2711. Conversely, if the flag of pa ssage B is not set, then a B pass is not applied

sur C, et le traitement passe directement au bloc de traitement 2711.  on C, and the treatment goes directly to processing block 2711.

Un essai détermine ensuite si le drapeau d'indication de passage A "faire drapeau A" est positionné (bloc de traitement 2711). Si le drapeau d'indication de passage A est positionné, un passage A est alors appliqué sur le coefficient C (bloc de traitement 2717). Ensuite, le traitement passe au bloc de traitement 2713. Si le drapeau d'indication de passage A n'est pas positionné, le traitement se poursuit dans le bloc de traitement 2713 sans qu'un passage A ne soit appliqué sur le coefficient C Dans le bloc de traitement 2713, un essai détermine si le coefficient C est le dernier coefficient. Si le coefficient C n'est pas le dernier coefficient, alors le traitement se poursuit dans le bloc de traitement 2714, o le coefficient suivant se  A test then determines whether the flag flag A "flag A" is set (processing block 2711). If the passage indication flag A is set, a passage A is then applied to the coefficient C (processing block 2717). Thereafter, the processing proceeds to processing block 2713. If the passing indication flag A is not set, processing continues in processing block 2713 without a passage A being applied to the coefficient C. the processing block 2713, a test determines whether the coefficient C is the last coefficient. If the coefficient C is not the last coefficient, then the treatment continues in the processing block 2714, where the next coefficient is

voit attribuer la variable C, et le traitement passe au bloc de traitement 2719.  is assigned variable C, and the processing proceeds to processing block 2719.

Toutefois, si le coefficient C est le dernier coefficient, le traitement passe au bloc de traitement 2715, o un essai détermine si le drapeau de passage B "faire drapeau B" est positionné. Si le drapeau de passage B est positionné, le plan mémoire SB est fixé de façon à être égal au plan mémoire SB-1 (bloc de traitement 2716), puis le traitement passe au bloc de traitement 2717. Si le drapeau d'indication de passage B n'est pas positionné, le traitement se poursuit dans le bloc de traitement 2717. Dans le bloc de traitement 2717, un essai détermine si le drapeau de passage A est positionné. S'il est positionné, alors le plan mémoire SA est fixé de façon à être égal au plan mémoire SA-1 (bloc de traitement 2718), puis le traitement prend fin. De même, si le drapeau de passage A n'est pas positionné,  However, if the coefficient C is the last coefficient, the processing proceeds to the processing block 2715, where a test determines whether the passing flag B "flag B" is set. If the passage flag B is set, the memory plane SB is set to be equal to the memory plane SB-1 (processing block 2716), and then the processing proceeds to the processing block 2717. If the flag indication of passage B is not set, processing continues in the process block 2717. In the process block 2717, a test determines whether the passage flag A is set. If it is set, then the SA memory plane is set to be equal to the SA-1 memory array (processing block 2718), and then the processing is terminated. Likewise, if the passage flag A is not set,

le traitement prend fin alors immédiatement.  the treatment ends then immediately.

Dans certains modes de réalisation, le fait qu'un coefficient se trouvant en un plan mémoire particulier se trouve dans le groupe A ou dans le groupe B peut être déterminé sans l'aide d'un bit de drapeau. Ceci économise un bit de mémoire par coefficient, ce qui peut être important pour les grandes images. Au lieu de cela, on compare un masque utilisant une logique ET avec un coefficient. Si le résultat de l'opération ET est zéro, le bit se trouve dans le groupe A; sinon, il est dans le groupe B. Un exemple de tels masques est présenté dans le tableau 7 pour huit plans mémoire. On note que ces masques sont les compléments à 2 de la  In some embodiments, the fact that a coefficient lying in a particular memory plane is in the group A or in the group B can be determined without the aid of a flag bit. This saves one memory bit per coefficient, which can be important for large images. Instead, we compare a mask using AND logic with a coefficient. If the result of the AND operation is zero, the bit is in group A; otherwise, it is in group B. An example of such masks is shown in Table 7 for eight memory planes. We note that these masks are the complements to 2 of the

valeur 2(plan mémoire+l) (sans le bit de signe).  value 2 (memory plane + l) (without the sign bit).

TABLEAU 7 Masques Plan mémoire Masque (binaire)  TABLE 7 Masks Memory map Mask (binary)

7 000000007,000,000

6 100000006 10000000

1100000011000000

4 111000004 11100000

3 111100003 11110000

2 111110002 11111000

1 111111001 11111100

O 11111110O 11111110

Puisque des masques indépendants peuvent être respectivement attribués au passage A et au passage B (appelés ici MA et MB), il est possible d'effectuer autant de passages A qu'on le souhaite avant le passage B correspondant. Dans un mode de réalisation à 17 plans mémoire, trois passages A sont effectués, puis quatomze passages A et passages B simultanément effectués, et, enfin, deux passages B sont effectués. Puisque des décisions de passage A peuvent être typiquement codées de manière plus efficace que des décisions de passage B, le fait d'exécuter initialement de multiples passages A peut améliorer la qualité dans le cas de la  Since independent masks can respectively be assigned to passage A and passage B (here called MA and MB), it is possible to perform as many passes A as desired before the corresponding passage B. In one embodiment with 17 memory planes, three passages A are performed, then fourteen passages A and B passages simultaneously made, and finally two passages B are performed. Since passage decisions A may typically be encoded more efficiently than passing decisions B, initially executing multiple passes A may improve the quality in the case of

compression avec pertes.lossy compression.

Les figures 28A et 28B illustrent un mode de réalisation d'un codeur selon l'invention, qui utilise une mémoire de drapeau réduite (comme décrit ultérieurement). Ainsi qu'on peut le voir sur les figures 28A et 28B, le processus de transformation et de modélisation du codeur commence par l'acquisition de données d'entrée (bloc de traitement 2801). Après l'acquisition des données d'entrée, l'invention applique un filtre à ondes élémentaires réversible (bloc de  Figs. 28A and 28B illustrate an embodiment of an encoder according to the invention, which uses a reduced flag memory (as described later). As can be seen in FIGS. 28A and 28B, the process of transforming and modeling the encoder begins with the acquisition of input data (processing block 2801). After the acquisition of the input data, the invention applies a reversible elementary wave filter (block of

traitement 2802).2802 treatment).

Ensuite, un essai détermine si un autre niveau de décomposition est souhaité (bloc de traitement 2803). Si un autre niveau de décomposition est souhaité, le traitement se poursuit dans le bloc de traitement 2804, o le filtre réversible est appliqué aux coefficients LL résultant de la d6compreson  Then, a test determines if another level of decomposition is desired (processing block 2803). If another level of decomposition is desired, the processing continues in the process block 2804, where the reversible filter is applied to the LL coefficients resulting from the decompensation.

immédiatement précédente, et le traitement retourne au bloc de traitement 2803.  immediately preceding, and the process returns to processing block 2803.

De cette manière, l'invention permet d'effectuer n'importe quel nombre de niveaux  In this way, the invention makes it possible to perform any number of levels

de décomposition.decomposition.

Si aucun autre niveau de décomposition n'est souhaité, le traitement passe au bloc de traitement 2805, o le plan mémoire associé au passage A, soit SA, est positionné sur le plan mémoire le plus significatif (max). Ensumite, le plan mémoire associé au passage B, soit SB, est positionné sur le plan mémoire le plus significatif suivant (max-1) (bloc de traitement 2806). Ensuite, un masque MA est positionné sur - 2(SA+1) (bloc de traitement 2807) et un masque MB est positionné sur - 2(SB+1) (bloc de traitement 2808). Ensuite, un essai détermine s'il faut coder le plan mémoire associé au passage A, soit SA, à l'aide d'un modèle basé sur la fréquence (bloc de traitement 2808). Si le plan mémoire SA doit être codé à l'aide du modèle basé sur la fréquence, le traitement passe au bloc de traitement 2809, o un bit de chaque coefficient est modélisé à l'aide du modèle basé sur la fréquence et du codage entropique. Inversement, si le plan de mémoire SA ne doit pas être codé à l'aide du modèle basé sur la fréquence, le traitement se poursuit dans le bloc de traitement 2810, o un bit de chaque coefficient est modélisé à l'aide d'un modèle  If no other level of decomposition is desired, the processing proceeds to the processing block 2805, where the memory plane associated with the passage A, ie SA, is positioned on the most significant memory plane (max). Ensumite, the memory plane associated with the passage B, SB, is positioned on the next most significant memory plane (max-1) (processing block 2806). Then, a mask MA is set to - 2 (SA + 1) (processing block 2807) and a mask MB is set to - 2 (SB + 1) (processing block 2808). Then, a test determines whether to encode the memory array associated with the A passage, ie SA, using a frequency-based model (processing block 2808). If the SA memory plane is to be encoded using the frequency-based model, processing proceeds to processing block 2809, where one bit of each coefficient is modeled using the frequency-based model and entropy coding . Conversely, if the SA memory plane is not to be encoded using the frequency-based model, processing continues in the process block 2810, where one bit of each coefficient is modeled using a model

basé conjointement sur l'espace et la fréquence et d'un codage entropique.  based jointly on space and frequency and entropy coding.

Dans l'un et l'autre cas, le traitement se poursuit ensuite dans le bloc de traitement 2811, o un essai détermine si le plan mémoire SA est supérieur ou égal à zéro, ce qui indique s'il s'agit ou non du dernier plan mémoire. Si le plan mémoire SA est supérieur ou égal à zéro, le traitement revient au bloc de traitement 2808. Dans le cas contraire, si le plan mémoire SA n'est pas supérieur ou égal à zéro, le traitement se poursuit dans le bloc de traitement 2812, o un essai détermine si le plan mémoire SB est ou non supérieur ou égal à zéro, de sorte que le processus détermine si le plan mémoire est le dernier plan mémoire à subir un passage B. Si le plan mémoire SB est supérieur ou égal à zéro, le traitement se poursuit dans le bloc de traitement 2808. Toutefois, si le plan mémoire SB n'est pas supérieur ou égal à zéro, le traitement se poursuit dans le bloc de traitement 2813,  In either case, processing is then continued in process block 2811, where a test determines whether memory plane SA is greater than or equal to zero, indicating whether or not it is the same. last memory map. If the memory plane SA is greater than or equal to zero, the processing returns to the processing block 2808. In the opposite case, if the memory plane SA is not greater than or equal to zero, the processing continues in the processing block 2812, o a test determines whether or not the memory plane SB is greater than or equal to zero, so that the process determines if the memory plane is the last memory plane to undergo a passage B. If the memory plane SB is greater than or equal to at zero, the processing continues in the processing block 2808. However, if the memory plane SB is not greater than or equal to zero, the processing continues in the processing block 2813,

o des données codées sont émises sur un canal ou enregistrées dans une mémoire.  o Coded data is transmitted on a channel or stored in a memory.

Après enregistrement ou émission des données codées, le processus de  After recording or transmitting the coded data, the process of

transformation et de modélisation du codeur selon l'invention prend fin.  transformation and modeling of the encoder according to the invention ends.

Les figures 29A et 29B illustrent un autre mode de réalisation du processus de transformation et de modélisation du décodeur selon l'invention, dans le cas o on utilise une mémoire de drapeau réduite. Comme on peut le voir sur les figures 29A et 29B, le processus de transformation et de modélisation du décodeur selon l'invention commence par extraire des données codées (bloc de traitement 2901). Les données codées peuvent être reçues en provenance d'un canal, d'une mémoire ou d'un autre système de transmission. Une fois que les données codées ont été reçues, le plan mémoire associé au passage A, soit SA, est fixé sur le plan mémoire le plus significatif (max) (bloc de traitement 2903) et le plan mémoire associé au passage B, soit SB, est fixé sur le plan mémoirc le plus significatif suivant (max-1) bloc de traitement 2904). On positionne ensuite la  FIGS. 29A and 29B illustrate another embodiment of the transformation and modeling process of the decoder according to the invention, in the case where a reduced flag memory is used. As can be seen in FIGS. 29A and 29B, the transformation and modeling process of the decoder according to the invention begins by extracting coded data (processing block 2901). The encoded data may be received from a channel, memory, or other transmission system. Once the coded data has been received, the memory plane associated with the passage A, ie SA, is fixed on the most significant memory plane (max) (processing block 2903) and the memory plane associated with the passage B, ie SB , is attached to the next most significant memory plane (max-1) processing block 2904). We then position the

valeur de chaque coefficient sur une valeur initiale zéro (bloc de traitement 2905).  value of each coefficient on an initial value zero (processing block 2905).

Puis on positionne le masque MB sur -2(S+1) (bloc de traitement 2902) et on  Then the mask MB is set to -2 (S + 1) (processing block 2902) and

positionne le masque MA sur -2(SA+1) (bloc de traitement 2915).  sets the MA mask to -2 (SA + 1) (processing block 2915).

Ensuite, un essai détermine si le plan mémoire SA doit être décodé à l'aide d'un modèle basé sur la fréquence (bloc de traitement 2906). Si le plan mémoire SA doit être décodé à l'aide d'un modèle à base de fréquence, le traitement passe au bloc de traitement 2907, o un bit de chaque coefficient est modélisé à l'aide d'un modèle basé sur la fréquence et d'un décodage entropique. Si le plan mémoire SA ne doit pas être décodé à l'aide d'un modèle basé sur fréquence, le traitement passa au bloc de traitement 2908, o un bit de chaque coefficient est modélisé à l'aide d'un modèle basé conjointement sur l'espace et la  Next, a test determines whether the SA memory plane is to be decoded using a frequency-based model (processing block 2906). If the SA memory plane is to be decoded using a frequency-based model, processing proceeds to processing block 2907, where one bit of each coefficient is modeled using a frequency-based model and an entropy decoding. If the SA memory plane is not to be decoded using a frequency-based model, the processing proceeds to processing block 2908, where one bit of each coefficient is modeled using a jointly-based model. space and the

fréquence et d'un décodage entropique.  frequency and entropy decoding.

Apres que chaque coefficient a été modélisé, le traitement passe au bloc de traitement 2909, o il est déterminé si le plan mémoire SA est le dernier plan (on vérifie s'il est supérieur ou égal à zéro). Si le plan mémoire SA est  After each coefficient has been modeled, the processing proceeds to processing block 2909, where it is determined whether the memory plane SA is the last plane (it is checked whether it is greater than or equal to zero). If the SA memory plan is

supérieur ou égal à zéro, le traitement passe au bloc de traitement2906.  greater than or equal to zero, the treatment proceeds to the processing block2906.

Inversement, si le plan mémoire SA n'est pas supérieur ou égal à zéro, on détermine ensuite, à l'aide d'un essai, si le plan mémoire SB associé au passage B est supérieur ou égal à zéro (bloc de traitement 2910), ce qui indique qu'il s'agit du dernier plan mémoire associé à un passage B. S'il en est ainsi, le traitement passe au bloc de traitement 2902 en vue de la poursuite du décodage. Inversement, si le plan mémoire associé au passage B, soit SB, n'est pas supérieur ou égal à zéro, on applique un filtre réversible inverse aux coefficients en partant du niveau le plus grossier de décomposition (bloc de traitement 2911). Un essai détermine ensuite si tous les niveaux ont été soumis au filtrage inverse (bloc de traitement 2912). Si ce n'est pas le cas, le filtre inverse est de nouveau appliqué aux coefficients du niveau le plus grossier restant de décomposition (bloc de traitement 2913). Après cela, le traitement revient au bloc de traitement 2912, o un essai est de nouveau effectué  Conversely, if the memory plane SA is not greater than or equal to zero, then it is determined, by means of a test, whether the memory plane SB associated with the passage B is greater than or equal to zero (processing block 2910 ), which indicates that it is the last memory plane associated with a passage B. If so, the processing proceeds to the processing block 2902 for further decoding. Conversely, if the memory plane associated with the passage B, ie SB, is not greater than or equal to zero, an inverse reversible filter is applied to the coefficients starting from the coarsest level of decomposition (processing block 2911). A test then determines whether all levels have been subjected to inverse filtering (processing block 2912). If this is not the case, the inverse filter is again applied to the coefficients of the worst remaining decay level (processing block 2913). After that, the treatment returns to the processing block 2912, where an attempt is made again

pour déterminer si tous les niveaux ont été soumis au filtrage inverse.  to determine if all levels have been reverse filtered.

Une fois que tous les niveaux ont été soumis au filtrage inverse, le traitement passe au bloc de traitement 2912, dans lequel un enregistrement ou une  Once all levels have been subjected to reverse filtering, the processing proceeds to processing block 2912, in which a record or

émission des données reconstruites a lieu.  emission of reconstructed data takes place.

Les figures 30A et 30B illustrent un mode de réalisation du processus de modélisation de chaque coefficient. On note que, comme les figures 27A et 27B, le processus des figures 30A et 30B peut être utilisé pour mettre en oeuvre les opérations de modélisation des figures 28A et 28B ainsi que 29A et 29D. Comme représenté sur les figures 30A et 30B, le processus commence par vérifier qu'un passage A est souhaité et détermine si SA est supérieur ou égal à zéro (bloc de traitement 3001). S'il en est ainsi, le drapeau "faire drapeau A", qui indique qu'un passage A doit être effectué, est positionné (bloc de traitement 3004), et le traitement passe au bloc de traitement 3002. Sinon, le drapeau "faire drapeau A"  Figs. 30A and 30B illustrate one embodiment of the modeling process of each coefficient. It is noted that, like FIGS. 27A and 27B, the process of FIGS. 30A and 30B can be used to implement the modeling operations of FIGS. 28A and 28B as well as 29A and 29D. As shown in Figs. 30A and 30B, the process first verifies that a passage A is desired and determines whether SA is greater than or equal to zero (processing block 3001). If so, the flag "flag A", which indicates that a passage A is to be performed, is set (processing block 3004), and the processing proceeds to the processing block 3002. Otherwise, the flag " to make flag A "

est effacé (bloc de traitement 3003).  is cleared (processing block 3003).

Si le plan mémoire SA est supérieur au plan mémoire SB, le traitement passe alors au bloc de traitement 3004, o un drapeau est positionné pour indiquer qu'un passage A doit avoir lieu. Si le plan mémoire SA n'est pas supérieur au plan mémoire SB, le traitement passe alors au bloc de traitement 3003, o le drapeau  If the memory plane SA is greater than the memory plane SB, the processing then passes to the processing block 3004, where a flag is positioned to indicate that a passage A must take place. If the memory plane SA is not greater than the memory plane SB, the processing then proceeds to the processing block 3003, where the flag

indiquant qu'un passage A est supposé se produire est effacé. Après l'un ou l'autre des blocs de traitement 3003 et 3004, le traitement  indicating that a passage A is supposed to occur is erased. After either of the 3003 and 3004 treatment blocks, the treatment

passe au bloc de traitement 3002, o un essai détermine si le plan mémoire SB est supérieur ou égal au plan mémoire SA et si un passage B est souhaité. Si les plans mémoire ne sont pas égaux, l'invention efface un drapeau ("faire drapeau B") afin d'empêcher qu'un passage B ait lieu (bloc de traitement 3005), puis le traitement passe au bloc de traitement 3007. Si le plan mémoire SB est égal au plan mémoire SA, le drapeau "faire le drapeau B" est positionné pour indiquer qu'un passage B doit être effectué (bloc de traitement 3006), après quoi le traitement  passes to the processing block 3002, o a test determines whether the memory plane SB is greater than or equal to the SA memory plane and whether a passage B is desired. If the memory planes are not equal, the invention erases a flag ("flag B") to prevent a passage B takes place (processing block 3005), then the processing proceeds to the processing block 3007. If the memory plane SB is equal to the memory plane SA, the flag "make the flag B" is set to indicate that a passage B must be carried out (processing block 3006), after which the treatment

passe au bloc de traitement 3007.goes to the 3007 processing block.

Dans le bloc de traitement 3007, un essai détermine si le drapeau de passage A est positionné et si la modélisation à ramification zéro doit être effectuée. Si le drapeau indique qu'un passage A doit avoir lieu et que la modélisation à ramification zéro doit être effectuée, un drapeau "détermind/non déterminé" est initialisé dans l'état "non déterminé" pour chaque coefficient qui possède des enfants (bloc de traitement 3008), et le traitement passe au bloc de traitement 3009. Inversement, si le drapeau d'indication de passage A ou l'indication de modélisation à ramification zéro ne sont pas positionnés, le traitement passe directement au bloc 3009. Dans le bloc 3009, le premier coefficient est fixé à la variable C. Une fois que le premier coefficient s'est vu attribuer la variable C, un essai détermine si le drapeau d'indication de passage B est positionné (bloc de traitement 3019). Si le drapeau d'indication de passage B "faire drapeau B" est positionné, l'invention applique un passage B au coefficient C (bloc de traitement 3010), et le traitement passe au bloc de traitement 3011. Inversement, si le drapeau de passage B n'est pas positionné, alois aucun passage B n'est appliqué  In the processing block 3007, a test determines whether the passage flag A is set and the zero branching modeling is to be performed. If the flag indicates that a passage A is to take place and zero branching modeling is to be performed, a "determined / undetermined" flag is initialized in the "not determined" state for each coefficient that has children (block 3008), and the processing proceeds to the processing block 3009. Conversely, if the passing indication flag A or the zero branching indication is not set, the processing goes directly to block 3009. In block 3009, the first coefficient is set to variable C. Once the first coefficient has been assigned variable C, a test determines whether the flag indicating passage B is set (processing block 3019). If the flag flag B "flag B" is set, the invention applies a passage B to the coefficient C (processing block 3010), and the processing proceeds to the processing block 3011. Conversely, if the flag of passage B is not positioned, no passage B is applied

à C, et le traitement passe directement au bloc de traitement 3011.  at C, and the treatment goes directly to the processing block 3011.

L'essai détermine ensuite si le drapeau d'indication de passage A a été positionné (bloc de traitement 3011). Si le drapeau d'indication de passage A n'a pas été positionné, alors un passage A est appliqué au coefficient C (bloc de traitement 3017). Après cela, le traitement passe au bloc de traitement 3013. Si le drapeau d'indication de passage A est positionné, le traitement passe au bloc de traitement 3013 sans faire effectuer un passage A au coefficient C. Dans le bloc de traitement 3013, un essai détermine si le coefficient C est le dernier coefficient. Si le coefficient C n'est pas le dernier coefficient, alors le traitement se poursuit dans le bloc de traitement 3014, o le coefficient suivant se voit attribuer la variable C, après quoi le traitement passe au bloc de traitement 3019. Toutefois, si le coefficient C est le dernier coefficient, le traitement passe au bloc de traitement 3015, o un essai détermine si le drapeau de passage B "faire drapeau B" est positionné. Si le drapeau de passageB est positionné, le plan mémoire SB est positionné de façon à étre égal au plan mémoire SB-1 (bloc de traitement 3016), et le traitement passe au bloc de traitement 3017. Si le drapeau d'indication de passage B n'est pas positionné, le traitement passe au bloc de traitement 3017. Dans le bloc de traitement 3017, un essai détermine si le drapeau de passage A est positionné. S'il est positionné, alors le plan mémoire SA est positionné de façon à être égal au plan mémoire SA-1 (bloc de traitement 3018), et le traitement prend fin. De même, si le drapeau de  The test then determines whether the passing indication flag A has been set (processing block 3011). If the passage indication flag A has not been set, then a passage A is applied to the coefficient C (processing block 3017). Thereafter, the treatment proceeds to the processing block 3013. If the passage indication flag A is set, the treatment proceeds to the processing block 3013 without making a passage A to the coefficient C. In the processing block 3013, a test determines whether the coefficient C is the last coefficient. If the coefficient C is not the last coefficient, then the processing continues in the processing block 3014, where the following coefficient is assigned the variable C, after which the processing proceeds to the processing block 3019. However, if the coefficient C is the last coefficient, the processing proceeds to processing block 3015, where a test determines whether the passing flag B "flag B" is set. If the passage flag B is set, the memory plane SB is set to be equal to the memory plane SB-1 (processing block 3016), and the processing proceeds to the processing block 3017. If the passage indication flag B is not set, processing proceeds to processing block 3017. In processing block 3017, a test determines whether the passage flag A is set. If set, then the memory array SA is set to be equal to the SA-1 memory array (processing block 3018), and the processing terminates. Similarly, if the flag of

passage A n'est pas positionné, alors le traitement prend fin immédiatement.  Pass A is not set, so the processing ends immediately.

Ramifications des coefficients Dans un système pyramidal, les coefficients peuvent être rassemblés en groupes à l'aide d'une structure ramifiée. La racine de chaque ramification est un coefficient de type passe-bas pur. La figure 5 illustre la structure ramifiée d'un unique coefficient de type passe-bas pur dc l'image transformée. Pour un signal bidimensionnel tel qu'une image, la racine de la ramification possède tris "enfants" et les noeuds restants ont chacun quatre enfants. La ramificatio n'est pas hiérarchiquement limitée à des signaux bidimensionnels. Par exemple, pour un signal unidimensionnel, une racine possède un enfant et les noeuds qui ne sont pas la racine possèdent deux enfants chacun. Les dimensions supérieures se déduisent  Ramifications of the coefficients In a pyramidal system, the coefficients can be grouped into groups using a branched structure. The root of each branch is a pure low-pass type coefficient. Figure 5 illustrates the branched structure of a single pure low-pass type coefficient of the transformed image. For a two-dimensional signal such as an image, the root of the branch has three "children" and the remaining nodes each have four children. Ramificatio is not hierarchically limited to two-dimensional signals. For example, for a one-dimensional signal, a root has a child, and nodes that are not the root have two children each. The higher dimensions are deduced

des cas à une dimension et à deux dimensions.  one-dimensional and two-dimensional cases.

La structure ramifiée découle également du fonctionnement des filtres  The branched structure also stems from the operation of the filters

présentés sur les figures 4A à 4C. Le fonctionnement des paires de filtres à sous-  shown in Figures 4A-4C. The operation of the pairs of sub-filters

échantillonnage fait que les coefficients précédemment décrits sont reliés.  sampling makes that the previously described coefficients are connected.

Selon l'invention, après que les coefficients ont été mis au format signe/amplitude, un modèle de contexte détermine celui des multiples procédés de codage qui doit être utilisé pour poursuivre le codage des coefficients. Un schéma de codage basé sur la fréquence, par exemple un codage à ramification zéro, code efficacement les données de signification qui sont associées à une décomposition en sous-bandes donnée pour un seuil spécifié. Outre l'utilisation de symboles indiquant la signification ou la non-signification d'un coefficient isolé unique dans la décomposition en sous-bandes associée, les éléments constitués de parents non significatifs ayant des enfants tous non significatifs (ceux dont l'amplitude est inférieure ou égale au seuil donné) sont regroupés ensemble et sont codés conjointement. Ces ramifications sont parfois appelées des ramifications zéro. Ces ramifications non signifiacatives sont codées à l'aide d'un unique symbole spécialisé, parfois appelé une racine de ramification zéro. Toutefois, s'il existe un descendant significatif, l'élément que constitue un coefficient non significatif est codé à l'aide du symbole relatif à un "zéro isolé". Ainsi, une ramification se code à l'aide de quatre symboles (significatif positif, significatif négatif, zéro isolé et racine de ramification zéro) en ce qui concerne des décisions o le signe du  According to the invention, after the coefficients have been set to the sign / amplitude format, a context model determines the one of the multiple coding methods that must be used to continue coding the coefficients. A frequency-based coding scheme, such as zero-branching coding, efficiently encodes the significance data that is associated with a given subband decomposition for a specified threshold. In addition to the use of symbols indicating the significance or non-significance of a single isolated coefficient in the associated subband decomposition, the items consisting of nonsignificant parents with all non-significant children (those with smaller amplitude or equal to the given threshold) are grouped together and are jointly coded. These ramifications are sometimes called zero ramifications. These non-significant branches are coded using a single specialized symbol, sometimes called a zero branching root. However, if there is a significant descendant, the element of a non-significant coefficient is coded using the symbol for an "isolated zero". Thus, an offshoot is coded using four symbols (significant positive, significant negative, isolated zero and zero branching root) with respect to decisions where the sign of

coefficient n'a pas encore été codé.  coefficient has not yet been coded.

Un codage basé sur la fréquence est particulièrement utile dans les systèmes de compression du fait que le codage conjoint de ramifications non significatives permet que, pour un petit nombre de coefficients parents, on prédise la non-signification d'un grand nombre de coefficients descendants. Puisque les éléments de la ramification associée aux coefficients descendants peuvent être prédits à partir de la racine, aucun symbole supplémentaire n'est nécessaire pour coder leur non-signification. On code la non-signification de la ramification tout entière au prix d'une faible dépense d'encombrement. Par conséquent, les plans mémoire d'ordre supérieur sont principalement constitués de coefficients non significatifs dont un grand nombre ne sont ni des racines de ramifications zéro ni des zéros isolés (à savoir qu'il s'agit d'enfants se trouvant dans des ramifications  Frequency-based coding is particularly useful in compression systems because the joint coding of insignificant branches allows for a small number of parent coefficients to predict the non-significance of a large number of downward coefficients. Since the elements of the branching associated with the falling coefficients can be predicted from the root, no additional symbols are needed to encode their nonsense. The non-significance of the whole branch is coded at the expense of a small expense of space. As a result, higher-order memory arrays consist mainly of insignificant coefficients, many of which are neither zero branch roots nor isolated zeros (ie, they are children in branches).

non significatives qu'il n'est pas nécessaire de coder).  not significant that it is not necessary to code).

Dans le brevet des Etats-Unis d'Amérique n' 5 321 776, Shapiro décrit un modèle basé sur la fréquence appelé "zerotree", c'est-à-dire "ramification zéro". Selon le procédé décrit dans ce brevet, on utilise deux listes, à savoir une  In U.S. Patent No. 5,321,776, Shapiro describes a frequency-based model called "zerotree", that is, "zero branching". According to the method described in this patent, two lists are used, namely one

liste dominante et une liste subordonnée, pour enregistrer tous les coefficients.  Dominant list and a subordinate list, to record all the coefficients.

Pour chaque niveau de signification, deux passages sont effectués, un passage dominant et un passage subordonné. Dans un mode de réalisation, le modèle basé  For each level of meaning, two passages are made, a dominant passage and a subordinate passage. In one embodiment, the model based on

sur la fréquence selon l'invention est le modèle dit de "ramification zéro".  on the frequency according to the invention is the so-called "zero branching" model.

Dans un autre mode de réalisation, un modèle basé sur la fréquenC  In another embodiment, a frequency-based model

analogue au modèle "ramification zéro" (tel que décrit par Shapiro) est employé.  similar to the "zero branching" model (as described by Shapiro) is used.

Au lieu de faire appel à des listes multiples, on n'utilise qu'une seule liste, chacun des éléments de la liste étant repéré comme membre de l'un de deux groupes. La séparation des coefficients entre un groupe A et un groupe B équivaut à la séparation que Shapiro obtient en utilisant respectivement une liste dominante et une liste subordonnée. L'utilisation par Shapiro de multiples listes offre une plus grande souplesse en ce qui concerne la mise en ordre de coefficients dans la liste subordonnée, au prix d'une plus grande complexité des logiciels et, ou bien, des équipements. Le présent procédé de la ramification zéro à liste unique utilise deux passages, un passage A et un passage B, qui sont respectivement équivalents au passage dominant et au passage subordonné décrits par Shapiro. On décrit ci-après  Instead of using multiple lists, only one list is used, with each item in the list being identified as a member of one of two groups. The separation of the coefficients between a group A and a group B is equivalent to the separation that Shapiro obtains by using respectively a dominant list and a subordinate list. Shapiro's use of multiple lists provides greater flexibility for ordering coefficients in the subordinate list, at the cost of greater software and / or hardware complexity. The present single-list zero branching method uses two passages, a passage A and a passage B, which are respectively equivalent to the dominant passage and the subordinate pass described by Shapiro. We describe below

le modèle de ramification zéro à liste unique.  the single-list zero-branching model.

Le système de codage selon l'invention maintient en mémoire une liste des coefficients dans le format signe/amplitude. Chaque élément de la liste possède une étiquette à un seul bit qui indique si l'élément est membre du 'groupe A' ou du "groupe B". Au début d'une phase de traitement, les coefficients qui ne se sont pas encore révélés comme significatif sont étiquetés comme appartenant au groupe A. Les coefficients qui s'étaient antérieurement révélés comme significatifs par rapport à des seuils antérieurs, plus grands, sont étiquetés comme appartenant au groupe B. La liste contient les coefficients dans l'ordre dans lequel ils seront traités pendant le codage. Au début de la toute première phase, tous les coefficients sont étiquetés comme membres du groupe A, puisqu'aucun coefficient n'a encore été établi comme significatif. Lorsque des coefficients sont déterminés comme significatifs ou non significatifs, les étiquettes qui leurs sont associées changent et passent de la désignation initiale "groupe A" à la désignation "groupe B". Cette liste va être ensuite affinée au fur et à mesure de l'apparition de seuils  The coding system according to the invention stores in memory a list of the coefficients in the sign / amplitude format. Each item in the list has a single-bit label that indicates whether the item is a member of 'group A' or 'group B'. At the beginning of a processing phase, coefficients that have not yet been shown to be significant are labeled as belonging to group A. The coefficients that had previously been found to be significant relative to earlier, larger thresholds are labeled as belonging to group B. The list contains the coefficients in the order in which they will be processed during the coding. At the beginning of the very first phase, all the coefficients are labeled as members of group A, since no coefficient has yet been established as significant. When coefficients are determined to be significant or insignificant, the tags associated with them change from the initial designation "group A" to the designation "group B". This list will then be refined as thresholds appear.

progressivement plus fins. Ainsi, de multiples passages dans la liste ont lieu.  progressively finer. Thus, multiple passages in the list take place.

Dans un mode de réalisation, les événements binaires qui correspondent aux coefficients du groupe B sont arithmétiquement codés binaires selon un modèle de contexte de Markov d'ordre zéro. Les événements quaternaires correspondant aux coefficients du groupe A sont également codés selon un modèle  In one embodiment, the bit events that correspond to the coefficients of group B are arithmetically binary coded according to a zero order Markov context model. Quaternary events corresponding to the coefficients of group A are also coded according to a model

de contexte de Markov d'ordre zéro.  Markov context of zero order.

L'ordre des coefficients dans la liste selon l'invention préserve la  The order of the coefficients in the list according to the invention preserves the

structure ramifiée de sorte qu'aucun enfant ne peut être modélisé avant son parent.  branched structure so that no child can be modeled before its parent.

Par conséquent, une mise en ordre qui préserve la structure ramifiée est fixée et est utilisée de façon cohérente. Dans un mode de réalisation, les coefficients sont enregistrés en mémoire dans l'ordre qui part de la première position de mémorisation utilisée. Dans un autre mode de réalisation, on peut utiliser une liste  Therefore, an ordering that preserves the branched structure is fixed and is used consistently. In one embodiment, the coefficients are stored in memory in the order starting from the first storage position used. In another embodiment, a list can be used

en séquentiel enchaîné.in sequential chained.

Dans un mode de réalisation, les coefficients sont codés dans un système à implantation de degré de signification des bits ou selon les plans mémoire. Puisque les coefficients sont codés du plan mémoire le plus significatif au plan mémoire le moins significatif, il faut que le nombre des plans mémoire des données soit déterminé. Selon l'invention, on effectue cette opération en recherchant une borne supérieure aux amplitudes des valeurs des coefficients qu'on a calculées à partir des données ou obtenues à partir de la profondeur de l'image et des coefficients de filtrage. Par exemple, si la borne supérieure est 149, il y a alors  In one embodiment, the coefficients are encoded in a bit significance scheme or memory array. Since the coefficients are coded from the most significant memory plane to the least significant memory plane, the number of data memory planes must be determined. According to the invention, this operation is carried out by searching for a higher bound to the amplitudes of the values of the coefficients which have been calculated from the data or obtained from the depth of the image and the filter coefficients. For example, if the upper bound is 149, then there is

8 ordres de significations des bits ou 8 plans mémoire.  8 order of bit meanings or 8 memory planes.

Les figures 6A et 6A (suite) illustrent un mode de réalisation du processus de codage à ramification zéro à liste unique selon l'invention. Dans un mode de réalisation, on peut utiliser le processus des figures 6A et 6A (suite) dans le processus de modélisation des figures 27A et 27B. Comme représenté sur les figures 6A et 6A (suite), le processus commence par vérifier si le drapeau de groupe associé au coefficient C est positionné sur "groupe A' (bloc de traitement 3221). Si ce n'est pas le cas, alors le processus prend fin. Inversement, si le drapeau de groupe associé au coefficient C est positionné sur 'groupe A", alors le traitement se poursuit dans le bloc de traitement 3222, o un essai détermine si le drapeau "déterminé/non déterminé" associé au coefficient C est positionné sur "non déterminé". Si le drapeau "déterminé/non déterminé" du coefficient n'est pas positionné sur "non déterminé", le processus prend fin. Toutefois, si le drapeau "déterminé/non déterminé" du coefficient C est positionné sur "non déterminé", le traitement se poursuit dans le bloc de traitement 3203, o un essai d6termine si le  Figs. 6A and 6A (continued) illustrate an embodiment of the single list zero-branch coding process according to the invention. In one embodiment, the process of Figs. 6A and 6A (continued) can be used in the modeling process of Figs. 27A and 27B. As shown in Figs. 6A and 6A (continued), the process begins by checking whether the group flag associated with the coefficient C is set to "group A" (processing block 3221). If this is not the case, then the process is terminated Conversely, if the group flag associated with coefficient C is set to 'group A', then processing continues in processing block 3222, where a test determines whether the associated 'determined / undetermined' flag the coefficient C is set to "not determined". If the "determined / undetermined" flag of the coefficient is not set to "not determined", the process is terminated. However, if the "determined / undetermined" flag of the coefficient C is set to "not determined", processing continues in the process block 3203, where a test determines whether the

bit SA du coefficient C est 1.bit SA of coefficient C is 1.

Si le bit SA du coefficient C n'est pas 1, le traitement se poursuit dans le bloc de traitement 3207. Inversement, si le bit SA du coefficient C est 1, le traitement passe au bloc de traitement 3204, o un essai détermine si le signe du coefficient C est positif. Si le signe du coefficient C n'est pas positif; la décision prend la forme codée "significatif négatif" dans le ou les contextes 'groupe A' (bloc de traitement 3205), et le processus passe au bloc lc traitement 3229. Si le signe du coefficient C est positif, la décision prend la forme codée 'significatif positif' dans le ou les contextes "groupe A' (bloc de traitement 3206), et le processus passe au bloc de traitement 3229. Dans le bloc de traitement 3229, le  If the SA bit of the coefficient C is not 1, the processing continues in the processing block 3207. Conversely, if the SA bit of the coefficient C is 1, the processing proceeds to the processing block 3204, where a test determines whether the sign of the coefficient C is positive. If the sign of the coefficient C is not positive; the decision takes the coded form "significant negative" in the context or contexts 'group A' (processing block 3205), and the process proceeds to block lc processing 3229. If the sign of the coefficient C is positive, the decision takes the form coded as 'significant positive' in the "group A" context (processing block 3206), and the process proceeds to the process block 3229. In the process block 3229, the

drapeau de groupe associé à C est positionné sur "groupe B".  group flag associated with C is set to "group B".

Dans le bloc de traitement 3207, un essai détermine si le bit SA est zéro pour tous les descendants (enfants) du coefficient C. Si le bit SA n'est pas zéro, la décision prend la forme codée "non significatif avec enfants significatifs" (01) dans le ou les contextes "groupe A" (bloc de traitement 3208), puis le processus prend fin. Inversement, si le bit SA est 0 pour tous les descendants (enfants) du coefficient C, la décision est codée sous la forme "racine de ramification zéro'" (00) dans le ou les contextes "groupe A' (bloc de traitement 3209). Apres cela, le drapeau 'déterminé/non déterminé' de tous les descendants du coefficient C est positionné sur "déterminé' (bloc de  In processing block 3207, a test determines whether the SA bit is zero for all descendants (children) of coefficient C. If the SA bit is not zero, the decision takes the coded form "not significant with significant children" (01) in the "group A" context (processing block 3208), and the process terminates. Conversely, if the SA bit is 0 for all descendants (children) of the coefficient C, the decision is coded as "zero branching root" (00) in the context or contexts "group A" (processing block 3209). After that, the 'determined / undetermined' flag of all the descendants of the coefficient C is set to 'determined' (block of

traitement 3221), puis le processus prend fin.  3221), and the process ends.

Dans un autre mode de réalisation, l'essai de fin de processus peut  In another embodiment, the end-of-process test may

reposer sur le fait qu'un taux de compression voulu a ou non été atteint.  based on whether or not a desired compression ratio has been achieved.

Dans un mode de réalisation, les événements binaires résultant du passage B sont soumis à un codage entropique selon un modale de contexte de source de Markov d'ordre zéro. L'alphabet de 2 bits (taille 4) résultant du passage A est codé également selon une source de Markov d'ordre zéro, par un  In one embodiment, the binary events resulting from the B-pass are entropic encoded according to a zero-order Markov source context modal. The 2-bit alphabet (size 4) resulting from the passage A is also coded according to a zero-order Markov source, by a

codeur arithmétique quaternaire (alphabet de taille 4).  Quaternary arithmetic coder (size 4 alphabet).

Les figures 6B et 6B (suite) illustrent un autre mode de réalisation du processus de codage à ramification zéro à liste unique selon l'invention, à l'aide d'une mémoire de drapeau réduite. Dans un mode dc réalisation, on peut utiliser le processus des figures 6B et 6B (suite) pour le passage A du processus des figures 30A et 30B. Comme représenté sur les figures 6B et 6B (suite), le processus commence par vérifier si le résultat de l'intersection logique (fonction E) du coefficient C avec le masque MA est zéro (bloc de traitement 3201). Si ce n'est pas le cas, le processus prend fin. Inversement, si le résultat de l'intersection logique du coefficient C avec le masque MA est zéro, le traitement se poursuit dans le bloc de traitement 3202, o un essai détermine si le drapeau "déterminé/non déterminé" relatif au parent du coefficient C est positionné sur "non déterminé'. Si le drapeau du parent du coefficient n'est pas positionné sur "non déterminé", le processus prend fin. Toutefois, si le drapeau "déterminé/non déterminé" du parent du coefficient C est positionné sur 'non déterminé", le traitement se poursuit dans le  FIGS. 6B and 6B (continued) illustrate another embodiment of the single-list zero-branching coding process according to the invention, using a reduced flag memory. In one embodiment, the process of Figs. 6B and 6B (continued) may be used for passage A of the process of Figs. 30A and 30B. As shown in FIGS. 6B and 6B (continued), the process begins by checking whether the result of the logical intersection (function E) of the coefficient C with the mask MA is zero (processing block 3201). If it is not, the process ends. Conversely, if the result of the logical intersection of the coefficient C with the mask MA is zero, the processing continues in the processing block 3202, where a test determines whether the "determined / undetermined" flag relating to the parent of the coefficient C If the parent flag of the coefficient is not set to "not determined", the process is terminated, but if the "determined / undetermined" flag of the parent of the coefficient C is set to 'not determined', the treatment continues in the

bloc de traitement 3202, o un essai détermine si le bit SA du coefficient C est 1.  processing block 3202, where a test determines whether the SA bit of the coefficient C is 1.

Si le bit SA du coefficient C n'est pas 1, le traitement se poursuit dans le bloc de traitement 3207. Inversement, si le bit SA du coefficient C est 1, le traitement passe au bloc de traitement 3204, o un essai détermine si le signe du coefficient C est positif. Si le signe du coefficient C n'est pas positif, la décision est codée prise sous la forme "significatif négatif' dans un ou des contextes "groupe A" (bloc de traitement 3205), et le processus prend fin. Si le signe du coefficient C est positif, la décision est codée sous la forme 'significatif positif' dans un ou des contextes "groupe A' (bloc de traitement 3206), et le processus prend fin. Dans un mode de réalisation, on utilise un codeur quaternaire et les décisions quaternaires sont codées dans un unique contexte. Dans un autre mode de réalisation, on utilise un codeur binaire ainsi que trois contextes (les trois contextes sont le premier bit de la décision, le deuxième bit lorsque le premier bit  If the SA bit of the coefficient C is not 1, the processing continues in the processing block 3207. Conversely, if the SA bit of the coefficient C is 1, the processing proceeds to the processing block 3204, where a test determines whether the sign of the coefficient C is positive. If the sign for coefficient C is not positive, the decision is coded as "significant negative" in one or more "group A" contexts (processing block 3205), and the process ends. coefficient C is positive, the decision is coded as 'positive significant' in one or more 'group A' contexts (processing block 3206), and the process ends. In one embodiment, a quaternary coder is used and the quaternary decisions are coded in a single context. In another embodiment, a binary encoder and three contexts are used (the three contexts are the first bit of the decision, the second bit when the first bit

est 0, et le deuxième bit lorsque le premier bit est 1).  is 0, and the second bit when the first bit is 1).

Dans le bloc de traitement 3207, un essai détermine si le bit SA est 0 pour tous les descendants (enfants) du coefficient C. Si le bit SA n'est pas 0, la décision est codée sous la forme "non significatif avec enfants significatifs", 'zéro isolé" (01) dans un ou des contextes 'groupe A" (bloc de traitement 3208), et le processus prend fin. Inversement, si le bit SA est 0 pour tous les descendants (enfants) du coefficient C la décision est codée sous la forme 'racine de ramification zéro" (00) dans un ou des contextes "groupe A" (bloc de traitement 3209. Ensuite, le drapeau "déterminé/non déterminé" du coefficient C est positionné sur "déterminé' (bloc de traitement 3210). Après cela, le drapeau  In processing block 3207, a test determines whether the SA bit is 0 for all descendants (children) of the C coefficient. If the SA bit is not 0, the decision is coded as "not significant with significant children" ", 'insulated zero' (01) in one or more 'group A' contexts (processing block 3208), and the process terminates. Conversely, if the SA bit is 0 for all descendants (children) of the coefficient C the decision is encoded as the 'zero branching root' (00) in one or more 'group A' contexts (processing block 3209). the "determined / not determined" flag of the coefficient C is set to "determined" (processing block 3210).

"déterminé/non déterminé" de tous les descendants du coefficient, qui ont eux-  "determined / not determined" of all the descendants of the coefficient, who have

mêmes des descendants, sont positionnés sur "déterminé' (bloc de  same descendants, are positioned on "determined" (block of

traitement 3211), et le processus prend fin.  3211), and the process ends.

Oprations de décodaóg Selon l'invention, le décodage s'effectue en synchronisme avec le codage. La figure 6C illustre un mode de réalisation du processus de passage A relatif à un processus de décodage du type horizon à ramification zéro, et peut trec utilisée en liaison avec le processus des figures 27A et 27B. Comme représenté sur la figure 6C, le processus commence par vérifier si le drapeau de groupe du coefficient C est positionné sur "groupe A" (bloc de traitement 3521). Si ce n'est pas le cas, alors le processus prend fin. Toutefois, s'il en est ainsi, le prnocessus passe au bloc de traitement 3528, o un essai détermine si le drapeau "déterminé/non déterminé" du coefficient C est positionné sur "non déterminé". Si ce n'est pas le cas, le processus prend fin. Si c'est le cas, alors, le processus passe au bloc de traitement 3502, o les décisions ternaires sont décodées dans un ou des contextes de groupe A. Ensuite, un essai détermine si la décision est "significatif positif" (bloc de traitement 3503). Si la décision est "significatif positif", le signe du coefficient C est fixé positif (bloc de traitement 3505), l'amplitude du coefficient est fixée à 2SA (bloc de traitement 3507), le drapeau de groupe du coefficient C est  Decoding operations According to the invention, the decoding is done in synchronism with the coding. Fig. 6C illustrates an embodiment of the passing process A relating to a zero branch horizon horizon decoding process, and may be used in conjunction with the process of Figs. 27A and 27B. As shown in FIG. 6C, the process begins by checking whether the group flag of the coefficient C is set to "group A" (processing block 3521). If it is not, then the process ends. However, if so, the process proceeds to process block 3528, where a test determines whether the "determined / undetermined" flag of coefficient C is set to "not determined". If it is not, the process ends. If so, then the process goes to processing block 3502, where ternary decisions are decoded in one or more group A contexts. Then, a test determines whether the decision is "significant positive" (processing block 3503). If the decision is "significant positive", the sign of the coefficient C is set positive (processing block 3505), the amplitude of the coefficient is set to 2SA (processing block 3507), the group flag of the coefficient C is

positionné sur "groupe B" (bloc de traitement 3541), et le processus prend fin.  set to "group B" (processing block 3541), and the process ends.

Si la décision n'est pas "significatif positif' (bloc de traitement 3503),  If the decision is not "significant positive" (processing block 3503),

un essai détermine si la décision est "significatif négatif" (bloc de traitement 3504).  a test determines whether the decision is "significant negative" (processing block 3504).

Si la décision n'est pas "significatif négatif, le processus passe au bloc de traitement 3509, o un essai détermine si la décision est "racine de ramification  If the decision is not "significant negative, the process goes to processing block 3509, where a test determines whether the decision is" branching root

zéro". Si la décision n'est pas "racine de ramification zéro", le processus prend fin.  If the decision is not "zero branching root", the process ends.

Si la décision est "racine de ramification zéro", le drapeau "détcminé/no déterminé" de tous les descendants du coefficient C est positionné sur "non  If the decision is "zero branching root", the "decimated / determined no" flag of all the descendants of coefficient C is set to "no

déterminé" (bloc de traitement 3531), et le processus prend fin.  determined "(processing block 3531), and the process ends.

Toutefois, si l'essai du bloc de traitement 3504 déterminc que la décision est "significatif négatif", alors le signe du coefficient C est fixé négatif (bloc de traitement 3506), l'amplitude du coefficient C est fixée à 2SA (bloc de traitement 3507, le drapeau de groupe du coefficient C est positionné sur  However, if the test of the 3504 processing block determines that the decision is "significant negative", then the sign of the coefficient C is set negative (processing block 3506), the amplitude of the coefficient C is set to 2SA (block of 3507, the group flag of the coefficient C is set to

"groupe B" (bloc de traitement 3541), et le processus prend fin.  "group B" (processing block 3541), and the process ends.

La figure 6D illustre un autre mode de réalisation du processus de passage A servant à un processus de décodage du type horizon à ramification zio, qui utilise une mémoire de drapeau réduite, et peut être employée dans le processus décrit sur les figures 30A et 30B. Comme représenté sur la figure 6D, le processus commence par vérifier si le résultat de l'intersection logique (fonction Et) du coefficient C avec le masque MA est zéro (bloc de traitement 3501). Si ce n'est pas le cas, alors le processus prend fin. Toutefois, si le résultat de l'intersecin logique du coefficient C avec le masque MA est zéro, le traitement passe au bloc de traitement 3508, o un essai détermine si le drapeau "détermin/non déterminé" du parent C est "non déterminé". Si ce n'est pas le cas, le processus prend fin. Si 'est le cas, alors le processus se poursuit dans le bloc de traitement 3502, o la décision ternaire est décodée dans un ou des contextes de groupe A. Ensuite, un essai détermine si la décision est "significatif poditif' (bloc de traitement 3503). Si la décision est "significatif positif, le signe du coefficient est fixé positif (bloc de traitement 3505), l'amplitude du coefficient est fixée à 2SA  Fig. 6D illustrates another embodiment of the pass process A serving a zio branch horizon decoding process, which uses reduced flag memory, and may be employed in the process described in Figs. 30A and 30B. As shown in FIG. 6D, the process begins by checking whether the result of the logical intersection (function Et) of the coefficient C with the mask MA is zero (processing block 3501). If it is not, then the process ends. However, if the result of the logical intersecin of the coefficient C with the mask MA is zero, the processing proceeds to the processing block 3508, where an experiment determines whether the "determinate / undetermined" flag of the parent C is "not determined" . If it is not, the process ends. If so, then the process continues in the processing block 3502, where the ternary decision is decoded in one or more group A contexts. Next, a test determines whether the decision is "significant podative" (processing block 3503) If the decision is "significant positive", the sign of the coefficient is set positive (processing block 3505), the amplitude of the coefficient is fixed at 2SA

(bloc de traitement 3507), et le processus prend fin.  (processing block 3507), and the process ends.

Si la décision n'est pas "significatif positif', un essai déterminc si elle est "significatif négatif' (bloc de traitement 3504). Si la décision n'est pas "significatif négatif, le processus passe au bloc de traitement 3509, o un essai détermine si la décision est "racine de ramification zéro". Si la décision n'est pas "racine de ramification zéro", le processus prend fin. Si la décision est "racine de ramification zéro", le drapeau "déterminé/non déterminé" du coefficient C est positionné sur "déterminé" (bloc de traitement 3510), les drapeaux "déterminé/non déterminé" de tous les descendants du coefficient C qui ont eux-mêmes des descendants sont positionnés sur "indéterminé" (bloc de traitement 3511), et le  If the decision is not "significant positive", a test determines whether it is "significant negative" (processing block 3504). If the decision is not "significant negative", the process goes to processing block 3509, where a test determines whether the decision is "zero branching root." If the decision is not "zero branching root," the If the decision is "zero branch root", the "determined / not determined" flag of coefficient C is set to "determined" (processing block 3510), the "determined / not determined" flags of all descendants of the coefficient C which themselves have descendants are positioned on "indeterminate" (processing block 3511), and the

processus prend fin.process ends.

Toutefois, si l'essai du bloc de traitement 3504 détermine que la décision est "significatif négatif, alors le signe du coefficient C est fixé négatif (bloc de traitement 3506), l'amplitude du coefficient C est fixée à 2SA (bloc de  However, if the test of the processing block 3504 determines that the decision is "significant negative, then the sign of the coefficient C is set negative (processing block 3506), the amplitude of the coefficient C is set to 2SA (block of

traitement 3507) et le processus prend fin.  3507) and the process ends.

Il existe des alternatives au choix fait par Shapiro d'utiliser des décisions quaternaires pour décrire des ramifications. On peut faire appel à de plus grands alphabets pour préciser plus encore les caractéristiques d'une ramification tout entière lors du codage de la racine de la ramification. Dans un mode de réalisation, on utilise l'ensemble suivant de décisions d'ordre 6: non significatif ayant des enfants non significatifs (racine de ramification zéro) non significatif ayant au moins un enfant significatif 35. significatif positif, dont tous les enfants sont non négatifs significatif positif, ayant au moins un enfant négatif significatif négatif, dont tous les enfants sont non positifs  There are alternatives to Shapiro's choice to use quaternary decisions to describe ramifications. Larger alphabets can be used to further characterize the characteristics of an entire branch when coding the branching root. In one embodiment, the following set of non-significant 6: nonsignificant decisions with nonsignificant children (non-significant branching root) with at least one significant significant positive child, of which all children are non-negative significant positive, having at least one negative significant negative child, all of whose children are non-positive

À significatif négatif, ayant au moins un enfant positif.  At significant negative, having at least one positive child.

Dans ce mode de réalisation, une information de signe s'ajoutant à la non-  In this embodiment, sign information in addition to the non-sign

signification est prédite pour une ramification toute entière. Dans d*autres modes de réalisation, des ramifications ayant d'autres contraintes de signe ou des contraintes d'amplitude peuvent être prédites. D'autre prédicteurs pourraient mtre spécialement utilisés pour représenter la texture ou pour représenter des caractéristiques de multirésolution. Avec de plus grands alphabets, on peut utiliser  meaning is predicted for an entire ramification. In other embodiments, branches having other sign constraints or amplitude constraints can be predicted. Other predictors could be especially used to represent texture or to represent multiresolution characteristics. With larger alphabets one can use

des contextes de Markov d'ordre supérieur (comme décrit ci-après).  higher order Markov contexts (as described below).

Modélisation par implantation basée conjointement sur l'espace et la fréquencem  Implant modeling based jointly on space and frequency

avec liste pour plusieurs Dassages.with list for several Dassages.

Selon l'invention, le codage par implantation en fréquence, comme la modélisation du type horizon présentement décrite, code les événements ternaires correspondant aux coefficients du groupe A. Dans le codage du type horizon, toutes les initialisations précédant les opérations de codage sont identiques à celles du système basé sur la fréquence. Dans un mode de réalisation, un codage entropique binaire est effectué en liaison avec trois contextes, à savoir "amplitude  According to the invention, the frequency implantation coding, like the currently described horizon type model, encodes the ternary events corresponding to the coefficients of the group A. In the type coding of the horizon type, all the initializations preceding the coding operations are identical to those of the frequency-based system. In one embodiment, a binary entropy coding is performed in connection with three contexts, namely "amplitude

de groupe A", "signe de groupe A" et "groupe B".  Group A "," Group A Sign "and" Group B ".

La figure 7A est un organigramme d'un mode de réalisation du passage A pour un processus de codage du type horizon à liste unique selon  Fig. 7A is a flowchart of an embodiment of the passage A for a single list horizon type coding process according to

l'invention. Ce processus peut être utilisé dans le processus des figures 27A et 27B.  the invention. This process can be used in the process of Figures 27A and 27B.

Comme représenté sur la figure 7A, le processus du passage A commence par vérifier si le drapeau de groupe associé au coefficient C est positionné sur  As shown in FIG. 7A, the process of the passage A begins by checking whether the group flag associated with the coefficient C is positioned on

"groupe A" (bloc de traitement 3111). Si ce n'est pas le cas, le processus prend fin.  "group A" (treatment block 3111). If it is not, the process ends.

Si le drapeau de groupe du coefficient C est positionné sur "groupe A", le traitement passe au bloc de traitement 3102, o un essai déterminé si le bit SA du coefficient C est 1. Si le bit SA du coefficient C n'est pas 1, la décision est codée sous la forme "non significatif" (0) dans un contexte de 'groupe A' (bloc de traitement 3103), et le processus prend fin. Si le bit SA du coefficient C est 1, alors le traitement passe au bloc de traitement 3104, o un essai détermine si le signe du coefficient C est positif. Si le signe du coefficient C est positif, la décision est codée sous la forme "significatif positif" (10) dans un ou des contextes de groupe A" (bloc de traitement 3106), et le processus passe au bloc de traitement 3117. Inversement, si le signe du coefficient C n'est pas positif, la décision est codée sous la forme "significatif négatif" (11) dans un ou des contextes de 'groupe A' (bloc de traitement 31105), et le processus passe au bloc de traitement 3117. Dans le bloc de traitement 3117, le drapeau de groupe du  If the group flag of coefficient C is set to "group A", the process proceeds to process block 3102, where a determined test is performed if bit SA of coefficient C is 1. If bit SA of coefficient C is not 1, the decision is coded as "not significant" (0) in a "group A" context (processing block 3103), and the process is terminated. If the SA bit of the coefficient C is 1, then the processing proceeds to the processing block 3104, where a test determines whether the sign of the coefficient C is positive. If the sign of the coefficient C is positive, the decision is coded as "significant positive" (10) in one or more group A contexts (processing block 3106), and the process proceeds to the processing block 3117. Conversely if the sign of the coefficient C is not positive, the decision is coded as "significant negative" (11) in one or more "group A" contexts (processing block 31105), and the process proceeds to the block 3117 In the 3117 processing block, the group flag of the

coefficient C est positionné sur 'groupe B".  coefficient C is set to 'group B'.

La figure 7B est un organigramme d'un autre mode de r6alisation du passage A pour un processus de codage du type horizon à liste unique utilisant une mémoire de drapeau réduite. Ce processus peut être utilisé dans le processus des figures 30A et 30B. Comme représenté sur la figure 7B, le processus du passage A commence par vérifier si le résultat de l'intersection logique (fonction ET) du coefficient C avec le masque MA est zéro (bloc de traitement 31101). Si ce n'est pas le cas, alors le processus prend fin. Si le résultat de l'intersection logique du coefficient C avec le masque MA est zéro, le traitement passe au bloc de  Fig. 7B is a flow chart of another embodiment of passage A for a single-list horizon type coding process using reduced flag memory. This process can be used in the process of Figures 30A and 30B. As shown in FIG. 7B, the process of the passage A starts by checking whether the result of the logical intersection (AND function) of the coefficient C with the mask MA is zero (processing block 31101). If it is not, then the process ends. If the result of the logical intersection of the coefficient C with the mask MA is zero, the processing proceeds to the block of

traitement 31102, o un essai détermine si le bit SA du coefficient C est 1. Si le.  31102, where a test determines whether the SA bit of the coefficient C is 1. If the.

bit SA du coefficient C n'est pas 1, la décision est codée sous la forme 'non significatif" (0) dans un contexte de "groupe A' (bloc de traitement 3103), et le processus prend fin. Si le but SA du coefficient C est 1, alors le traitement se poursuit dans le bloc de traitement 3104, o un essai détermine si le signe du coefficient C est positif. Si le signe du coefficient C est positif, la décision est codée sous la forme "significatif positif" (10) dans un ou des contextes de "groupe A" (bloc de traitement 3106) et le processus prend fin. Inversement, si le signe du coefficient C n'est pas positif, la décision est codée sous la forme "significatif négatif' (11) dans un ou des contexte(s) de 'groupe A' (bloc de  bit SA of the coefficient C is not 1, the decision is encoded as 'insignificant' (0) in a context of 'group A' (processing block 3103), and the process ends. If the SA goal of the coefficient C is 1, then the processing continues in the processing block 3104, where a test determines whether the sign of the coefficient C is positive. If the sign of the coefficient C is positive, the decision is coded as "significant positive" (10) in one or more "group A" contexts (processing block 3106) and the process terminates. Conversely, if the sign of coefficient C is not positive, the decision is coded as "significant negative" (11) in one or more context (s) of "group A" (block of

traitement 3105), et le processus prend fin.  3105), and the process ends.

Opérations de décodage La figure 7C illustre un mode de réalisation du processus du passage A associé à un processus de décodage du type horizon à liste unique selon l'invention, et peut être employée dans le processus des figures 27A et  Decoding Operations Fig. 7C illustrates an embodiment of the A passage process associated with a single list horizon type decoding process according to the invention, and may be employed in the process of Figs.

27B.27B.

Comme représenté sur la figure 7C, le processus commence par vérifier si le drapeau de groupe du coefficient C est positionné sur 'groupe A' (bloc de traitement 3411). Si ce n'est pas le cas, alors le processus prend fin. Toutefois, si le drapeau de groupe du coefficient C est positionné sur 'groupe A", le traitement se poursuit dans le bloc de traitement 3402, o la décision ternaire est décodée dans  As shown in Fig. 7C, the process begins by checking whether the group flag of coefficient C is set to 'group A' (processing block 3411). If it is not, then the process ends. However, if the group flag of coefficient C is set to 'group A', processing continues in processing block 3402, where the ternary decision is decoded in

un ou des contextes de "groupe A".one or more "group A" contexts.

Ensuite, un essai détermine si la décision est 'significatif positif" (bloc de traitement3403). Si la décision est 'significatif positif, le signe du coefficient C est fixé positif (bloc de traitement 3405), l'amplitude du coefficient est fixé à 2SA (bloc de traitement 3407), le drapeau de groupe du coefficient C est positionné sur 'groupe B' (bloc de traitement 3418), et le processus prend fin. Si la décision n'est pas "significatif positif, un essai détermine s'il est 'significatif négatif (bloc de traitement 3404). Si la décision n'est pas 'significatif négatif', le processus prend fin. Toutefois, si la décision est "significatif négatif", alors le signe du coefficient C est fixé négatif (bloc de traitement 3406), l'amplitude C est fixée à 2SA (bloc de traitement 3407), le drapeau de groupe du coefficient C est  Then, a test determines whether the decision is 'significant positive' (treatment block3403) If the decision is 'significant positive', the sign of coefficient C is set positive (processing block 3405), the magnitude of the coefficient is set to 2SA (processing block 3407), the group flag of coefficient C is set to 'group B' (processing block 3418), and the process is terminated If the decision is not "significant positive, a test determines it is significant negative (processing block 3404). If the decision is not 'significant negative', the process ends. However, if the decision is "significant negative", then the sign of coefficient C is set negative (processing block 3406), amplitude C is set to 2SA (processing block 3407), the group flag of coefficient C is

positionné sur "groupe B" (bloc de traitement 3418), et le processus prend fin.  set to "group B" (processing block 3418), and the process ends.

La figure 7D illustre un autre mode de réalisation du processus du passage A associé à un processus de décodage du type horizon à liste unique utilisant une mémoire de drapeau réduite, et peut être employée dans le pocessus des figures 30A et 30B. Comme représenté sur la figure 7D, le processus commence par vérifier si le résultat de l'intersection logique (fonction El) du coefficient C avec le masque MA est zéro (bloc de traitement 3401). Si ce n'est pas le cas, alors le processus prend fin. Toutefois, si le résultat de l'intersection logique du coefficient C avec le masque MA est zéro, le traitement se poursuit dans le bloc de traitement 3402, o la décision ternaire est décodée dans un ou des contextes de  Fig. 7D illustrates another embodiment of the pass A process associated with a single-list horizon type decoding process using reduced flag memory, and may be employed in the process of Figs. 30A and 30B. As shown in FIG. 7D, the process begins by checking whether the result of the logical intersection (function El) of the coefficient C with the mask MA is zero (processing block 3401). If it is not, then the process ends. However, if the result of the logical intersection of the coefficient C with the mask MA is zero, the processing continues in the processing block 3402, where the ternary decision is decoded in one or more contexts of

"groupe A"."group A".

Ensuite, un essai détermine si la décision est "significatif positif' (bloc de traitement 3403). Si la décision est "significatif positif", le signe du coefficient C est fixé positif (bloc de traitement 3405), l'amplitude du coefficient  Then, a test determines whether the decision is "significant positive" (processing block 3403) If the decision is "significant positive", the sign of coefficient C is set positive (processing block 3405), the magnitude of the coefficient

est fixée à 2SA (bloc de traitement 3407), et le processus prend fin.  is set to 2SA (processing block 3407), and the process ends.

Si la décision n'est pas "significatif positif", un essai détermine si elle est "significatif négatif" (bloc de traitement 3404). Si la décision n'est pas "significatif négatif", le processus prend fin. Toutefois, si la décision est "significatif négatif", alors le signe du coefficient C est fixé négatif (bloc de traitement 3406), l'amplitude C est fixée à 2SA (bloc de traitement 3407) et le  If the decision is not "significant positive", a test determines whether it is "significant negative" (processing block 3404). If the decision is not "significant negative", the process ends. However, if the decision is "significant negative", then the sign of coefficient C is set negative (processing block 3406), amplitude C is set to 2SA (processing block 3407) and the

processus prend fin.process ends.

Passage B associé à la fois à la ramification zéro et au type horizon Dans un mode de réalisation, le processus du passage B est le même pour la ramification zéro et le type horizon, selon l'invention. Des modes de réalisation de l'algorithme du passage B associé au processus de codage et au processus de décodage sont présentés respectivement sur les figures 8A et 8B, et  Passage B associated with both the zero branch and the horizon type In one embodiment, the pass B process is the same for the zero branch and the horizon type, according to the invention. Embodiments of the passage B algorithm associated with the coding process and the decoding process are shown in FIGS. 8A and 8B, respectively, and

9Aet9B.9Aet9B.

La figure 8A illustre un mode de réalisation du processus du passage B qui est utilisé partiellement pour le processus de codage du type horizon à liste unique et de la ramification zéro, et il peut être employé dans le proceus des figures 27A et 27B. Comme représenté sur la figure 8A, le processus vérifie initialement si le drapeau de groupe du coefficient C est positionné sur "groupe B'  Fig. 8A illustrates an embodiment of the pass B process which is used partially for the single-list horizon and zero-branch coding process, and may be employed in the process of Figs. 27A and 27B. As shown in FIG. 8A, the process initially checks whether the group flag of the coefficient C is set to "group B"

(bloc de traitement 3111). Si ce n'est pas le cas, alors le prmcessus prend fin.  (treatment block 3111). If this is not the case, then the first one ends.

Inversement, si le drapeau de groupe est ainsi positionné, le traitement se poursuit dans le bloc 3202, o un essai détermine si le bit SB du coefficient C est 1. Si le bit de SB du coefficient C n'est pas 1, alors la décision est codée sous la forine "0" dans un ou des contextes de "groupe B" (bloc de traitement 3333), et le processus prend fin. Si le bit SB du coefficient C est 1, alors la décision est codée sous la forme "1" dans un ou des contextes de 'groupe B" (bloc de traitement 3404), et le  Conversely, if the group flag is thus set, the processing continues in block 3202, where a test determines whether bit SB of coefficient C is 1. If the bit of SB of coefficient C is not 1, then the The decision is coded as "0" in one or more "group B" contexts (processing block 3333), and the process is terminated. If the bit SB of the coefficient C is 1, then the decision is coded as "1" in one or more contexts of "group B" (processing block 3404), and the

processus prend fin.process ends.

La figure 8B illustre un autre mode de réalisation du processus du passage B, qui est utilisé partiellement pour le processus de codage du type horizon à liste unique et de la ramification zéro et qui fait appel à une mémoire de drapeau réduite, ce processus pouvant être employé dans le processus des figures 30A et B. Comme représenté sur la figure 8B, le processus vérifie initialement si le résultat de l'intersection logique (fonction ET) du coefficient C avec le masque MB  FIG. 8B illustrates another embodiment of the pass B process, which is partially used for the single-list horizon and zero-branching coding process and which uses reduced flag memory, which process can be employed in the process of Figs. 30A and B. As shown in Fig. 8B, the process initially checks whether the result of the logical intersection (AND function) of the coefficient C with the mask MB

est non nul (bloc de traitement 3301). Si ce n'est pas le cas, le processus prend fin.  is non-zero (processing block 3301). If it is not, the process ends.

Inversement, si le résultat de l'intersection logique du coefficient C avec le masque MB est non nul, le traitement passe au bloc de traitement 3302, o un essai détermine si le bit SB du coefficient C est 1. Si le bit SB du coefficient C n'est pas 1, alors la décision est codée sous la forme "0" dans un ou des contextes de "groupe B" (bloc de traitement 3303), et le processus prend fin. Si le bit SB du coefficient C est 1, alors la décision est codée sous la forme "1' dans un ou des  Conversely, if the result of the logical intersection of the coefficient C with the mask MB is non-zero, the process proceeds to the process block 3302, where a test determines whether the bit SB of the coefficient C is 1. If the bit SB of the coefficient C is not 1, so the decision is coded as "0" in one or more "group B" contexts (processing block 3303), and the process ends. If the SB bit of the coefficient C is 1, then the decision is coded as "1" in one or more

contextes de 'groupe B" (bloc de traitement 3304), et le processus prend fin.  "Group B" contexts (Processing Block 3304), and the process ends.

La figure 9A illustre un mode de réalisation du décodage associé au passage B selon l'invention, et peut être employée dans le processus des figures 27A et 27B. Comme représenté sur la figure 9A, un essai détermine initialement si le drapeau de groupe du coefficient C est positionné sur "groupe B"  Fig. 9A illustrates an embodiment of the decoding associated with passage B according to the invention, and may be employed in the process of Figs. 27A and 27B. As shown in Fig. 9A, a test initially determines whether the group flag of coefficient C is set to "group B"

(bloc de traitement 3611). Si ce n'est pas le cas, alors le processus prend fin.  (Treatment block 3611). If it is not, then the process ends.

Toutefois, si le drapeau de groupe du coefficient C est positionné sur 'groupe B", alors les décisions sont décodées dans un ou des contextes de "groupe B" (bloc de traitement 3602). Un essai décide alors si la décision est "1" (bloc de traitement 3603). Si la décision n'est pas "1", le processus prend fin. Si la décision est '"1"', le bit SB du coefficient C est positionné (bloc de traitement 3604) et le  However, if the group flag of the coefficient C is set to 'group B', then the decisions are decoded in one or more 'group B' contexts (processing block 3602), a test then decides whether the decision is "1 "(processing block 3603) If the decision is not" 1 ", the process is terminated If the decision is" 1 ", the bit SB of the coefficient C is set (processing block 3604) and the

processus prend fin.process ends.

La figure 9B illustre un autre mode de réalisation du décodage associé au passage B selon l'invention, qui utilise une mémoire de drapeau réduite, cc mode de réalisation pouvant être employé dans le processus des figures 30A et B. Comrnme représenté sur la figure 9B, un essai détermine initialement si les résultats de l'intersection logique (fonction El) du coefficient C avec le masque MB est non nul (bloc de traitement 3601). Si le résultat de l'intersection  FIG. 9B illustrates another embodiment of the decoding associated with the passage B according to the invention, which uses a reduced flag memory, which embodiment can be used in the process of FIGS. 30A and B. As shown in FIG. 9B , a test initially determines whether the results of the logical intersection (function El) of the coefficient C with the mask MB is non-zero (processing block 3601). If the result of the intersection

logique du coefficient C avec le masque MB est zéro, alors le processus prend fin.  logic of the coefficient C with mask MB is zero, so the process ends.

Toutefois, si le résultat de l'intersection logique du coefficient C avec le masque MB est non nul, alors les décisions sont décodées dans un ou des contextes de "groupe B" (bloc de traitement 3602). Un essai décide ensuite si la décision est "1" (bloc de traitement 3603). Si la décision n'est pas "1", le processus prend fin. Si la décision est "1", le bit SB du coefficient C est positionné (bloc de  However, if the result of the logical intersection of the coefficient C with the mask MB is non-zero, then the decisions are decoded in one or more contexts of "group B" (processing block 3602). A trial then decides whether the decision is "1" (processing block 3603). If the decision is not "1", the process ends. If the decision is "1", the bit SB of the coefficient C is set (block of

traitement 3604) et le processus prend fin.  3604 processing) and the process ends.

En utilisant la combinaison du codage d'ordre à ramification zéro et du codage d'ordre du type horizon, l'invention réalise un codage suivant le degré de signification des bits pour les coefficients produits par les ondes élémentaires réversibles. On note que l'utilisation conjointe du groupe A et du groupe B, ainsi que des événements ternaires et des événements binaires correspondant respectivement aux passages "A" et "B" est spécialement importante cu égard au fait qu'un commutateur s'établit lorsqu'on passe de l'utilisation de l'ordre du type ramification zéro à l'ordre du type horizon à la fin de tout passage A. Ceci compense l'inefficacité de prédiction qui accompagne l'ordre du type ramification zéro pour les bits d'ordre inférieur. Ainsi, selon l'invention, le système commence par coder selon la ramification zéro les données des bits d'ordre supérieur, puis, après un certain nombre de passages dans les listes, c'est-à-dire après qu'unm certain nombres de plans mémoire ont été codés, le codeur selon l'invention commute de façon à coder le reste des données à l'aide d'un codage du type horizon. On peut choisir le nombre de passages de façon statistique ou on peut le choisir de façon adaptative en surveillant le rendement du bloc de codage selon l'ordre de la  By using the combination of the zero-branched order coding and the horizon type command coding, the invention realizes a coding according to the degree of significance of the bits for the coefficients produced by the reversible elementary waves. It should be noted that the joint use of group A and group B, as well as ternary events and binary events corresponding respectively to passages "A" and "B", is especially important in view of the fact that a switch is established when we go from using the zero branching order to the horizon type order at the end of any A pass. This compensates for the inefficiency of prediction that accompanies the zero branching order for lower order. Thus, according to the invention, the system starts by coding the data of the higher order bits according to the zero branching, and then after a certain number of passages in the lists, that is to say after a certain number memory planes have been coded, the encoder according to the invention switches so as to encode the rest of the data using a coding of the horizon type. The number of passes can be selected statistically or can be adaptively selected by monitoring the performance of the coding block in the order of

ramification zéro.zero branching.

Autres modèles de contexte Dans un mode de réalisation, on utilise cinq compartiments de contextes binaires. Ceci est peu par comparaison avec d'autres systèmes, par exemple le JBIG qui utilise un peu plus de 1024 contextes. On peut améliorer la compression en utilisant plus de compartiments de contextes. Les décisions peuvent être conditionnées par une position spatiale, un niveau, ou une position dc bit. Les décisions peuvent aussi être conditionnées par des données précmment décodées qui sont proches des données courantes en ce qui concerne la position spatiale, le niveau ou la position de bit. De façon générale, les contextes dc Markov d'ordre zéro précédemment décrits peuvent être remplacés par des  Other context models In one embodiment, five compartments of binary contexts are used. This is little compared to other systems, for example the JBIG which uses a little more than 1024 contexts. Compression can be improved by using more context compartments. Decisions can be conditioned by a spatial position, level, or bit position. Decisions can also be conditioned by previously decoded data that is close to current data with respect to spatial position, level, or bit position. In general, the previously described zero order Markov contexts can be replaced by

contextes de Markov d'ordre supérieur.  higher order Markov contexts.

Quelques exemples sont donnés ci-dessous. Le bit le plus significatif (et par conséquent le plus facilement prédit) de chaque mantisse (données de groupe B dans certains modes de réalisation) pourrait utiliser un contexte différent de celui des autres bits. La décision significatif ou non significatif' pourrait être conditionnée par une décision analogue prise pour des coefficients antérieurs spatialement rapprochés, du même niveau de transformation. De même, les bits de signe des coefficients significatifs pourraient être conditionnés par le signe de coefficients antérieurs spatialement rapprochés ayant le même niveau ou par le  Some examples are given below. The most significant (and therefore most easily predicted) bit of each mantissa (group B data in some embodiments) could use a different context than the other bits. The significant or insignificant decision could be conditioned by a similar decision taken for previously spatially close coefficients of the same level of transformation. Similarly, the sign bits of the significant coefficients could be conditioned by the sign of previously spatially close coefficients having the same level or by the

signe du coefficient du parent.sign of the coefficient of the parent.

Les améliorations dues au modèle de contexte peuvent être spécialement importantes lorsqu'il s'agit de comprimer des images ayant une structure spatiale ou du type multirésolution. Les images d'échelle de gris appartenant à des dessins sous forme de tracés ou à des textes constituent un exemple d'images ayant ces deux types de structure. Les améliorations sont également importantes lorsqu'on comprime des fichiers qui, à priori, doivent êtrc  The enhancements due to the context model can be especially important when it comes to compressing images having spatial structure or multiresolution type. Gray scale images belonging to line drawings or text are an example of images having both types of structures. Improvements are also important when compressing files that, in principle, need to be

comprimés et décomprimés avec une erreur de crête spécifiée.  compressed and decompressed with a specified peak error.

Autres modes de réalisation de l'invention L'invention peut être mise en oeuvre sous la forme d'un équipement matériel, sous forme logicielle ou sous les deux formes en même temps. Une mise en oeuvre sous forme matérielle de l'invention demande la réalisation des filtres à ondes élémentaires, une gestion de la circulation des données par rapport à la mémoire permettant de fournir les données destinées aux filtres, un modèle de contexte servant à commander le codage par implantation selon l'invention, une gestion de la circulation des données par rapport à la mémoire permettant de fournir les données destinées au modèle de contexte, et un codeur entropiquc  Other Embodiments of the Invention The invention can be implemented in the form of hardware equipment, in software form or in both forms at the same time. A hardware implementation of the invention requires the realization of the elementary wave filters, a management of the data flow with respect to the memory to provide the data intended for the filters, a context model for controlling the coding by implantation according to the invention, a management of the circulation of the data relative to the memory making it possible to supply the data intended for the context model, and an entropy coder

binaire.binary.

Filtres à ondes élémentaires Un mode de réalisation du filtre à ondes élémentaires direct selon l'invention est présenté sur la figure 10. Le filtre i ondes élémentaires représenté sur la figure 10 traite quatre pixels d'entrée du type complémentation à 2 de 16 bits, représentés par X(2)-X(5). Comme on peut le voir sur la figure 10, le filtre passe- bas '"1 1" à deux prises utilise un additionneur à 16 bits 1001. Les signaux de sortie sont respectivement appelés S et D. Le signal de sortie de l'additionneur (S) est tronqué à 16 bits à l'aide d'un bloc 1003 effectuant un décalage de 1. Le bloc 1003 du décalage de 1 effectue une fonction de division par 2 en décalant d'un bit vers la  Elementary Wave Filters An embodiment of the direct elementary wave filter according to the invention is shown in FIG. 10. The elementary wave filter shown in FIG. 10 processes four input pixels of the 16 bit complementation type, represented by X (2) -X (5). As can be seen in FIG. 10, the two-tap low-pass filter "1" uses a 16-bit adder 1001. The output signals are respectively called S and D. The output signal of the adder (S) is truncated to 16 bits using a block 1003 shifted by 1. Block 1003 of the shift of 1 performs a division function by 2 by shifting one bit towards the

droite son signal d'entrée de 17 bits.  right its 17-bit input signal.

Le filtre passe-haut "-1 -1 8 -8 1 1" à six prises intermédiaires demande le calcul de -SO + 4D1 + S2. La fonction S2 - So est calculée l'aide du soustracteur à 16 bits 1005 qui reçoit le signal de sortie du bloc 1003 de décalage de 1 et Y0(0). Le terme 4D1 est calculé à l'aide du soustracteur 1002 et d'un bloc 1004 de décalage de 2. Le signal de sortie produit par le soustracteur à 16 bits 1002 est décalé de deux positions vers la gauche, ce qui a pour effet de multiplier par quatre son signal de sortie. L'addition du signal de sortie 4D1 venant du bloc 1004 de décalage de 2 au signal de sortie du soustracteur 1005 est effectuée par un additionneur à 20 bits 1006. Le signal de sortie de l'additionneur final est tronqué à 18 bits à l'aide d'un bloc 1007 de décalage de 2. Le bloc 1007 de décalage de 2 effectue une fonction de division par quatre en décalant de deux bits  The high-pass filter "-1 -1 8 -8 1 1" at six intermediate taps requires the calculation of -SO + 4D1 + S2. The function S2-So is calculated using the 16-bit subtractor 1005 which receives the output signal from the shift block 1003 of 1 and Y0 (0). The term 4D1 is calculated using the subtracter 1002 and an offset block 1004 of 2. The output signal produced by the 16-bit subtractor 1002 is shifted two positions to the left, which has the effect of multiply by four its output signal. The addition of the output signal 4D1 from the shift block 1004 of 2 to the output signal of the subtractor 1005 is performed by a 20-bit adder 1006. The output signal of the final adder is truncated to 18 bits at the using a shift block 1007 of 2. The shift block 1007 of 2 performs a division function by four by shifting two bits

vers la droite son signal d'entrée de 20 bits.  to the right its 20-bit input signal.

Ainsi, l'équipement de calcul total nécessaire (sans compter les registres servant à mémoriser des résultats temporaires) est: - un additionneur à 16 bits, - deux soustracteurs à 16 bits,  Thus, the total computing equipment required (not counting the registers used to store temporary results) is: - a 16-bit adder, - two 16-bit subtractors,

- un additionneur à 19 bits.a 19-bit adder.

On note que le décalage s'effectue à l'aide du câblage, de sorte qu'aucun circuit  It is noted that the offset is made using the wiring, so that no circuit

logique n'est nécessaire.logic is necessary.

Dans d'autres modes de réalisation, pour des signaux d'entrée de taille N, on peut utiliser un additionneur à N bits, deux soustracteurs à N bits et un  In other embodiments, for input signals of size N, an N-bit adder, two N-bit subtractors, and one N-bit adder can be used.

additionneur à (N + 3) bits.adder at (N + 3) bits.

Du fait du coût matériel extrêmement bas de ces additionneurs et  Because of the extremely low material cost of these adders and

soustracteurs, on peut utiliser, si on le souhaite, un montage de filtres en parallèle.  subtractors, one can use, if desired, a filter assembly in parallel.

On note que, au lieu de soustraire X(3) et X(2), on peut calculer X(4)X(5) et mettre le résultat en réserve jusqu'à ce qu'on en ait ultérieurement besoin sous la forme X(2)-X(3) pour le prochain décalage ou la prochaine application du filtre. Le filtre direct (comme le filtre inverse décrit ultérieurement) peut être monté en 'pipeline' pour procurer un rendement supérieur. Le filtre à ondes élémentaires inverse est présenté sur la figure 11. Les signaux d'entrée YO(0) et Yo(2) sont soustraits par un soustracteur 1101. Le résultat de la soustraction est décalé de deux bits vers la droite par un bloc 1102 de décalage de 2. Ceci a pour effet de diviser par quatre le signal de sortie du soustracteur. Une soustraction est effectuée entre le signal de sortie du bloc 1104 de décalage de 2 et le signal d'entrée Yl(0). Le signal d'entrée Y0(1) est décalé d'un bit vers la gauche par le bloc 1103 de décalage de 1, ce qui multiplie le signal d'entrée par deux. Après que Y0(1) a été décalé de 1 (c'est-à-dire multiplié par 2), le bit le moins significatif (LSB) de la valeur décalée est le bit le moins significatif pris dans le signal de sortie du soustracteur 1104 et combiné avec le signal de sortie de 16 bits venant du bloc 1103 de décalage de 1 pour former le signal d'entrée destiné à l'additionneur 1105 et au soustracteur 1106. L'autre signal d'entrée de l'additionneur 1105 et du soustracteur 1106 est constitué par le signal de sortie du soustracteur 1104. Les signaux de sortie de l'additionneur 1105 et du  Note that, instead of subtracting X (3) and X (2), we can calculate X (4) X (5) and put the result in reserve until we need it later in form X (2) -X (3) for the next offset or the next filter application. The direct filter (like the reverse filter described later) can be pipelined to provide superior performance. The inverse elementary wave filter is shown in FIG. 11. The input signals Y0 (0) and Y0 (2) are subtracted by a subtractor 1101. The result of the subtraction is shifted two bits to the right by a block This has the effect of dividing by four the output signal of the subtracter. A subtraction is performed between the output signal of the shift block 1104 of 2 and the input signal Y1 (0). The input signal Y0 (1) is shifted one bit to the left by the shift block 1103 of 1, which multiplies the input signal by two. After Y0 (1) has been shifted by 1 (i.e., multiplied by 2), the least significant bit (LSB) of the shifted value is the least significant bit taken from the output signal of the subtractor 1104 and combined with the 16-bit output signal from the offset block 1103 of 1 to form the input signal for the adder 1105 and the subtractor 1106. The other input signal of the adder 1105 and of the subtractor 1106 is constituted by the output signal of the subtractor 1104. The output signals of the adder 1105 and the

soustracteur 1106 peuvent subir ensuite un écrêtage.  subtractor 1106 can then be clipped.

On peut choisir deux opérations d'écrêtage. Dans les deux cas, la valeur à 20 bits est décalée de 1 (divisée par deux), pour donner une valeur à 19 bits. Pour un système qui n'effectue que la compression sans pertes, on peut délivrer en sortie les 16 bits les moins significatifs (on peut ignorer les trois bits restants). Dans un système avec pertes (ou un système avec/sans pertes), la valeur à 19 bits est fixée à zéro si elle est négative ou est fixée à 216-1 si elle est supérieure à 216-1; sinon,  You can choose two clipping operations. In both cases, the 20-bit value is shifted by 1 (divided by two) to give a value of 19 bits. For a system that performs only lossless compression, the least significant 16 bits can be output (the remaining three bits can be ignored). In a lossy system (or a lossy / lossless system), the 19-bit value is set to zero if it is negative or is set to 216-1 if it is greater than 216-1; if not,

on délivre en sortie les 16 bits les moins significatifs.  the 16 least significant bits are output.

Pour des signaux d'entrée de taille N bits, on peut utiliser un soustracteur à N bits, un soustracteur à (N+2) bits, un additionneur à (N+3) bits et  For input signals of size N bits, it is possible to use an N-bit subtractor, a (N + 2) -bit subtractor, an (N + 3) -bit adder and

un soustracteur à (N+3) bits, et l'unité d'écrêtage délivre N bits.  a (N + 3) bit subtractor, and the clipping unit outputs N bits.

Mode d'utilisation de la mémoire En ce qui concerne la gestion de la mémoire et de la circulation des données s'appliquant aux filtres à ondes élémentaires selon l'invention, dans le cas d'images telles qu'une image complète peut être placée en mémoire, la gestion de la mémoire et de la circulation des données n'est pas difficile. Même pour des images médicales représentant 1024 x 1024 fois 16 bits (soit 2 mégaoctets), il est raisonnable, pour de nombreuses applications, de demander un tampon d'image complète. Pour des images plus grandes (par exemple des images en 4 couleurs à 400 points par pouce de format A4, dont la taille est d'environ 50 mégaoctets), il est souhaitable d'effectuer la transformation par ondes élémentaires au moyen  Mode of use of the memory With regard to the memory management and the data flow applicable to the elementary wave filters according to the invention, in the case of images such that a complete image can be placed in memory, the management of memory and data flow is not difficult. Even for medical images representing 1024 x 1024 times 16 bits (2 megabytes), it is reasonable for many applications to request a full image buffer. For larger images (eg 4-color 400 dpi images of A4 size, about 50 megabytes in size), it is desirable to perform the elementary wave transformation using

d'une mémoire de tampon de ligne représentant une quantité limitée.  a line buffer memory representing a limited amount.

On notera que, selon l'invention, il n'est pas nécessaire d'avoir un tampon d'image complète pour mettre en oeuvre un système à un seul passage. De ce fait, on peut réduire la mémoire nécessaire d'un facteur approximatif de 100 (par comparaison avec l'utilisation d'un tampon d'image complète pour grandes  Note that, according to the invention, it is not necessary to have a complete image buffer to implement a single-pass system. As a result, the required memory can be reduced by a factor of approximately 100 (compared with the use of a full image buffer for large

images). On va décrire ci-après le système à un seul passage selon l'invention.  images). The one-pass system according to the invention will be described below.

Les données mémorisées dans la mémoire de filtrage sont constituées d'une série de coefficients qui doivent être soumis au codage par implantation et au codage entropique binaire. Le codage par implantation utilise un modèle de contexte pour coordonner l'usage d'un codage basé sur la fréquence ou d'un codage du type horizon et pour fournir des données suivant l'ordre voulu. Le modèle de contexte fonctionne en liaison avec un schéma de gestion de la mémoire. Pour les systèmes dotés d'un tampon d'image complète, il n'est pas difficile de fournir des données dans l'ordre voulu. Pour des systèmes dépourvus d'un tampon d'image complète, le schéma de gestion de données de transformation du mode de réalisation à un seul passage selon l'invention (décrit ci- après) fournit des coefficients au modèle de contexte de sorte que le modèle de contexte doit seulement mettre en tampon les coefficients relatifs à une seule ramification. Un modèle de contexte basé sur la fréquence à un seul passage et un modèle de contexte basé conjointement sur l'espace et la fréquence du type à un seul passage  The data stored in the filter memory consists of a series of coefficients that must be subjected to implementation encoding and binary entropy coding. Implant coding uses a context model to coordinate the use of frequency-based or horizon-type coding and to provide data in the desired order. The context model works in conjunction with a memory management scheme. For systems with a full image buffer, it is not difficult to provide data in the correct order. For systems without a full image buffer, the transformation data management scheme of the single pass embodiment of the invention (described hereinafter) provides coefficients to the context model so that the context model only needs to buffer the coefficients for a single branch. A single-pass frequency-based context model and a context-based contextual model based on space and frequency of the single-pass type

travaillent sur une seule ramification à la fois.  work on only one branch at a time.

Le résultat de l'opération d'implantation selon l'invention est de produire des trains de bits à partir du mécanisme de modélisation basé sur la fréquence selon l'invention et du mécanisme de modélisation basé conjointement sur l'espace et la fréquence selon l'invention. Ces trains de bits sont ensuite codés à  The result of the implantation operation according to the invention is to produce bitstreams from the frequency-based modeling mechanism according to the invention and the space-based and frequency-dependent modeling mechanism according to the invention. 'invention. These bitstreams are then coded to

l'aide d'un codeur entropique binaire.  using a binary entropic coder.

* Pour un système doté d'un tampon d'image complète, on utiliser n'importe quel codeur entropique binaire (ou autre codeur approprié). Pour des systèmes dépourvus d'un tampon d'image complète, on doit utiliser plusieurs codeurs indépendants, ou bien le codeur doit pouvoir simuler plusieurs codeurs indépendants. De plus, il est nécessaire de gérer la mémoire ou le canal pour garder la trace des signaux de sortie des codeurs indépendants. Un avantage de linvention est que les données à gérer sont classées suivant un certain ordre de priorité (ce que l'on appelle "implantées"). Si l'on ne dispose pas de suffisamment de place ou de largeur de bande, pendant la compression ou la transmission, on peut écarter des données moins importantes en autorisant une compression à degré de pertes raisonnable. Système à un seul oassage selon l'invention L'invention propose une transformation à un seul passage qui permet* For a system with a full frame buffer, use any binary entropic encoder (or other appropriate encoder). For systems without a complete image buffer, several independent encoders must be used, or the encoder must be able to simulate several independent encoders. In addition, it is necessary to manage the memory or the channel to keep track of the output signals of the independent encoders. One advantage of the invention is that the data to be managed are classified according to a certain order of priority (so-called "implanted"). If there is not enough space or bandwidth, during compression or transmission, less important data can be discarded by allowing reasonable loss compression. A single-pass system according to the invention The invention proposes a single pass transformation which allows

de traiter complètement les données d'entrée du système lors de leur réception.  to completely process the input data of the system upon receipt.

Dans un tel système, le traitement des données ne dépend pas des données qui suivent. La mémoire nécessaire pour comprimer une image est indépendantc de la longueur de l'image. En supprimant la dépendance, l'invention fournit un système qui peut délivrer des données comprimées avant que toutes les données aient été  In such a system, data processing does not depend on the following data. The memory required to compress an image is independent of the length of the image. By removing the dependency, the invention provides a system that can deliver compressed data before all data has been

traitées.processed.

A. Gestion des données pour une transformation à un seul passage La figure 12 représente une partie d'une image qui est en train d'être comprimée suivant un certain ordre de tramage par la méthode des bandes à l'aide des enseignements de l'invention. On considère le cas d'une décomposition à  A. Data Management for a Single-pass Transformation Figure 12 shows a portion of an image that is being compressed in a certain dithering order by the tape method using the teachings of the invention. We consider the case of a decomposition

quatre niveaux. Chaque ramification possède 24 x 24 = 16 x 16 = 256 coefficients.  four levels. Each branch has 24 x 24 = 16 x 16 = 256 coefficients.

Toutefois, puisque le filtre passe-haut de la transformation par ondes élémentaires selon l'invention est en chevauchement, chaque ramification dépend de plus de 256 pixels d'entrée. Lc filtre passe-bas "'1 1" à deux prises intermédiaires, désigné par L, ne cause aucun chevauchement, la totalité du chevauchement provenant du filtre passe-haut "-1 -1 8 -8 1 1" à six prises intermédiaires, désigné par H. Le chevauchement le plus important se produit pour la cascade de trois applications du filtre passe-bas suivies d'une application du filtre passe-haut (LLIH). Trois applications du filtre passe-bas (LLL) nécessitent le support de 23 = 8 pixels d'entrée. Des régions de support d'une taille de 8x8 pixels sont présentées sur la figure 12. Lorsqu'on inclut le filtre passe-haut dans la cascade, les régions de support sont de (6 x 23) x (6 x 23) = 48 x 48 pixels. Une région de support de 48 x 48 pixels, constituée de trente-six blocs 8x8 est présentée sur la figure 12. On suppose que les coefficients de la région de support de 48 x 48 pixels présentée sur la figure 12 sont en train d'être traités. La partie légèrement ombrée de la région de support indique des pixels qui ont déjà été utilisés dans de précédentes régions de support. La partie légèrement ombrée qui est à l'extérieur de la région de support indique des pixels qui ont déjà été utilisés dans de précédentes régions de support et qui sont nécessaires dans de futures régions de support. La région noire de 16 x 16 pixels est la partie de la région de support qui contient des pixels n'ayant pas été utilisés précédemment. De même, la région fortemaent ombrée de 16 x 16 pixels contient des pixels qui n'ont pas été utilisés précédemment, mais qui seront utilisés dans la région de support suivante de 48 x 48 pixels. On calcule une transformation 16 x 16 à trois niveaux, on va chercher dans un tampon les résultats antérieurs de huit autres transformations 16 x 16 à trois niveaux, et on applique le quatrième niveau de la transformation aux neuf transformations 16 x 16 à trois niveaux. La capacité de mise en tampon nécessaire pour accomplir cette opération est suffisante pour stocker les coefficients de transformation à trois niveaux pour (2 x 'largeur d'image' +32) x 16 pixels, plus un tampon de 16 lignes (une bande)  However, since the high-pass filter of the elementary wave transformation according to the invention is overlapping, each branching depends on more than 256 input pixels. The L-shaped low pass filter '' 1 1 '' does not cause any overlap, the entire overlap from the high pass filter '-1 -1 8 -8 1 1' at six intermediate taps, The most important overlap occurs for the cascade of three low pass filter applications followed by a high pass filter (LLIH) application. Three low pass filter (LLL) applications require support of 23 = 8 input pixels. Supporting regions with a size of 8x8 pixels are shown in Figure 12. When including the high-pass filter in the cascade, the support regions are (6 x 23) x (6 x 23) = 48 x 48 pixels. A support region of 48 x 48 pixels, consisting of thirty-six 8x8 blocks is shown in Figure 12. It is assumed that the coefficients of the 48 x 48 pixel support region shown in Figure 12 are being treaties. The lightly shaded portion of the support region indicates pixels that have already been used in previous support regions. The slightly shaded portion that is outside the support region indicates pixels that have already been used in previous support regions and are needed in future support regions. The 16 x 16 pixel black region is the portion of the support region that contains pixels that have not been previously used. Similarly, the shaded 16x16 pixel region contains pixels that have not been previously used but will be used in the next 48 x 48 pixel support region. A three-level 16 x 16 transformation is computed, the previous results of eight other 16 x 16 three-level transformations are sought in a buffer, and the fourth level of the transformation is applied to the nine 16 x 16 three-level transformations. The buffering capability required to accomplish this operation is sufficient to store the three-level transform coefficients for (2 x '+32) x 16-pixel image width, plus a 16-line buffer (one band)

de pixels.pixels.

La figure 13 est un schéma fonctionnel montrant un mode de réalisation de l'unité de filtrage par ondes élémentaires à un seul passage, qui comprend une unité 1301 de commande de filtre, une mémoire 1302 et un filtre 1303. Le filtre 1303 est constitué par le filtre décrit en liaison avec la figure 10. La mémoire 1302 se rapporte à la mémoire décrite ci-dessus en liaison avec la figure 12 et mémorise des pixels ou des coefficients. L'unité de commande de filtre 1301 détermine la circulation des données entre la mémoire 1302 et le filtre 1303. On va expliquer ci-dessous le fonctionnement de l'unité 1301 de  Fig. 13 is a block diagram showing an embodiment of the single-pass elementary wave filter unit, which comprises a filter control unit 1301, a memory 1302 and a filter 1303. The filter 1303 is constituted by the filter described in connection with Figure 10. The memory 1302 relates to the memory described above in connection with Figure 12 and stores pixels or coefficients. The filter control unit 1301 determines the flow of data between the memory 1302 and the filter 1303. The operation of the 1301 unit will be explained below.

commande de filtre.filter control.

La figure 14 représente une autre unité de filtrage par ondes élémentaires. Pour obtenir un fonctionnement rapide, on peut utiliser plusieurs filtres. Dans un mode de réalisation, puisque le filtre 1303 demande quatre ou cinq entrées (par exemple filtre inverse, filtre direct) et produit deux  FIG. 14 represents another unit of elementary wave filtering. For fast operation, several filters can be used. In one embodiment, since the filter 1303 requires four or five inputs (eg inverse filter, direct filter) and produces two

signaux de sortie, la largeur de bande de mémoire nécessaire peut être importante.  output signals, the necessary memory bandwidth may be important.

La mémoire peut avoir plusieurs pixels ou coefficients par emplacement, plusieurs blocs de mémoire et, ou bien, plusieurs accès. Une unité d'interface de mémoire 1401 réduit la largeur de bande de mémoire nécessaire en fournissant de petits tampons destinés aux données locales utilisées pendant le traitement. L'unité d'interface de mémoire 1401 assure aussi le multiplexage et le démultiplexage  The memory may have multiple pixels or coefficients per location, multiple memory blocks, and / or multiple accesses. A memory interface unit 1401 reduces the necessary memory bandwidth by providing small buffers for local data used during processing. The memory interface unit 1401 also provides multiplexing and demultiplexing

entre les entrée/sortie (I/O) de la mémoire 1302 et les entrée/sortie du filtre 1303.  between the input / output (I / O) of the memory 1302 and the input / output of the filter 1303.

En plus de la largeur de bande de mémoire nécessaire pour le filtrage, une largeur de bande supplémentaire peut être nécessaire pour l'application des pixels à l'entrée de la mémoire 1302 et la délivrance des coefficients au moduIC de contexte. Si des pixels sont appliqués en entrée suivant un ordre de tramage, une  In addition to the memory bandwidth required for filtering, additional bandwidth may be required for the application of the pixels to the input of the memory 1302 and the delivery of the coefficients to the context moduIC. If pixels are inputted following a dithering order, a

mémoire supplémentaire peut être nécessaire pour le tampon de bande.  Additional memory may be needed for the tape buffer.

Si une mémoire stocke des éléments multiples (pixels ou coefficients) dans chaque emplacement, au lieu de stocker horizontalement ou verticalement des éléments adjacents dans une rangée ou une colonne, ceci peut réduire la quantité des accès en mémoire et la capacité de mise en tampon nécessaires en faisant que les éléments contenus dans un bloc N x N, o Nest une puissance de 2, partage lc même emplacement. Ceci donne une commodité égale aux accès verticaux et  If a memory stores multiple elements (pixels or coefficients) in each location, instead of horizontally or vertically storing adjacent elements in a row or column, this may reduce the amount of memory access and buffering capacity required by making the elements contained in an N x N block, where Nest a power of 2, share the same location. This gives equal convenience to the vertical and

horizontaux.horizontal.

On peut également mettre en oeuvre plusieurs blocs de mémoire de facçon que l'accès horizontal et l'accès vertical puissent tous deux tirer un même avantage des blocs multiples, comme représenté sur la figure 15. Dans le cas de deux blocs de mémoire, un bit de sélection de bloc destiné à sélectionner l'un ou l'autre des blocs de mémoire peut être formé, dans un mode de réalisation, à l'aide d'une addition logique (OU exclusif) des bits les moins significatifs des coordonnées horizontales et verticales. Dans le cas de quatre blocs de mémoire, les deux bits de sélection de bloc peuvent être formés par addition (modulo 4 à l'aide d'un additionneur à 2 bits) deux bits les moins significatifs des coordonnlés  Several memory blocks can also be implemented so that horizontal and vertical access can both benefit from the multiple blocks, as shown in FIG. 15. In the case of two memory blocks, one can block selection bit for selecting one or the other of the memory blocks may be formed, in one embodiment, by means of a logical addition (exclusive OR) of the least significant bits of the horizontal coordinates and vertical. In the case of four blocks of memory, the two block selection bits can be formed by addition (modulo 4 using a 2-bit adder) two least significant bits of the co-ordinates

horizontales et verticales.horizontal and vertical.

La figure 16 illustre l'opération de filtrage à un seul passage pour la mise en oeuvre d'une décomposition à deux niveaux au moyen de l'unité de  Figure 16 illustrates the single-pass filtering operation for implementing a two-level decomposition using the

commande de filtre 1301 (figure 13). On note que, dans le cadre de la description,  filter control 1301 (Figure 13). It is noted that, as part of the description,

on présentera d'abord de la description d'une décomposition à deux niveaux en vuc  we will first present the description of a decomposition at two levels in vuc

d'illustrer la technique générale de l'invention. Dans d'autres modes de réalisation, on utilise des décompositions à trois niveaux, quatre niveaux ou plus. Une décomposition à deux niveaux possède 16 coefficients par ramification et demande un calcul travaillant avec 16 pixels d'entrée qui n'ont pas été utilisés antérieurement. Le filtrage relatif à une ramification de coefficients s'effectue aen 16 unités de temps ou moins de façon à assurer la correspondance avec les débits d'entrée et de sortie. Dans cet exemple, on utilise deux filtres fonctionnant ae parallèle afin d'atteindre le rendement voulu de deux opérations de filtrage par unité de temps. Pour chaque emplacement spatial, o le côté antérieur dun filtre est appliqué, la figure 16 présente un nombre qui indique le temps auquel chaque  to illustrate the general technique of the invention. In other embodiments, three-level, four-level or more decompositions are used. A two-level decomposition has 16 coefficients per branch and requires a calculation working with 16 input pixels that have not been used previously. The filtering relating to a coefficient branch takes place in 16 units of time or less so as to match the input and output rates. In this example, two filters operating parallel are used to achieve the desired performance of two filtering operations per unit of time. For each spatial location, where the front side of a filter is applied, Figure 16 shows a number that indicates the time at which each

opération de filtrage a été exécutée.  filtering operation was performed.

Puisque l'ordre des opérations de filtrage est déterminé par le côté antérieur du filtre, le filtrage ne produit pas tous les coefficients d'une cetaine ramification avant d'avoir produit quelques-uns des coefficients de la ramification suivante. Le filtrage des enfants de la ramification a lieu avant le filtrage des parents, et le filtrage passe-bas est effectué avant le filtrage passe-haut correspondant. Le filtrage agit sur le "groupe A' de coefficients qui possède le même nombre de coefficients d'un type qu'une ramification concerne.  Since the order of the filtering operations is determined by the front side of the filter, the filtering does not produce all the coefficients of a certain branch before producing some of the coefficients of the next branch. The filtering of the children of the branching takes place before the filtering of the parents, and the low-pass filtering is carried out before the corresponding high-pass filtering. Filtering acts on the "group A" of coefficients which has the same number of coefficients of a type as a branch.

Le filtrage horizontal de niveau 1 e est xécuté pendant le laps de temps qui va du temps 0 au temps 7, et les résultats sont stockés dans un tampon temporaire. (Chaque emplacement spatial donne deux coefficients.) Pendant le laps de temps qui va du temps 2 au temps 9, le filtrage vertical est exécuté (à raide du deuxième filtre) sur des données contenues dans le tampon et des données du filtrage horizontal précédent provenant de la mémoire (deux fois par emplacement spatial). Le filtrage vertical peut commencer dès que la deuxième opération de filtrage horizontal est achevée. Les coefficients HH, HL et LH sont prêts à être délivrés au modèle de contexte (au temps approprié). Les coefficients LL sont  The level 1 e horizontal filtering is executed during the time period from time 0 to time 7, and the results are stored in a temporary buffer. (Each spatial location gives two coefficients.) During the time period from time 2 to time 9, vertical filtering is performed (through the second filter) on data contained in the buffer and data from the previous horizontal filtering from of memory (twice per space location). Vertical filtering can begin as soon as the second horizontal filtering operation is complete. The coefficients HH, HL and LH are ready to be delivered to the context model (at the appropriate time). The LL coefficients are

utilisés dans le niveau suivant.used in the next level.

Avec deux filtres seulement, le filtrage horizontal de niveau 0 ne peut pas commencer avant le temps 8 o le filtrage horizontal de niveau 1 est achevé, rendant ainsi un filtre disponible. Le filtrage horizontal de niveau 0 ne peut pas se terminer avant le temps 10 un cycle après que le filtrage vertical de niveau 0 s'est achevé, fournissant toutes les données nécessaires. Ensuite, pendant le laps de  With only two filters, level 0 horizontal filtering can not begin before time 8 o Level 1 horizontal filtering is complete, thus making a filter available. Level 0 horizontal filtering can not be completed before the cycle time after level 0 vertical filtering has completed, providing all necessary data. Then, during the lapse of

temps des temps 11 et 12, le filtrage vertical de niveau 1 peut avoir lieu.  time of the times 11 and 12, the level 1 vertical filtering can take place.

Le tableau 1 ci-après résume le fonctionnement de chaque filtre pendant chaque unité de temps. Les éléments du tableau sont présentés dans le format suivant: numéro du niveau, horizontal ou vertical ("L" ou "V") et emplacement spatial du côté antérieur. Les éléments soumis à des opérations de filtrage vertical sont identifiés comme filtrés passe-bas ou passe-haut à l'aide de l'indice "L" ou "H". On note qu'il n'est pas nécessaire d'affecter un certain filtre à l'exécution du filtrage horizontal et l'autre à l'exécution du filtrage vertical, puisque  Table 1 below summarizes the operation of each filter during each unit of time. The elements of the table are presented in the following format: level number, horizontal or vertical ("L" or "V") and spatial location of the previous side. Items subjected to vertical filtering operations are identified as low-pass or high-pass filtered using the "L" or "H" index. It is noted that it is not necessary to assign a certain filter to the execution of the horizontal filtering and the other to the execution of the vertical filtering, since

les deux filtres dont identiques.the two filters including identical.

TABI.FAU 1TABI.FAU 1

Temps _ Filtre 1 | Filtre 2 O 1H(0,0) (libre)  Time _ Filter 1 | Filter 2 O 1H (0,0) (free)

1 1H(0,1)1H (0.1)

2 1H(2,0) 1VL(O,O)2 1H (2.0) 1VL (O, O)

3 1H(2,1) 1VH(O,O)3 1H (2.1) 1VH (O, O)

4 1H(0,2) 1VL(0,2)4H (0.2) 1VL (0.2)

1H(0,3) 1VH(2,0)1H (0.3) 1VH (2.0)

6 1H(2,2) 1VL(0,2)6H (2.2) 1VL (0.2)

7 1H(2,3) 1VH(0,2)7H (2,3) 1H (0.2)

8 OH(0,0) 1VL(2,2)8 OH (0.0) 1VL (2.2)

9 ( i bre) 1VH(2,2) 10 OH(O,1) (libre) il11 OVL(O,O)  9 (i) OH (2,2) OH (O, 1) (free) OVL (O, O)

12 OVH(O,O)12 OVH (O, O)

I 13 (Libre) 14 L(libre) Alors que le filtrage horizontal de niveau 1 peut rccommencer avec lc groupe suivant de pixels d'entrée au temps 11, ceci amènera le filtre à fonctionner à une vitesse dépassant les débits d'entrée et de sortie. Au lieu de cela, selon l'invention, les filtres restent libres et le traitement du groupc suivant commenceCC au temps 16. Les cycles de filtrage libres peuvent être utilisés pour les transferts en mémoire. Au lieu d'apparaître à la fin du filtrage pour chaque groupc, les cycles  I 13 (Free) 14 L (free) While level 1 horizontal filtering may start with the next group of input pixels at time 11, this will cause the filter to operate at a speed exceeding the input and output rates. exit. Instead, according to the invention, the filters remain free and the next groupc processing begins CC at time 16. The free filter cycles can be used for memory transfers. Instead of appearing at the end of filtering for each groupc, cycles

libres pourraient être répartis entre les cycles de filtrage si cela était souhaitablc.  free could be split between filter cycles if this were desirable.

En liaison avec les explications concernant le cas du niveau 2, on présente dans le tableau 2 le cas à trois niveaux. On a utilisé des concaténations de deux ou quatre unités de temps pour transférer les informations sur une page, de  In connection with the explanations for the level 2 case, Table 3 presents the three-level case. Concatenations of two or four units of time were used to transfer the information on a page, from

façon à rendre la lecture plus aisée.  to make reading easier.

TABLEAUI2TABLEAUI2

Temps Fi Ltre 1 Fi Ltre 2 S 0-3 2H(0,0), 2H(0,1), 2H(2,0) 2H(2,1) (idle),(idle) 2VL(0,0), 2VH(O,0)  Time fi lter 1 fi lter 2 S 0-3 2H (0,0), 2H (0,1), 2H (2,0) 2H (2,1) (idle), (idle) 2VL (0,0) , 2VH (O, 0)

4-7 2H(4,0), 2H(4,1), 2H(6,0) 2H(6,1) 2VL(2,0), 2VH(2,0), 2VL(4,0), 2VH(4,0)  4-7 2H (4.0), 2H (4.1), 2H (6.0) 2H (6.1) 2VL (2.0), 2H (2.0), 2VL (4.0), 2VH (4.0)

8-11 2H(0,2), 2H(0,3), 2H(2,2) 2H(2,3) 2VL(6,0), 2VH(6,0), 2V1(0,2), 2VH(O,2)  8-11 2H (0.2), 2H (0.3), 2H (2.2) 2H (2,3) 2VL (6.0), 2H (6.0), 2V1 (0.2), 2VH (O 2)

12-15 2H(4,2), 2H(4,3), 2H(6,2) 2H(6,3) 2VL(2,2), 2VH(2.21. 2V1.(4,2), 2VH1(4,2)  12-15 2H (4.2), 2H (4.3), 2H (6.2) 2H (6.3) 2VL (2.2), 2H (2.21, 2V1, (4.2), 2HH ( 4,2)

16-19 2H(0,4), 2H(0,5), 2H(2,4) 2H(2,5) 2VL(6,2), 2VH(6,), 2VL(0,4), 2VH(O,4)  16-19 2H (0.4), 2H (0.5), 2H (2.4) 2H (2.5) 2VL (6.2), 2H (6), 2VL (0.4), 2HV (O, 4)

2 20-23 2H(4,4), 2H(4,5), 2H(6,4) 2H(6,5) 2VL(2,4), 2VH(2,4), 2VL(4,4), 2VH(4,4)  2-20-23 2H (4.4), 2H (4.5), 2H (6.4) 2H (6.5) 2VL (2.4), 2H (2.4), 2VL (4.4) , 2VH (4,4)

II

24-27 2H(0,6), 2H(0,7), 2H(2,6) 2H(2,7) 2VL(6,4), 2VH(6,4), 2VL(0,6), 2VH(0,6)  24-27 2H (0.6), 2H (0.7), 2H (2.6) 2H (2.7) 2VL (6.4), 2H (6.4), 2VL (0.6), 2VH (0.6)

28-31 2H(4,6), 2H(4,7), 2H(6,6) 2H(6,7) 2VL(2,6), 2VH(2,6), 2VL(4,6), 2VH(4,6)  28-31 2H (4.6), 2H (4.7), 2H (6.6) 2H (6.7) 2VL (2.6), 2H (2.6), 2VL (4.6), 2VH (4.6)

32-35 1H(0,0), 1H(0,1), 1H(2,0) 1H(2l,1) 2VL(6,6), 2VH(6,6), 1VL(0, 0), IVH(O,0)  32-35 1H (0.0), 1H (0.1), 1H (2.0) 1H (21.1) 2VL (6.6), 2H (6.6), 1VL (0.0), IVH (O, 0)

36-39 1H(0O,2), 1H(0,3), 1H(2,2) IH(2,3) 1VL(2,0), _VH(2,O), VI.(0, 2), 1V!(0,2)  36-39 1H (OO, 2), 1H (0.3), 1H (2.2) 1H (2,3) 1VL (2,0), 1H (2, O), VI (0, 2) , 1V! (0,2)

-43 0H(0,0,(libre OH(0,1),(libre) 1VL(2,2), 1VH(2''), (idle), 0VL(O,O), 44-47 2VH(O,O), (libre), (libre), libre) 48-51 52-55 ( libre) (libre) 56-59 -63 Le tableau 3 illustre le cas à quatre niveaux. Puisqu'il y a maintenant 256 unités de temps par groupe de coefficients, on n'a représenté, pour simplifier,  -43 OH (0.0, (free OH (0.1), (free) 1 VL (2.2), 1 VH (2 ''), (idle), OVL (O, O), 44-47 2VH ( O, O), (free), (free), free) 48-51 52-55 (free) (free) 56-59 -63 Table 3 illustrates the four-level case Since there are now 256 units of time per group of coefficients, it has not been shown, for simplicity,

que le niveau et le sens du filtrage.  than the level and meaning of filtering.

TABLEAU 3TABLE 3

Temps Filtre 1 Filtre 2 0-1 Horizontal de niveau 3 (libre) 2-127 Horizontal de niveau 3 Vertical de niveau 3 128-129 Horizontal de niveau 2 Vertical de niveau 3 -159 Horizontal de niveau 2 Vertical de niveau 2 -161 Horizontal de niveau 1 Vertical de niveau 2 162-167 Horizontal de niveau 1 Vertical de niveau 1 168 Horizontal de niveau 0 Vertical de niveau 1 169 (libre) Vertical de niveau 1 Horizontal de niveau 0 (libre) 171 (libre) Vertical de niveau O 172 (libre) Vertical de niveau 0 173-255 (libre) (libre) Le signal de sortie du sous-système de filtrage et de mémorisation selon l'invention est constitué par une série de coefficients qui subissent un codage  Time Filter 1 Filter 2 0-1 Level 3 Horizontal (Free) 2-127 Level 3 Horizontal Level 3 Vertical 128-129 Level 2 Horizontal Level 3 Vertical Level -159 Level 2 Horizontal Level 2 Vertical -161 Horizontal Level 1 Vertical Level 2 162-167 Level 1 Horizontal Level 1 Vertical 168 Level 0 Horizontal Level 1 Vertical 169 (Free) Level 1 Vertical Level 0 (Free) Horizontal 171 (Free) Level O Vertical 172 (free) Vertical level 0 173-255 (free) (free) The output signal of the filtering and storage subsystem according to the invention is constituted by a series of coefficients which undergo a coding

par implantation du degré de signification des bits, selon l'invention.  by implanting the degree of significance of the bits, according to the invention.

B. Le modèle de contexte pour le système à un seul passage Dans un mode de réalisation de l'invention, à savoir le modèle de contexte implanté par rapport au degré de signification des bits pour le système à un seul passage, chaque ramification est traitée en quatre parties. La racine de la ramification, à savoir le coefficient LL de plus haut niveau, est codée par un  B. The context model for the single-pass system In one embodiment of the invention, namely the context model implanted with respect to the bit significance level for the single-pass system, each branch is processed in four parts. The root of the branching, ie the highest LL coefficient, is encoded by a

codage de mise en ordre du type horizon à un seul passage. Les trois sous-  one-pass horizon ordering coding. The three sub-

ramifications partant de chacun des trois enfants de la racine, à savoir les coefficients HH, HIL et LH du niveau le plus élevé, sont traitées au moyen d'une modélisation basée conjointement sur l'espace et la fréquence à un seul passage et de la modélisation basée sur la fréquence à un seul passage. Les coefficients soint codés de façon que des données codées puissent être délivrées avant que le modèle de contexte d'implantation du degré de signification des bits n'ait agi sur toutes les données. Ramification de significations à un seul passage Le modèle de contexte à ramification zéro ne peut pas trec utilisé dans le système à un seul passage. La ramification zéro nécessite une liste (ou plusieurs) qui contient tous les coefficients, et la ramification zéro effectue plusieurs passages dans la ou les listes. Un autre modèle basé sur la fréquence, le modèle de la ramification de significations à un seul passage, ne demande aucune liste contenant tous les coefficients. Une autre différence entre la ramification de significations à un seul passage et la ramification zéro est que la ramification de significations traite tous les enfants avant de traiter leurs parents lors de la production des  branches from each of the three children of the root, namely the highest-level coefficients HH, HIL, and LH, are processed using a single-pass space and frequency-based single-pass frequency-based modeling. The soint coefficients are coded so that coded data can be delivered before the bit pitch pattern contextual model has acted on all the data. Branching of One-pass Meanings The zero-branch context model can not be used in the single-pass system. Zero branching requires a list (or many) that contains all the coefficients, and zero branching performs several passes in the list (s). Another frequency-based model, the one-pass branching model, requires no list containing all the coefficients. Another difference between the branching of one-pass meanings and the zero branching is that the meaning branching treats all children before treating their parents during production.

décisions, au contraire de la ramification zéro qui traite d'abord les parents.  decisions, unlike the zero branching that first deals with parents.

Le modèle de contexte selon l'invention est présenté sous la forme d'un schéma fonctionnel sur la figure 17. Le modèle de contexte 1700 contient deux unités de traitement, l'unité 109 de mise au format signe/amplitude (figure 1 A) et l'unité de traitement des significations 1702. Le modèle de contexte 1700 utilise aussi deux mémoires (ainsi qu'un circuit logique de commande de mémnoires), une mémoire d'amplitudes 1701 et une mémoire de ramifications 1703. Chacunc dc ces deux unités de mémoire peut être mise en oeuvre à l'aide de plusieurs zones de stockage de facçon à permettre une utilisation alternée pendant le fonctionnement à grande vitesse (c'est-à-dire que, pendant que des données sont en train d'être  The context model according to the invention is presented in the form of a block diagram in FIG. 17. The context model 1700 contains two processing units, the sign / amplitude formatting unit 109 (FIG. and the signal processing unit 1702. The context model 1700 also uses two memories (as well as a memory control logic circuit), an amplitude memory 1701 and a branch memory 1703. Each of these two units memory can be implemented using multiple storage areas to allow alternate use during high-speed operation (i.e., while data is being

écrites dans une mémoire, l'autre est en train d'être lue, ou vidée).  written in one memory, the other is being read, or emptied).

La mémoire des amplitudes 1701 réordonne les coefficients contenus dans la ramification suivant un ordre basé sur la signification, tel qu'un ordre basé sur l'amplitude. Ceci est réalisé par le maintien d'une file d'attente pour chaque amplitude possible. L'unité 1702 de traitement des significations reçoit des coefficients ordonnés en fonction de la signification (par exemple de ramplitude) et produit des décisions à destination d'un codeur qui manipule l'algorithme du passage A. La mémoire des ramifications 1703 est couplée à l'unité 1702 de traitement des significations et élimine les ramifications zéro à la suite d'une partie  The amplitude memory 1701 reorders the coefficients contained in the branch according to a meaning-based order, such as an amplitude-based order. This is achieved by maintaining a queue for each possible amplitude. The signal processing unit 1702 receives functionally ordered (eg, amplitude) ordered coefficients and outputs decisions to an encoder which manipulates the A-passage algorithm. The branch memory 1703 is coupled to the meaning processing unit 1702 and eliminates the zero branching as a result of a party

entièrement constituée par des zéros.  entirely made up of zeros.

La discussion suivante suppose que les coefficients sont à 18 bits et  The following discussion assumes that the coefficients are at 18 bits and

que les données d'entrée ont subi une décomposition à quatre niveaux.  that the input data has been decomposed at four levels.

Un mode de réalisation de l'unité signe/amplitude 109 est présenté sur la figure 18 et met les coefficients d'entrée au format signe/amplitude. L'unité signe/amplitude 109 est couplée de façon à recevoir les 18 bits des coefficients et comporte un inverseur 1801, un multiplexeur (MUX)1802, un codeur 1803 de priorité et un compteur 1804. L'unité signe/amplitude 109 délivre une indication de signification (par exemple une valeur à S bits), la mantisse du coefficient d'centre (par exemple 17 bits), le signe du coefficient d'entrée (1 bit) et un indice venant du  An embodiment of the sign / amplitude unit 109 is shown in Fig. 18 and sets the input coefficients to sign / amplitude. The sign / amplitude unit 109 is coupled to receive the 18 bits of the coefficients and comprises an inverter 1801, a multiplexer (MUX) 1802, a priority encoder 1803 and a counter 1804. The sign / amplitude unit 109 delivers a indication of significance (for example a value with S bits), the mantissa of the center coefficient (for example 17 bits), the sign of the input coefficient (1 bit) and an index coming from the

compteur 1804 (par exemple 7 bits).counter 1804 (for example 7 bits).

Le multiplexeur 1802 est couplé de façon à recevoir 17 bits du coefficient tel qu'il est appliqué directement à l'unité signe/amplitude 109 et une version inversée des 17 bits venant d'un dispositif de complémentation à 2, désigné par la référence 1801. En fonction du bit de signe (bit 17 du coefficient) reçu sur l'entrée de sélection du multiplexeur 1802, celui des deux signaux d'entrée qui est  The multiplexer 1802 is coupled to receive 17 bits of the coefficient as applied directly to the sign / amplitude unit 109 and an inverted version of the 17 bits from a complementation device to 2, designated 1801. As a function of the sign bit (bit 17 of the coefficient) received on the selection input of the multiplexer 1802, that of the two input signals which is

positif est délivré au titre de la mantisse.  positive is issued under the mantissa.

L'unité signe/amplitude 109 utilise le codeur de priorité 1803 pour déterminer le premier bit significatif de chaque coefficient. En fonction du prmier bit significatif de chaque coefficient, un niveau de signification peut tre associé au coefficient. Le compteur 1804 est utilisé pour associer un index à l'élément courant de la ramification. Pour une décomposition à quatre niveaux, l'index varie de 0 à  The sign / amplitude unit 109 uses the priority encoder 1803 to determine the first significant bit of each coefficient. Depending on the first significant bit of each coefficient, a significance level can be associated with the coefficient. The counter 1804 is used to associate an index with the current element of the branching. For a four-level decomposition, the index varies from 0 to

84 (puisque 1 + 4 + 16 + 64 = 85 est le nombre des éléments d'une sous-  84 (since 1 + 4 + 16 + 64 = 85 is the number of elements of a subset

ramification). Les coefficients appliqués à l'entrée sont dans l'ordre que présente la ramification, lequel ordre est supposé être le suivant, les parents d'abord, les enfants en dernier, selon cet exemple. Les coefficients sont en provenance de niveaux différents de la décomposition, comme représenté dans le tableau 4, pour  branching out). The coefficients applied to the input are in the order of the branch, which order is assumed to be the following, the parents first, the children last, according to this example. The coefficients come from different levels of decomposition, as shown in Table 4, for

les coefficients placés en ordre.the coefficients placed in order.

TABLEAU 4TABLE 4

Niveaul Index des coefficientsNiveaul Index of coefficients

0 00 0

""

1 1,22,43, 641, 1.22, 43, 64

2 2, 7, 12, 17, 23, 28, 33, 38, 44, 49, 54, 59, 65, 70, 75, 80  2 2, 7, 12, 17, 23, 28, 33, 38, 44, 49, 54, 59, 65, 70, 75, 80

3 3...6, 8...11, 13...16, 18...21, 24...27, 29...32, 34...37, 39.  3 3 ... 6, 8 ... 11, 13 ... 16, 18 ... 21, 24 ... 27, 29 ... 32, 34 ... 37, 39.

42,..DTD: 45...48, 50...53, 55...58, 60...63, 66...69, 71...74, 76...79, 81...84  42, .. DTD: 45 ... 48, 50 ... 53, 55 ... 58, 60 ... 63, 66 ... 69, 71 ... 74, 76 ... 79, 81. ..84

La figure 19 est un mode de réalisation de la mémoire d'amplitudes 1701, se présentant sous la forme d'un schéma fonctionnel. Un compteur et une mémoire sont associés à chaque mniveau de signification possible (sauf que rien n'est nécessaire pour les coefficients zéro, qui n'ont pas besoin d'être codés). Par exemple, le compteur 1916 et la mémoire 1936 sont associés au niveau de signification 17. Dans un mode de réalisation, il y a seize niveaux de  Fig. 19 is an embodiment of the amplitude memory 1701, in the form of a block diagram. A counter and a memory are associated with each possible level of significance (except that nothing is needed for zero coefficients, which need not be coded). For example, the counter 1916 and the memory 1936 are associated with the level of significance 17. In one embodiment, there are sixteen levels of

signification. ll y a donc dix-sept compteurs et dix-sept mémoires associées.  meaning. There are therefore seventeen counters and seventeen associated memories.

Dans un mode de réalisation, chaque mémoire doit avoir 85 emplacements, pour chaque coefficient possible d'une sous-ramification (puisque chaque sous-ramification contient 85 coefficients), mais la taille de la mémoire pourrait être arrondie à une puissance de 2, par exemple 128, pour des raisons de commodité. Chaque élément contenu dans la mémoire peut avoir un bit de signe, un index de 7 bits et N bits d'amplitude, o N est le niveau de signification. Si l'on souhaite utiliser une mémoire de largeur fixe, on peut combiner les éléments se rapportant aux niveaux de signification 16 et 0, 15 et 1,  In one embodiment, each memory must have 85 locations, for each possible sub-branching coefficient (since each subbranch contains 85 coefficients), but the memory size could be rounded to a power of 2, by Example 128, for convenience. Each element contained in the memory may have a sign bit, a 7-bit index and N amplitude bits, where N is the level of significance. If one wishes to use a memory of fixed width, one can combine the elements relating to the levels of signification 16 and 0, 15 and 1,

etc., de sorte que chaque mot comprend deux éléments totalisant 32bits.  etc., so that each word includes two elements totaling 32bits.

Naturellement, pour un nombre impair de niveaux de signification, un mot doit  Of course, for an odd number of levels of meaning, a word must

contenir un seul élément, qui est de niveau 7 dans cet exemple.  contain only one element, which is level 7 in this example.

Les valeurs associées au signe, à l'index, et à la mantisse qui sont reçues de la part de l'unité signe/amplitude 109 sont écrites dans la mémoire appropriée à l'adresse fournie par le compteur associé à la mémoire. Le compteur associé est ensuite incrémenté de façon que le coefficient suivant ayant ce niveau  The values associated with the sign, index, and mantissa that are received from the sign / amplitude unit 109 are written to the appropriate memory at the address provided by the counter associated with the memory. The associated counter is then incremented so that the next coefficient having this level

de signification puisse être stocké à l'emplacement suivant.  meaning can be stored in the following location.

La lecture s'effectue dans chacune des mémoires 1920 à 1926 dans l'ordre décroissant des degrés de signification. Le signal de sortie relatif à chaque coefficient comporte sa mantisse, son signe et son index. Si le compteur relatif au niveau le plus élevé de signification (par exemple le niveau 16) est non nul, il est décrémenté et la lecture de la mémoire s'effectuc à cette adresse. Ceci se répète jusqu'à ce que la valeur du compteur atteigne zéro. Ensuite, on considère le niveau suivant de signification (par exemple le niveau 15). Chaque niveau de signification est pris en considération à son tour, jusqu'à ce que tout les compteurs aient été décrémentés jusqu'à zéro et que toutes les mémoires aient été vidées Dans un système en temps réel, il peut être souhaitable d'utiliser deux blocs de compteurs et de mémoires, de sorte qu'un bloc puisse être utilisé pour  The reading is carried out in each of the memories 1920 to 1926 in descending order of the degrees of significance. The output signal relative to each coefficient includes its mantissa, its sign and its index. If the counter relating to the highest level of significance (for example level 16) is non-zero, it is decremented and the reading of the memory takes place at this address. This is repeated until the counter value reaches zero. Then we consider the next level of meaning (eg level 15). Each level of significance is considered in turn, until all counters have been decremented to zero and all memories have been dumped. In a real-time system, it may be desirable to use two blocks of counters and memories, so that a block can be used to

l'entrée tandis que l'autre est utilisé pour la sortie.  the entrance while the other is used for the exit.

Les compteurs effectuent l'adressage de la mémoire qui leur est associée de façon à mettre en oeuvre une procédure LIFO (ce qui signifie 'dernier entré, premier sorti"). La procédure LIFO correspond à l'ordre correct dans le cas o les sous-ramifications sont dans l'ordre plaçant les parents en premier. Selon une autre possibilité, si les sousramifications sont dans l'ordre o les enfants sont en premier, on peut modifier le fonctionnement des compteurs cn mettant en  The counters address the memory associated with them in order to implement a LIFO procedure (which means "last in, first out") .The LIFO procedure corresponds to the correct order in case -Ramifications are in order placing the parents first.On another possibility, if the subradifications are in the order where the children are first, we can change the operation of the counters by setting

oeuvre une procédure FIFO ("premier entré, premier sorti").  a FIFO procedure ("first in, first out").

La figure 20 est un schéma fonctionnel montrant un mode de réalisation de l'unité de traitement des significations 1702. Comme on peut le voir sur la figure 20, un compteur d'index 2001 est utilisé pour passer d'un coefficient à l'autre dans une sous-ramification, les enfants étant en premier. Dans un mode de  Fig. 20 is a block diagram showing an embodiment of the meaning processing unit 1702. As can be seen in Fig. 20, an index counter 2001 is used to switch from one coefficient to another in a sub-ramification, children being first. In a mode of

réalisation, le compteur d'index 2001 est initialisé à 84 et décompte jusqu'à zéro.  realization, the index counter 2001 is initialized to 84 and counts down to zero.

Le compteur de signification 2004 commence au niveau de signification maximal (par exemple 16 dans l'exemple considéré) et décompte à chaque fois que le compteur d'index 84 achève un cycle (c'est-à-dire revient à 84), de sorte que le compteur de signification 2004 garde la trace du plan mémoire. Le niveau d'un index particulier est déterminé par un circuit logique (mise de l'index au  The counter of significance 2004 begins at the level of maximum significance (for example 16 in the example considered) and counts each time the index counter 84 completes a cycle (that is to say, amounts to 84). so that the 2004 significance counter keeps track of the memory map. The level of a particular index is determined by a logic circuit (setting the index to

niveau) 2003 qui effectue la fonction présentée dans le tableau 4 cidessus.  2003) performing the function presented in Table 4 above.

Une unité de mémoire d'amplitudes 1701 fournit l'index, l'amplitude et le signe du coefficient suivant dans la mémoire validée par le signal de sortie du compteur de signification 2004. Si l'index fourni par la mémoire est le même que l'index délivré par le compteur d'index 2001, le circuit logique d'équivalence 2002 attribue l'indication de sortie non nulle. L'indication de sortie non nulle signifie que la mémoire d'amplitudes pourrait fournir l'index suivant lors du prochain cycle. S'il n'y a pas appariement, alors une indication de non-appariement est  An amplitude memory unit 1701 supplies the index, amplitude and sign of the next coefficient in the memory validated by the output signal of the counter of significance 2004. If the index provided by the memory is the same as the index issued by the index counter 2001, the logic equivalence circuit 2002 assigns the non-zero output indication. The non-zero output indication means that the amplitude memory could provide the next index in the next cycle. If there is no matching, then an indication of non-matching is

envoyée à un générateur de décisions 2008.  sent to a 2008 decision generator.

Dans un mode de réalisation, trois bascules, représentées par un drapeau 0 (2005), un drapeau 1 (2006) et un drapeau 2 (2007), sont utilisés pour garder la trace des données non nulles et sont respectivement affectés aux niveaux de décomposition O, 1 et 2. On note que le nombre de bascules néccssaires est inférieur d'une unité au nombre des niveaux de décomposition. Les bascules 2005 à 2007 sont initialement effacées. Lorsque le signal non nul venant du circuit logique d'équivalence 2002 est établi, toutes les bascules 2005 à 2007 qui se sont vu attribuer un niveau inférieur au niveau courant sont positionnées. La bascule affectée au niveau courant est effacée. Le niveau est fourni par lc circuit logique 2003 de mise de l'index au niveau, qui fournit le niveau en réponse à  In one embodiment, three flip-flops, represented by a flag 0 (2005), a flag 1 (2006) and a flag 2 (2007), are used to keep track of non-zero data and are respectively assigned to decomposition levels. O, 1 and 2. Note that the number of necessary flip-flops is one less than the number of decomposition levels. The scales 2005 to 2007 are initially erased. When the non-zero signal from the logic circuit of equivalence 2002 is established, all the flip-flops 2005 to 2007 which have been assigned a level lower than the current level are positioned. The latch assigned to the current level is cleared. The level is provided by the logic circuit 2003 of setting the index to the level, which provides the level in response to

l'index fourni par le compteur d'index 2001.  the index provided by the 2001 index counter.

Des drapeaux "codés" sont mémorisés (pour certains modes de  "Coded" flags are memorized (for certain modes of

réalisation dans un fichier de registres), à raison d'un bit pour chaque index.  in a register file), one bit for each index.

Lorsque le signal non nul est établi, le bit associé à la valeur courante du compteur d'index présent dans la mémoire du drapeau codé est positionné. Sinon, si la valeur du compteur de signification est la valeur maximale, le bit associé est effacé. Pour le reste, la valeur du bit reste inchangée. Le signal de sortie déjà codé venant de la mémoire de drapeaux codés est le même que la nouvelle valeur du bit associé à l'index courant. On note que, dans un autre mode de réalisation, les drapeaux codés  When the non-zero signal is set, the bit associated with the current value of the index counter present in the flag of the encoded flag is set. Otherwise, if the value of the significance counter is the maximum value, the associated bit is cleared. For the rest, the value of the bit remains unchanged. The already coded output signal from the coded flag memory is the same as the new bit value associated with the current index. It is noted that, in another embodiment, the coded flags

ne sont pas utilisés et le signal déjà codé n'est jamais utilisé.  are not used and the already coded signal is never used.

Dans un mode de réalisation, le générateur de décisions 2008 détermine si le niveau courant est 3 et si le niveau précédent ne l'était pas. Suite à cette détermination, le générateur de décisions 2008 établit le signal de sortie de début, le signal de sortie de niveau de début étant le niveau précédent. Si le signal non nul est établi, le générateur de décisions 2008 délivre une décision sous la forme "significatif" et délivre également le signe (00, 01) et la mantisse. Sinon, si le signal d'entrée déjà codé est établi, aucune décision n'est délivrée. Pour le reste, si la bascule à laquelle le niveau courant a été affecté est positionnée, le générateur de décisions 2008 délivre la décision "non significatif, ayant des enfants significatifs' (10). Sinon, le générateur de décisions 2008 délivre la décision 'non significatif, et enfants non significatifs' (11) et établit le signal entièrement  In one embodiment, the decision generator 2008 determines whether the current level is 3 and whether the previous level was not. Following this determination, the decision generator 2008 sets the start output signal, the start level output signal being the previous level. If the non-zero signal is established, the decision generator 2008 issues a decision in the "significant" form and also delivers the sign (00, 01) and the mantissa. Otherwise, if the already encoded input signal is established, no decision is issued. For the rest, if the scale at which the current level has been assigned is set, the decision generator 2008 issues the decision "not significant, having significant children." (10) Otherwise, the decision generator 2008 issues the decision ' not significant, and non-significant children '(11) and sets the signal fully

constitué de zéros.consisting of zeros.

On note que, pour mettre en oeuvre à la fois la modélisation basée sur la fréquence et la modélisation basée conjointement sur l'espace et la fréquence à un seul passage du type horizon, on apporte le changement suivant à l'unité de traitement de significations 2000. La valeur du compteur de signification 2004 est comparée avec un seuil, et le signal de sortie entièrement constitué de zéros n'est  It is noted that, to implement both the frequency-based modeling and the space-based and single-pass frequency-based modeling of the horizon type, the following change is made to the meaning processing unit. 2000. The value of the significance counter 2004 is compared with a threshold, and the output signal consisting entirely of zeros is

établi que si la valeur du compteur est supérieure à celle du seuil.  established only if the value of the counter is greater than that of the threshold.

Dans un mode de réalisation, le signal d'entrée de catégorie de signification appliqué à la mémoire de ramifications 1703 (représenté sur la figure 21 et décrite ci-après) est le signal de sortie du compteur de signification 2004. Dans ce mode de réalisation du modèle de contexte (par exemple unité d'implantation du degré de signification des bits), la catéi de la signification repose sur le nombre des plans mémoire, et il existe dix-sept catégories différentes de signification. Ceci est un choix arbitraire. Dans un autre mode de réalisation, on peut combiner des plans mémoire pour créer moins de catégorie de signification. De plus, une information de niveau peut etre ajoutée à l'information de plan mémoire afin de créer plus de catégories de signification. Un plus grand nombre de catégories de signification peut donner une meilleure compression avec pertes tandis qu'un moins grand nombre de catégories peut  In one embodiment, the significance category input signal applied to the branch memory 1703 (shown in Fig. 21 and described hereinafter) is the output signal of the significance counter 2004. In this embodiment From the context model (for example, the unit of bit significance), the category of meaning is based on the number of memory planes, and there are seventeen different categories of meaning. This is an arbitrary choice. In another embodiment, memory maps may be combined to create less significance category. In addition, level information may be added to the memory map information to create more categories of meaning. More categories of meaning can give better lossy compression while fewer categories can

réduire la complexité de l'équipement matériel.  reduce the complexity of the equipment.

La figure 21 est un schéma fonctionnel montrant un mode de réalisation de l'unité de mémoire de ramifications selon l'invention. Commec on peut le voir sur la figure 21, une mémoire 2101 possède la place voulue pour stocker une décision et une indication de signification pour chaque décision possible. Dans un mode de réalisation, pour une décomposition à quatre niveaux avec dix-sept niveaux de signification, le nombre des emplacements de la  Fig. 21 is a block diagram showing an embodiment of the branch memory unit according to the invention. As can be seen in Figure 21, a memory 2101 has the space to store a decision and an indication of significance for each possible decision. In one embodiment, for a four-level decomposition with seventeen levels of significance, the number of locations of the

mémoire 2101 est égal à 85 x 17 = 1445.  memory 2101 is equal to 85 x 17 = 1445.

Pour faire accès à la mémoire 2101, des adresses sont créées. Un compteur 2102 est initialement à zéro. Lorsque le générateur de décisions 2008 n'établit pas le signal d'entrée entièrement constitué par des zéros, la valeur du compteur 2102 est utilisée pour adresser la mémoire. Si le générateur de décisions 2008 établit le signal d'entrée de début, la valeur courante du compteur 2102 est enregistrée dans l'un des registres 2110 à 2112 en fonction du niveau de début, qui agit comme mécanisme de sélection. Ensuite, le  To access the memory 2101, addresses are created. A counter 2102 is initially zero. When the decision generator 2008 does not set the input signal consisting entirely of zeros, the value of the counter 2102 is used to address the memory. If the decision generator 2008 sets the start input signal, the current value of the counter 2102 is stored in one of the registers 2110 to 2112 depending on the start level, which acts as a selection mechanism. Then, the

compteur 2102 est incrémenté.counter 2102 is incremented.

Lorsque le générateur de décisions 2008 établit le signal d'entrée entièrement constitué par des zéros, la valeur du registre (par exemple 2110, 2111, 2112) sélectionné par le signal d'entrée de niveau est utilisée pour adresser la mémoire 2101, et cette valeur, plus 1, est chargée dans le compteur 2102. Ceci fait que les emplacements de mémoire utilisés pour des enfants non significatifs d'un  When the decision generator 2008 sets the input signal consisting entirely of zeros, the value of the register (for example 2110, 2111, 2112) selected by the level input signal is used to address the memory 2101, and this value, plus 1, is loaded into the counter 2102. This causes the memory locations used for non-significant children of a

parent non significatif sont ignorés.  non-significant parent are ignored.

Pendant la délivrance de données par la mémoire, le compteur 2102 est décrémenté de façon à fournir en sortie l'adresse de l'emplacement. La délivrance (ainsi que la décrémentation) s'arrête lorsque le compteur 2102 atteint zéro. Lc signal de sortie de l'unité de mémoire de ramifications 2100 est reçu par un codeur entropique qui code de manière appropriée la décision sur la signification voulue. Pour permettre un fonctionnement en temps réel, on peut utiliser deux unités de mémoire de ramifications, si bien qu'une est utilisée pour l'entrée tandis  During the data delivery by the memory, the counter 2102 is decremented to output the address of the location. The delivery (as well as the decrementation) stops when the counter 2102 reaches zero. The output signal of the branch memory unit 2100 is received by an entropy encoder which appropriately encodes the decision on the desired meaning. To enable real-time operation, two branch memory units can be used, so that one is used for input while

que l'autre est utilisée pour la sortie.  that the other is used for the output.

Alignement des coefficients Dans un mode de réalisation de l'invention, le modèle de contexte à ramification zéro utilise un filtre passe-bas 1 + Z-1 non normalisé. Toutefois, le modèle de contexte à ramification zéro peut être utilisé avec des filtres normalisés, tels que: 1+Z-' Pour pouvoir utiliser des filtres normalisés, on peut employer, entre le filtre à ondes élémentaires direct 1000 et le modèle de contexte 105, une unité d'alignement, telle que l'unité d'alignement 2200 présentée sur la figure 22, pour compenser l'énergie gagnée (ou perdue) par le filtre non normalisé, ce qui améliore la compression. Puisque l'alignement autorise une quantification non uniforme de l'opération avec pertes, l'alignement peut améliorer la qualité visuelle des reconstructions d'images avec pertes. Dans le cas unidimensionnel, les coefficients de chaque niveau de la ramification auront un alignement différent (les diviseurs sont]'2, 2, 2-f2, 4, et les multiplicateurs sont 2f2, 2, f2, 1). Dans le cas bidimensionnel, les diviseurs seront 2, 4, 8, 16 et les multiplicateurs  Coefficient Alignment In one embodiment of the invention, the zero branching context model uses a non-standard 1 + Z-1 low pass filter. However, the zero-branched context model can be used with standardized filters, such as: 1 + Z- 'In order to be able to use normalized filters, it is possible to use, between the direct elementary wave filter 1000 and the context model 105 , an alignment unit, such as the alignment unit 2200 shown in Fig. 22, to compensate for the energy gained (or lost) by the non-normalized filter, which improves the compression. Since alignment allows nonuniform quantification of the lossy operation, alignment can improve the visual quality of lossy image reconstructions. In the one-dimensional case, the coefficients of each level of the branching will have a different alignment (the divisors are '2, 2, 2-f2, 4, and the multipliers are 2f2, 2, f2, 1). In the two-dimensional case, the divisors will be 2, 4, 8, 16 and the multipliers

seront 8, 4, 2, 1.will be 8, 4, 2, 1.

Puisque l'alignement sert simplement à grouper les décisions binaires analogues en vue du codage, l'utilisation de la valeur de normalisation exacte n'est pas cruciale. L'alignement doit être inversé pendant le décodage, si bien que la multiplication et la division sont toutes deux nécessaires. Le fait d'utilisecr des multiplicateurs et, ou bien, des diviseurs qui sont des puissances de 2 permettrait d'effectuer, au lieu de cela, un décalage efficace par l'équipement matériel. Lorsque des coefficients sont multipliés par une puissance de 2, les bits zéro de moindre  Since the alignment simply serves to group analogous bit decisions for coding, the use of the exact normalization value is not crucial. Alignment must be reversed during decoding, so multiplication and division are both necessary. Using multipliers and / or divisors that are powers of 2 would instead provide an efficient offset by hardware equipment. When coefficients are multiplied by a power of 2, the zero bits of least

signification ajoutés n'ont pas à être codés.  added meaning do not have to be coded.

Toutefois, au lieu de limiter les multiplicateur/diviseums d'alignement aux puissances de 2, on peut utiliser une approximation du type * -1,5 ou - 2-2 + 1,5 avec le procédé suivant. Au lieu de multiplier, ou de diviser, les coefficients par le multiplicateur, ou le diviseur, on se contente de proportionner les coefficients "significatifs" à l'aide du multiplicateur, ou du diviseur. L'unité signe/amplitude peut être modifiée comme représenté sur la figure 23, de façon à inclure un codeur de priorité "1,5", qui (1) revient à la position du bit "1" le plus significatif si le bit le plus significatif suivant est "1" égalem.ent, ou bien, sinon, (2) revient à une position diminuée d'un cran par rapport à la position du bit "1" le plus significatif. Une table de vérité d'un codeur de priorité "1,5" à trois bits d'entrée est  However, instead of limiting the multiplier / alignment diviseum to the powers of 2, an approximation of the type * -1.5 or -2-2 + 1.5 can be used with the following method. Instead of multiplying, or dividing, the coefficients by the multiplier, or the divisor, we content ourselves with proportioning the "significant" coefficients by means of the multiplier, or the divisor. The sign / amplitude unit can be modified as shown in Fig. 23, so as to include a priority encoder "1.5", which (1) returns to the position of the most significant bit "1" if the bit next significant is "1" equally, or else, (2) returns to a position decreased by one notch relative to the position of the most significant bit "1". A truth table of a "1.5" priority coder with three input bits is

présentée dans le tableau 5.presented in Table 5.

TABLEAU 5TABLE 5

Entrée (binaire) SortieInput (binary) Output

001 O001 O

OO

011 1011 1

11

101 1101 1

22

111 2111 2

Selon le niveau du coefficient indiqué par la valeur courante de l'index, un multiplexeur 2302 sélectionne la signification à partir du codeur de priorité normal ou bien du codeur de priorité "1,5". A chaque fois que l'alignement "1,5" est utilisé, la mantisse contient N + 1 bits, o N est la valeur de signification. Sinon, la  Depending on the level of the coefficient indicated by the current value of the index, a multiplexer 2302 selects the meaning from the normal priority encoder or the priority encoder "1.5". Whenever the "1.5" alignment is used, the mantissa contains N + 1 bits, where N is the value of significance. Otherwise, the

mantisse contient N bits.mantissa contains N bits.

Une unité d'alignement 2200 comprenant un multiplexeur à deux entrées faisant fonction de moyen de décalage peut mettre en oeuvre un alignement de 1 ou 2. En combinant cet alignement avec l'alignement de "1,5" fourni par l'unité signe/amplitude, on obtient des alignements de 1, 1,5, 2 ou 3, qui sont une bonne approximation des multiplicateurs voulus dans le cas de signaux unidimensionnels, puisque les nombres sont plus simple (par exemple des puissances de 2). (Pour des signaux bidimensionnels du type image, les nombres sont plus simples.) Pendant le décodage, le (N + 2)ème bit de la mantisse (qui n'est pas codée) est le complément du (N + 1)ème bit lorsqu'on utilise le codeur de  An alignment unit 2200 comprising a two-input multiplexer acting as an offset means may implement an alignment of 1 or 2. By combining this alignment with the "1.5" alignment provided by the sign / amplitude, we obtain alignments of 1, 1.5, 2 or 3, which are a good approximation of the desired multipliers in the case of one-dimensional signals, since the numbers are simpler (for example powers of 2). (For two-dimensional signals of the image type, the numbers are simpler.) During decoding, the (N + 2) th bit of the mantissa (which is not encoded) is the complement of the (N + 1) th bit when using the encoder

priorité '1,5".priority '1.5'.

On peut utiliser l'alignement des coefficients pour accorder la ramification zéro et pour une quantification plus fine et non uniforme. Dans le cas d'images (signaux bidimensionnels), un mode de réalisation de la transformation RTS aligne les coefficients en multipliant la bande de fréquence par les nombres présentés sur la figure 31. La multiplication par ces nombres fait que la transformation RTS devient une approximation très proche des ondes  The alignment of the coefficients can be used to give zero branching and for finer and nonuniform quantification. In the case of images (two-dimensional signals), an embodiment of the transformation RTS aligns the coefficients by multiplying the frequency band by the numbers presented in FIG. 31. The multiplication by these numbers makes the RTS transformation become an approximation. very close to the waves

élémentaires de reconstruction exacte des transformations IS.  elementary reconstruction of IS transformations.

Pour être efficace, le codeur entropique doit tenir compte du processus d'alignement. Modèles de contexte basés sur la fréquence par plans mémoire fractionnaires Un autre mode de réalisation de la modélisation basée sur la firéquence utilise des plans mémoires fractionnaires ou des bits fractionnaires de significations. Une mise en oeuvre consiste à traiter deux fois chaque plan mémoire, si bien que les passages comprennent un passage A1, un passage B1, un passage A0 et un passage BO. On note que les désignations des passages ont été choisies du fait que le passage A1 traite des coefficients qui partent de "11' et le  To be effective, the entropy coder must consider the alignment process. Fractional Fractional Fractional Frequency Based Context Models Another embodiment of feeder-based modeling uses fractional memory arrays or fractional bits of meanings. One implementation consists in treating each memory plane twice, so that the passages comprise a passage A1, a passage B1, a passage A0 and a passage BO. It is noted that the designations of the passages were chosen because the A1 passage deals with coefficients starting from "11" and the

passage A0 traite ceux qui partent de "10".  passage A0 treats those starting from "10".

Pendant le passage A1 associé au plan mémoire S, un coefficient du groupe A n'est significatif que si les bits S et S-1 sont tous deux non nuls. Pendant  During the passage A1 associated with the memory plane S, a coefficient of the group A is significant only if the bits S and S-1 are both non-zero. during

le passage A2, un coefficient du groupe A est significatif si le bit S est non nul.  the passage A2, a coefficient of group A is significant if the S bit is non-zero.

Puisque les deux bits les plus significatifs sont connus, le passage B1 et le passage BO doivent seulement traiter les bits S-1 (si l'on suppose que S = O est le  Since the two most significant bits are known, the passage B1 and the passage BO must only process the bits S-1 (assuming that S = O is the

plan mémoire le moins significatif).  least significant memory scheme).

Puisque les plans mémoire fractionnaires diffèrent, de l'un à l'autre, d'un facteur de 1,5 ou 2/1,5, on peut réaliser l'alignement des différents niveaux en  Since the fractional memory planes differ from one to the other by a factor of 1.5 or 2 / 1.5, the alignment of the different levels can be achieved.

groupant les plans mémoire fractionnaires voulus pour chaque niveau.  grouping the desired fractional memory maps for each level.

Les plans mémoire fractionnaires amènent une modélisation plus fine des données grâce à la relation parent-enfant utilisée dans le modèle de contexte basé sur la fréquence. On peut faire appel à plus de deux passages, par exemple quatre ou huit passages, pour obtenir une modélisation encore plus fine. Par exemple, dans le cas à quatre passages, le passage All traite les coefficients qui commencent par "'111'". Lesautres passages traitent "'110'", "'101' et "100". Une modélisation moins fine pourrait aussi être utilisée. Par exemple, un passage pourrait n'être effectué que pour un plan mémoire sur deux. Dans le cas dune modélisation moins fine, on code plus de bits à l'aide du groupe B. C. Gestion mémoire/canal et codeur pour système à un seul passage La gestion de la mémoire pour données codées dans le système à un seul passage s'applique à des systèmes qui mémorisent toutes les données en mémoire et à des systèmes qui transmettent des données sur un canal. Dans le système à un seul passage, les données codées doivent être stockées de façon à pouvoir être accédées d'une manière causale implantée, de façon qu'on puisse  Fractional memory schemes provide finer modeling of data through the parent-child relationship used in the frequency-based context model. More than two passages, for example four or eight passages, can be used to obtain even finer modeling. For example, in the case of four passages, the passage All treats the coefficients that begin with "'111'". The other passages deal with '' 110 '', '' 101 '' and '' 100. '' A less fine modeling could also be used, for example, a passage could be made for only one memory plane out of two. less fine, more bits are encoded using the BC group Memory / channel management and encoder for single-pass system Memory management for coded data in the single-pass system applies to systems that memorize all data in memory and systems that transmit data over a channel In the single-pass system, the encoded data must be stored in such a way that it can be accessed in an established causal manner, so that

écarter des données moins significatives sans perdre de données plus significatives.  to exclude less significant data without losing more significant data.

Puisque les données codées sont de longueur variable, on peut faire appel à une  Since the coded data are of variable length, one can call upon a

affectation de mémoire dynamique.dynamic memory assignment.

Dans un mode de réalisation selon l'invention, le schéma de codage par implantation utilise 18 plans mémoire et par conséquent, affecte 18 niveaux de signification aux données. Le codeur d'un système à un seul passage doit être "causal implanté". Ainsi, les événements de décodage correspondant à un plan mémoire ne nécessitent pas d'informations venant des plans mémoire des ordres inférieurs. Dans le cas à un seul passage, tous les bits provenant d'une ramification seront typiquement codés avant que l'un quelconque des bits de la ramification suivante ne soit codé, si bien que des bits de significations différentes ne seront pas séparés. Pour des codeurs qui n'utilisent pas d'état interne, cornmme les coders de Huffman, ceci n'est pas un problème. Toutefois, de nombreux compresseurs  In one embodiment of the invention, the implementation encoding scheme uses 18 memory planes and therefore, assigns 18 levels of significance to the data. The encoder of a single pass system must be "causal implanted". Thus, the decoding events corresponding to a memory plane do not require information from the lower order memory planes. In the case of a single pass, all the bits coming from a branch will typically be coded before any of the bits of the next branch are coded, so that bits of different meanings will not be separated. For coders that do not use an internal state, such as Huffman coders, this is not a problem. However, many compressors

sophistiqués ayant une meilleure compression utilisent l'état interne.  sophisticated ones with better compression use the internal state.

Une manière de résoudre ce problème dans le cas de ces codeurs consiste à utiliser 18 codeurs différents, peut être 18 puces constituant des codeurs Q. Une technique qui autoriserait l'utilisation de 9 puces du type codeursQ est décrite dans le brevet des Etats-Unis d'Amérique n' 5 097261 (Langdon, Jr.), intitulé 'Data Compression for Recording on a Record Medium,' qui a été délivré 17 mars 1992. Un meilleur moyen fait appel à un codeur du type pipeline pour mettre en oeuvre des codes virtuels différents à l'aide d'un unique codeur matériel, comme décrit dans la demande de brevet des Etats-Unis d'Amérique n' 08/016 035, intitulé "Method and Apparatus for Parallel Dccoding and Encoding of Data", qui a été déposée le 10 février 1993. Dans un tel codeur, les états multiples d'un générateur de bits, relatifs aux probabilités respectives, sont chacun affecté à une partie des données. Par exemple, chacun des 18 états pourrait être affecté à un plan mémoire particulier pour données à 18 bits. Des registres contenus dans le moyen de décalage du codeur sont également affectés à chaque partie des données. Dans le codeur, aucun entrelacement n'est effectué; chaque  One way to solve this problem in the case of these encoders is to use 18 different encoders, maybe 18 chips constituting Q encoders. A technique that would allow the use of 9 chips encoders type Q is described in the US patent No. 097261 (Langdon, Jr.), entitled 'Data Compression for Recording on a Record Medium,' which was issued March 17, 1992. A better way is to use a pipeline type encoder to implement different virtual codes using a single hardware coder, as described in United States Patent Application No. 08/016 035, entitled "Method and Apparatus for Parallel Coding and Encoding of Data", which was filed on February 10, 1993. In such an encoder, the multiple states of a bit generator, relative to the respective probabilities, are each assigned to a portion of the data. For example, each of the 18 states could be assigned to a particular memory array for 18-bit data. Registers contained in the encoder offset means are also assigned to each part of the data. In the encoder, no interleaving is performed; each

partie des données est simplement regroupée selon les bits.  part of the data is simply grouped according to the bits.

Dans des modes de réalisation ayant des codeurs matériels multiples ou des codeurs virtuels multiples, de la mémoire est attribuée à chaque partie des données. Lorsque la compression est achevée, on a obtenu, comme résultat, une  In embodiments having multiple hardware encoders or multiple virtual encoders, memory is allocated to each portion of the data. When the compression is complete, we have obtained, as a result, a

liste liée décrivant la mémoire attribuée, plus le contenu de la mémoire attribuée.  linked list describing the allocated memory, plus the contents of the allocated memory.

Si la mémoire déborde, le schéma d'attribution de la mémoire fait que des données plus importantes viennent s'écrire par-dessus des données moins importantes. Par exemple, le bit le moins significatif d'une donnée numeérique pourrait être écrasé en premier. Les informations décrivant comment la mémoire  If memory overflows, the memory allocation scheme causes larger data to be written over smaller data. For example, the least significant bit of a numeric data could be overwritten first. Information describing how memory

est attribuée doivent être stockées en plus des données codées.  is assigned must be stored in addition to the encoded data.

La figure 24 présente un exemple d'unité d'attribution de mémoire dynamique pour trois catégories de signification. Pour éviter de compliquer l'invention, on ne décrit que trois catégories; typiquement, on utiliserait un plus grand nombre de catégories, par exemple 8, 16 ou 18. Un fichier de registres (ou un autre moyen de stockage) maintient un pointeur pour chaque catégorie de signification, plus un autre pointeur servant à indiquer l'emplacement de mémoire  Figure 24 shows an example of a dynamic memory allocation unit for three categories of significance. To avoid complicating the invention, only three categories are described; typically, a larger number of categories would be used, for example 8, 16 or 18. A register file (or other storage means) holds a pointer for each category of meaning, plus another pointer to indicate the location. of memory

libre suivant. La mémoire est divisée en pages de taille fixe.  free next. The memory is divided into fixed size pages.

Initialement, chaque pointeur affecté à une catégorie de signification pointe le début d'une page de mémoire et le pointeur libre pointe la page de mémoire disponible suivante. Une donnée codée, identifiée à l'aide d'une catégorie de signification, est stockée à l'emplacement de mémoire qui est adressé par le pointeur correspondant. On incrémente ensuite le pointeur sur l'emplacement de  Initially, each pointer assigned to a meaning category points to the beginning of a memory page and the free pointer points to the next available memory page. Coded data, identified using a significance category, is stored at the memory location that is addressed by the corresponding pointer. We then increment the pointer to the location of

mémoire suivant.following memory.

Lorsque le pointeur atteint le maximum de la page courante, 'adresse du début de la page libre suivante, stockée dans le pointeur libre, s'enregistre avec la page courante sous la forme d'une liaison. Dans un mode de réalisation, la partie de la mémoire de données codées, une mémoire distincte ou un fichier de registres pourraient être utilisés dans ce but. Ensuite, le pointeur courant se positiomnne sur la page libre suivante. Le pointeur libre s'incrémente. Ces opérations font qu'une nouvelle page de mémoire est attribuée à une catégorie de signification particulière et produisent des liaisons avec des pages de mémoire contenant des données se rapportant à une catégorie de signification commune, de sorte que l'ordre  When the pointer reaches the maximum of the current page, the address of the beginning of the next free page, stored in the free pointer, is registered with the current page as a link. In one embodiment, the portion of the encoded data memory, a separate memory or a register file could be used for this purpose. Then the current pointer appears on the next free page. The free pointer is incremented. These operations cause a new memory page to be assigned to a particular meaning category and produce links to memory pages containing data pertaining to a common meaning category, so that the order

d'attribution peut être déterminé pendant le décodage.  allocation can be determined during decoding.

Lorsque toutes les pages dc la mémoire sont utilisées et qu'il existe plus de données qui sont plus significatives que les données les moins significatives dans la mémoire, une réaffectation de la mémoire peut être ex6cut6e On décrit trois de ces techniques de réaffectation. Dans les trois cas, la mémoire affectée aux données les moins significatives est réaffectée aux données plus  When all the pages in the memory are used and there is more data that is more significant than the least significant data in the memory, a re-allocation of the memory can be performed. Three of these re-allocation techniques are described. In all three cases, the memory allocated to the least significant data is reassigned to the data more

significatives et on n'enregistre plus les données les moins significatives.  significant and the least significant data are no longer recorded.

Premièrement, la page qui, dans l'état courant, est utilisée par les données les moins significatives est simplement affectée aux données plus significatives. Puisque la plupart des codeurs entropiques typiques utilisent des informations d'état intemrne, l'ensemble des données les moins significatives qui  First, the page that in the current state is used by the least significant data is simply assigned to the more meaningful data. Since most typical entropic coders use state-of-the-art information, the least significant data set

étaient précédemment mémorisées dans cette page est perdu.  were previously memorized in this page is lost.

Deuxièmement, la page qui était présentement utilisée par les données les moins significatives est affectée aux données plus significatives. Au contraire du cas précédent, le pointeur se positionne sur la fin de la page et, au fur et à mesure que des données plus significatives sont écrites sur la page, le pointeur correspondant décrémente. Ceci a pour avantage de préserver les données les moins significatives se trouvant au début de la page dans le cas o Ics données plus  Second, the page that was currently used by the least significant data is assigned to the more meaningful data. Unlike the previous case, the pointer is positioned at the end of the page and, as more meaningful data is written to the page, the corresponding pointer decrements. This has the advantage of preserving the least significant data at the beginning of the page in the case where more data is available.

significatives n'ont pas besoin de toute la page.  Significant do not need the whole page.

Troisièmement, au lieu que la page courante associée aux données lcs moins significatives soit réaffectée, il est possible de réaffecter n'importe quelle page de données les moins significatives. Ceci demande que les données codées de toutes les pages soient codées indépendamment, ceci pouvant réduire la compression obtenue finalement. Ceci demande aussi que les données non codées correspondant au début de toutes les pages soient identifiées. Puisqu'une page quelconque de données les moins significatives peut être rejetée, on dispose dmunc  Third, instead of the current page associated with the less significant data being reallocated, it is possible to reassign any page of least significant data. This requires that the coded data of all the pages be coded independently, this may reduce the compression finally obtained. This also requires that uncoded data corresponding to the beginning of all pages be identified. Since any page of least significant data can be rejected, we have dmunc

plus grande souplesse de quantification.  greater flexibility of quantification.

Le troisième moyen peut être spécialement intéressant dans un système qui effectue une compression à taux fixe sur des régions de l'image. Un nombre spécifié de pages de mémoire peut être affecté à une région de l'image. Le fait que des données moins significatives soient ou non retenues peut dépendre de la compression effectuée dans une région particulière. On note que la mémoire affectée à une région peut ne pas être pleinement utilisée si une compression sans pertes demande une quantité moindre que la quantité de mémoire affectée. Le fait de réaliser une compression à taux fixe sur une région d'image peut permettre  The third means may be especially useful in a system that performs a fixed rate compression on regions of the image. A specified number of memory pages may be assigned to a region of the image. Whether or not less significant data is retained may depend on the compression performed in a particular region. Note that the memory assigned to a region may not be fully utilized if lossless compression requires less than the amount of memory allocated. Performing a fixed rate compression on an image region may allow

l'accès direct aux régions de l'image.  direct access to the regions of the image.

Une fois la compression achevée, les données peuvent être tanrées, si cela est souhaitable, à un canal ou un dispositif de stockage, selon l'ordre des significations. Les diverses liaisons et les divers pointeurs ne seront alors plus nécessaires et un décodage en plusieurs passages devra être effectué. Selon une autre possibilité, dans le cas d'un décodage à un seul passage, les pointeurs  Once the compression is complete, the data can be torn, if desired, to a channel or storage device, according to the order of the meanings. The various links and the various pointers will not be necessary anymore and a decoding in several passages will have to be carried out. According to another possibility, in the case of a single-pass decoding, the pointers

pointant sur les données de chaque signification peuvent être conservés.  pointing to the data of each meaning can be preserved.

Dans certaines applications, certaines catégories de signification peuvent ne pas être utilisées. Par exemple, un compresseur à 16 bits peut tre employé sur une image médicale à 12 bits, de sorte qu'on n'utilisera pas les catégories de signification correspondant aux plans mémoire 15,... 12. Dans le cas de mise en oeuvre comportant de grandes pages et de nombreuses catégories de signification non utilisées, il y a un gaspillage de mémoire (lorsque le système ne sait pas l'avance que certaines catégories ne sont pas utilisées), puisqu'il n'y a pas à leur attribuer de la mémoire. Une autre solution à ce problème de gaspillage de mémoire consisterait à utiliser une petite mémoire (ou registre) pour tenir le compte des catégories de signification respectives. Ce compte garderait la trace du nombre des décisions "non significatif, pas d'enfants significatifs" qui ont été prises avant l'apparition d'une quelconque autre décision. La mémoire nécessaire pour ces compteurs doit être prise dans la mémoire servant aux catégories de  In some applications, some categories of meaning may not be used. For example, a 16-bit compressor can be used on a 12-bit medical image, so that the categories of meaning corresponding to the memory planes 15, ... 12 will not be used. In the case of implementation with large pages and many unused meaning categories, there is a waste of memory (when the system does not know in advance that some categories are not used), since there is no need to allocate them of memory. Another solution to this memory wasting problem would be to use a small memory (or register) to account for the respective categories of meaning. This account would keep track of the number of "no significant, no significant children" decisions that were made before any other decision was made. The memory required for these counters must be taken from the memory used for the categories of

signification non utilisées.meaning not used.

Pour mieux utiliser la quantité total de mémoire disponible dans le système, on peut faire appel à la possibilité d'écrire des données sur chaque page depuis les deux extrémités. Lorsque toutes les pages ont été attribuées, toute page qui possède de la place libre suffisante à l'extrémité peut se voir attribuer une utilisation depuis cette extrémité. La possibilité d'utiliser les extrémités d'une page doit être mesurée en fonction du coût nécessaire au maintien de la trace de l'emplacement o les deux types de données se rencontrent. On notera que ce n'est pas la même chose que le cas o un des types de données n'est pas significatif et  To better utilize the total amount of memory available in the system, the ability to write data to each page from both ends can be invoked. When all pages have been assigned, any page that has sufficient free space at the end may be given a use from that end. The ability to use the ends of a page should be measured by the cost of keeping track of where the two types of data meet. Note that this is not the same as the case where one of the data types is not significant and

peut être simplement écrasé.can be simply crushed.

Utilisation d'un canal Dans un système o des données sont transmises sur un canal au lieu d'être stockées dans une mémoire et o on utilise des pages de mémoire d'une taille fixe (mais o une seule page est nécessaire par catégorie de signification), lorsqu'une page de mémoire est pleine, elle est émise sur le canal, et les  Using a channel In a system where data is transmitted on a channel instead of being stored in a memory and where memory pages of a fixed size are used (but where only one page is needed per category of meaning ), when a memory page is full, it is sent on the channel, and the

emplacements de mémorisation peuvent être réutilisés dès qu'il y a eu émission.  Storage locations can be reused as soon as there has been broadcast.

Dans certaines applications, la taille de page de la mémoire peut être la taille des  In some applications, the page size of the memory may be the size of the

paquets de données utilisés dans le canal ou un multiple de la taille des paquets.  data packets used in the channel or a multiple of packet size.

(On note que, dans un mode de réalisation, on peut utiliser deux pages par niveau de signification, de sorte qu'on peut écrire des données dans l'une pendant qu'on lit l'autre pour l'envoyer sur le canal.) Dans certains systèmes de télécommunications, par exemple le système ATM (mode de transfert asynchrone), des priorités peuvent être affectées aux paquets. Le système ATM possède deux niveaux de priorité, à savoir le niveau de priorité et le niveau secondaire. Des paquets secondaires ne sont émis que si une largeur de bande suffisante est disponible. On peut faire appel à un seuil pour déterminer quelles catégories de signification sont prioritaires et quelles catégories sont secondaires. Un autre procédé consisterait à utiliser un seuil dans le codeur pour ne pas transmettre les catégories de signification qui sont moins significatives  (Note that in one embodiment, two pages per level of significance can be used, so that data can be written into one while the other is read to send to the channel. In some telecommunication systems, eg ATM (asynchronous transfer mode), priorities can be assigned to packets. The ATM system has two priority levels, namely the priority level and the secondary level. Secondary packets are only issued if sufficient bandwidth is available. A threshold can be used to determine which categories of significance are given priority and which categories are secondary. Another method would be to use a threshold in the encoder to not transmit the significance categories that are less significant.

qu'un seuil.than a threshold.

Compression avec pertes à erreur de crête bornée Dans certaines applications, une reconstruction parfaite (sans pertes) n'est pas nécessaire. Il peut être souhaitable de réaliser la compression en autorisant une erreur de crête maximale spécifiée. On supposera que l'erreur de crête est E. On peut réaliser cela en tronquant les données comprimées, de façon que toutes les données de moindre signification, qui ne sont pas nécessaires à la réalisation de la  Bounded peak error loss compression In some applications, perfect (lossless) reconstruction is not necessary. It may be desirable to perform the compression by allowing a specified maximum peak error. It will be assumed that the peak error is E. This can be done by truncating the compressed data, so that all the data of less significance, which are not necessary for the realization of the

précision voulue, sont rejetées.accuracy, are rejected.

Une autre manière de réaliser la compression avec une erreur de crêtc maximale spécifiée consiste à diviser (en division entière) par une valeur inférieure ou égale à 2E + 1 chaque pixel de l'image à comprimer. Pendant la reconstruction, chaque pixel de l'image est traité selon la relation suivante: pixel de sortie = (2E + 1) x pixel d'entrée + E. (Sinon, au lieu d'ajouter E pendant la décompression, on peut effectuer une soustraction pendant la compression, avant de diviser par 2E + 1.) Une autre manière d'effectuer la compression avec une erreur de crête maximale spécifiée consiste à remplacer la division et la multiplication par des décalages. La quantité de décalage est L1og2(2E + 1A. Puisque le décalage est commode, une meilleure spécification d'erreur (remplaçant l'erreur de crête) sera  Another way to perform the compression with a specified maximum crest error is to divide (in integer division) by a value less than or equal to 2E + 1 each pixel of the image to be compressed. During the reconstruction, each pixel of the image is processed according to the following relation: output pixel = (2E + 1) x input pixel + E. (Otherwise, instead of adding E during decompression, one can perform subtraction during compression, before dividing by 2E + 1). Another way to perform compression with a specified maximum peak error is to replace division and multiplication with offsets. The offset amount is L1og2 (2E + 1A.) Since the offset is convenient, a better error specification (replacing the peak error) will be

donnée par des erreurs de la forme -2n<erreur<+2n.  given by errors of the form -2n <error <+ 2n.

Ce qui vient être énoncé ne doit pas être confondu avec la quantification des coefficients, ce qui est une technique bien connue de compression d'images avec pertes. Dans de nombreux systèmes de compression avec pertes (par exemple JPEG), les coefficients du domaine de la tansformation se voient affecter une erreur de crête maximale, qui ne commande qu'indirectement l'erreur de crête de l'image. Une différence cruciale avec cette technique est que l'invention effectue la quantification sur les pixels et utilise une compression de  What is being stated must not be confused with the quantization of the coefficients, which is a well-known technique of lossy image compression. In many lossy compression systems (eg JPEG), the transform domain coefficients are assigned a maximum peak error, which only indirectly controls the peak error of the image. A crucial difference with this technique is that the invention performs quantization on the pixels and uses a compression of

coefficients sans pertes.coefficients without losses.

On peut aussi faire appel à une quantification dans le domaine de la transformation. De nombreux coefficients ont un effet sur la propagation de l'erreur de crête à travers les multiples niveaux de la transformation. Il est plus facile de déterminer l'effet sur l'erreur de crête dans le cas des coefficients passe-haut qui n'ont pas d'enfants. On va considérer un signal unidimensionnel qui doit être codé à l'aide d'une erreur de crête maximale valant E. On peut réaliser cela en quantifiant, à +2E, les coefficients passe-haut associés au détail le plus fin. Pour un signal bidimensionnel, puisqu'il y a deux applications du filtre passe-haut, les  Quantification can also be used in the field of transformation. Many coefficients have an effect on the propagation of the peak error across the multiple levels of transformation. It is easier to determine the effect on the peak error in the case of high-pass coefficients that do not have children. We will consider a one-dimensional signal which must be coded using a maximum peak error of E. This can be done by quantifying, at + 2E, the high-pass coefficients associated with the finest detail. For a two-dimensional signal, since there are two applications of the high-pass filter, the

coefficients HH associés au détail le plus fin doivent être quantifiés à 4E.  HH coefficients associated with the finest detail must be quantified at 4E.

Au lieu d'utiliser une quantification de l'image d'entrée, on peut anssi  Instead of using a quantization of the input image, we can

commander les décisions fournies au codeur entropique. Un exemple est donné ci-  order the decisions provided to the entropy coder. An example is given below.

dessous. Pour chaque coefficient, si la fixation du coefficient à zéro ne ferait pas que l'erreur présente dans tout pixel affecté par ce coefficient dépasse l'erreur maximale, on fixe le coefficient à zéro. Dans certaines mises en oeuvre, seuls des coefficients particuliers seront vérifiés, peut-être seuls les coefficients AC qui n'ont pas d'enfants. On peut considérer les coefficients selon une stratégie avaricieuse, dans laquelle un seul coefficient est considéré à la fois. D'autres stratégies pourraient considérer de petits groupes de coefficients et choisir zéro  below. For each coefficient, if setting the coefficient to zero would not make the error present in any pixel affected by this coefficient exceed the maximum error, the coefficient is set to zero. In some implementations, only particular coefficients will be checked, perhaps only AC coefficients that have no children. The coefficients can be considered according to a greedy strategy, in which only one coefficient is considered at a time. Other strategies might consider small groups of coefficients and choose zero

pour le sous-ensemble le plus grand possible du groupe.  for the largest possible subset of the group.

Bien entendu, l'homme de l'art sera en mesure d'imaginer, à partir de la  Of course, one skilled in the art will be able to imagine, from the

description qui vient d'être donnée à titre purement illustratif et nullement limitatif,  description which has just been given for purely illustrative and not limiting purposes,

diverses variantes et modifications ne sortant pas du cadre de l'invention.  various variants and modifications that are not outside the scope of the invention.

AFEbU=CAFEbU = C

Exemple dc code pour transformation RTS (directe).  Code example for RTS transformation (direct).

Décomposition à un seul niveau void RTS(T,w,m,n) int w,m,n; int 'T; { int i,j,k: int wX, -Y; for (i-O:i<n;i++) for <j-O;j<m;j±2) { X[j/2] (Tfi*w+j]+T[i*w+j+l])>>l; Y[j/2] - T[i*w+j]-T[i*w+j+l]; for (jO:j<m/2:j++) T[i*m+j]-X[j]; T[i*m+m/2+j]- (-X[j]+(Y[(j+ 1)%(m/2)]"2)+X[(j+2)%(m/2)1)>>"2:  Single-level decomposition void RTS (T, w, m, n) int w, m, n; int 'T; {int i, j, k: int wX, -Y; for (iO: i <n; i ++) for <jO; j <m; j ± 2) {X [j / 2] (Tfi * w + j] + T [i * w + j + l]) >> l; Y [j / 2] - T [i * w + j] -T [i * w + j + 1]; for (jO: j <m / 2: j ++) T [i * m + j] -X [j]; T [i * m + m / 2 + j] - (-X [j] + (Y [(j + 1)% (m / 2)] "2) + X [(j + 2)% (m / 2) ) 1) >> "2:

Exemple de code pour transformation RTS (inverse).  Code example for RTS transformation (inverse).

Décomposition à un seul niveau.Decomposition at one level.

void InverseRTS(T,w,m,n) int w,m,n; int 'T; {. int i,j, int *B, 'D; for (i-o0:i<n;i++) ! for (j-0;j<m/2;j++) B(Bj] - (-Tli*m+j]+T[i*m+ ((j+2)%(m/2))])&0X3; D[(j+1)%t(m/2)] - ((T[i*m+j]-Ti*m+((j+2)%(m/2))]+ (T [i"m+m/2+j]"2) +3B [j]) ">2); for (j-O;j<m/2;j++) T[i*w+2*j] ((T[i*m+j]"<<1)+D[j]+1)>>1; T[i*w+2*j+1] - T(i*w+2*j] - D[j]; }  void InverseRTS (T, w, m, n) int w, m, n; int 'T; {. int i, j, int * B, 'D; for (i-o0: i <n; i ++)! for (j-0; j <m / 2; j ++) B (Bj] - (-Tli * m + j] + T [i * m + ((j + 2)% (m / 2))]) &0X3; D [(j + 1)% t (m / 2)] - ((T [i * m + j] -Ti * m + ((j + 2)% (m / 2))] + (T [i " m + m / 2 + j] "2) + 3B [j])"> 2); for (j0; j <m / 2; j ++) T [i * w + 2 * j] ((T [i * m + j] "<< 1) + D [j] +1) >> 1; T [i * w + 2 * j + 1] - T (i * w + 2 * j] - D [j]; }

Décomposition à deux niveaux.Decomposition at two levels.

Transformation RTS (directe) void R$(T, w,<,T n nt W zn; int - T; in: i, j,k: in.: tervp; in'- X, Y: for i-0;i<n:i++) for j-; j<: j± 2) !o Xrj/2] - {Ti'w+j]+T[i"v-j*l]1>>: Y[j/2] - TIi"w+j]- T[i-j+l]; ter.p[iL4+j]-X[ j]; te. i"mm+=/2+jl- (-X[j]](Y[(j+ l)%(m/2)]<C:2)+X[(j+2)%(md2)]>1>2: t for {j-O:;<j-: +> for f i- r:i<n;±2) X[i/2] <(eimpt[im-3+j]em?[i+Ullr+j])">; vii/2] - e.'.-i:.-.- .-'e.{i-l!'m.j]; !r :or (i-jO:i</2:;i+) T[i"wjJ-Xti] T[(i+.n/2) '-,]- t- X!_:1-,. i (+!!z(n/2)]<<2)+X[(i+2}%{n/2}])'>>:  Transformation RTS (direct) void R $ (T, w, <, T n nt W zn; int - T; in: i, j, k: in .: tervp; in'- X, Y: for i-0; i <n: i ++) for j-; j <: j ± 2)! o Xrj / 2] - {Ti'w + j] + T [i "vj * l] 1 >>: Y [j / 2] - TIi" w + j] - T [ i-j + l]; ter.p [iL4 + j] -X [j]; you. i "mm + = / 2 + j1- (-X [j]] (Y [(j + 1)% (m / 2)] <C: 2) + X [(j + 2)% (md2)]> 1 > 2: t for {jO:; <j-: +> for f i- r: i <n; ± 2) X [i / 2] <(eimpt [im-3 + j] em? [I + Ullr + j]) ">; vii / 2] - e.'- .-. e. ## EQU1 ## where: ## EQU1 ## (+ !! z (n / 2)] << 2) + X [(i + 2}% {n / 2}]) '>>:

Décomposition à deux niveaux.Decomposition at two levels.

Transformation RTS (inverse).RTS transformation (inverse).

i --. v,., _: ' * -n: Ze-ai -. v,., _: '* -n: Ze-a

for j:t'.for j: t '.

fc _c: {j-0: j<*: *-I for (i-.::<r.12::--) : r.. 7.:e<-<_:-." -] + a(2'=1;'m-.- - -re-.=[2':-.-m; - D[_|: for (-: <.:--)  fc _c: {j-0: j <*: * -I for (i-.::<r.12::--): r .. 7.:e<-<_:-. "-] + a (2 '= 1;' m -.- - -re -. = [2 ': -.- m; - D [_ |: for (-: <.: -)

f35 (,-O:j<-/2:,?±f35 (, -O: j <- / 2:,?

B[j] - (-e. [i'm'j]*ter[i*(j*2)%(m/2))&X3 a t ([+!)%(=/21l ((:e:[-],tje..-:r i-,((j+2%)%(m/Z>>]+ ::e.-z :'-.-./2-j]<2 -- " 23j] " >21; } for (j-O;j<m/2;j++) f T[i*w+2*j] - ((temp[i*m+j]"1)+D[j]+l)>"l; T[i*w+2*j+1] - T[i*w+2*j] - D[j]; } } 3, T:  B [j] - (-e. [I'm'j] * ter [i * (j * 2)% (m / 2)) & X3 has t ([+!)% (= / 21l ((: e : [-], tje ..-: r i -, ((j + 2%)% (m / Z >>] + :: e.-z: '-.-./ 2-j] <2 - - "23j]"> 21;} for (jO; j <m / 2; j ++) f T [i * w + 2 * j] - ((temp [i * m + j] "1) + D [j ] + l)> "l; T [i * w + 2 * j + 1] - T [i * w + 2 * j] - D [j];}} 3, T:

Claims (21)

REVENDICAIONSREVENDICAIONS 1. Procédé de codage de données d'entrée, caractérisé aen ce qu'il comprend les opérations suivantes: produire des signaux transformés en réponse aux données d'entrée, o les signaux transformés sont produits à l'aide d'une transformation par onmides élémentaires réversible; et comprimer les signaux transformés en des données représentant une  A method of encoding input data, characterized in that it comprises the following operations: producing transformed signals in response to the input data, where the transformed signals are produced using an onmides transformation elementary reversible; and compress the transformed signals into data representing a version, comprimée sans pertes des données d'entrée.  version, compressed without loss of input data. 2. Procédé selon la revendication 1, caractérisé en ce que Ies signaux  2. Method according to claim 1, characterized in that the signals transformés comprennent une pluralité de coefficients.  transforms comprise a plurality of coefficients. 3. Procédé selon la revendication 1, caractérisé en ce que l'opéraftion de production comprend l'opération consistant à décomposer les données d'entrée à l'aide d'au moins un filtre réversible de longueur non minimale afin de produire  3. Method according to claim 1, characterized in that the production operation comprises the step of decomposing the input data with at least one reversible filter of non-minimal length in order to produce une série de coefficients.a series of coefficients. 4. Procédé selon la revendication 3, caractérisé en ce que ce filtre réversible de longueur non minimale comprend une pluralité de filtres unidimensionnels.  4. Method according to claim 3, characterized in that said reversible filter of non-minimum length comprises a plurality of one-dimensional filters. 5. Procédé selon la revendication 1, caractérisé en ce que les données5. Method according to claim 1, characterized in that the data d'entrée comprennent des données d'image.  input include image data. 6. Procédé selon la revendication 1, caractérisé en ce que l'opération de compression comprend l'opération consistant à coder par implantation les signaux transformés, laquelle comporte les opérations consistant à ordonner la série de coefficients et à effectuer une implantation selon le degré de signification des bits  The method according to claim 1, characterized in that the compressing operation comprises the step of implant coding the transformed signals, which comprises the steps of ordering the series of coefficients and performing an implementation according to the degree of meaning of bits sur les signaux transformés.on the transformed signals. 7. Procédé selon la revendication 1, caractérisé en outre par les opérations suivantes: décomprimer la version comprimée sans pertes des données d'entrée en des signaux transformés; et produire les données d'entrée à partir des signaux transformés en Ies mettant sous la forme d'une version reconstruite des données d'entrée à l'aide d'une  The method of claim 1, further characterized by the steps of: decompressing the compressed version without loss of the input data into transformed signals; and producing the input data from the transformed signals by putting it in the form of a reconstructed version of the input data using a transformation par ondes élémentaires réversible inverse.  reversible elementary wave transformation. 8. Procédé de décodage de données en des données initiales, caractérisé en ce qu'il comprend les opérations suivantes: décomprimer une version, comprimée sans pertes, de données d'entrée, de façon à mettre sous la forme d'une pluralité de signaux transformés; et produire une version reconstruite des données initiales à partir dc la pluralité de signaux transformés à l'aide d'une transformation par ondes  8. A method for decoding data into initial data, characterized in that it comprises the following operations: decompressing a version, compressed without losses, of input data, so as to put in the form of a plurality of signals processed; and producing a reconstructed version of the initial data from the plurality of transformed signals using wave transformation élémentaires réversible inverse.reversible elementary reversals. 9. Procédé selon la revendication 8, caractérisé en ce que les signaux transformés comprennent une pluralité de coefficients.  9. Method according to claim 8, characterized in that the transformed signals comprise a plurality of coefficients. 10. Procédé selon la revendication 8, caractérisé en ce que l'opération de production comprend l'opération qui consiste à décomposer les données d'entrée à l'aide d'au moins un filtre réversible de longueur non minimale afin de produireThe method according to claim 8, characterized in that the production operation comprises the step of decomposing the input data with at least one non-minimum reversible filter to produce une série dc coefficients.a series of coefficients. 11. Procédé selon la revendication 10, caractérisé en cc que ce filtre réversible de longueur non minimale comprend une pluralité de filtres unidimensionnels.  11. The method of claim 10, wherein said non-minimum length reversible filter comprises a plurality of one-dimensional filters. 12. Procédé de codage de données d'entrée, caractérisé en ce qu'il comprend les opérations suivantes: produire une première pluralité de signaux transformés en réponse aux données d'entrée, o les signaux transformés sont produits à l'aide d'une transformation par ondes élémentaires réversible; comprimer la première pluralité de signaux transformés de façon à la mettre sous la forme de données représentant une version comprimée sans pertes des données d'entrée; décomprimer la version comprimée sans pertes des données d'entrée de façon à la mettre sous la forme d'une deuxième pluralité de signaux transformés; et produire les données d'entrée à partir de la deuxième pluralité de signaux transformés en les mettant sous la forme d'une version reconstruite des données d'entrée à l'aide d'une transformation par ondes élémentaires réversible inverse.An input data coding method, characterized in that it comprises the following operations: producing a first plurality of transformed signals in response to the input data, wherein the transformed signals are generated using a reversible elementary wave transformation; compressing the first plurality of transformed signals to put it in the form of data representing a compressed version without loss of the input data; decompressing the lossless compressed version of the input data into a second plurality of transformed signals; and producing the input data from the second plurality of transformed signals by putting them in the form of a reconstructed version of the input data using an inverse reversible elementary wave transformation. 13. Procédé de codage de données d'entrée, caractérisé en ce qu'il comprend les opérations suivantes: coder par transformation les données d'entrée sous la forme d'une série de coefficients; et coder par implantation la série de coefficients, cette opération comportant les opérations consistant à ordonner la série de coefficients et à effectuer une implantation suivant le degré de signification des bits sur la série de coefficients, o un premier type de codage par implantation est effectué sur une première partie des données et un deuxième type de codage par implantation est13. An input data coding method, characterized in that it comprises the following operations: transforming the input data into the form of a series of coefficients; and encoding by implementation the series of coefficients, this operation comprising the operations of ordering the series of coefficients and performing an implementation according to the degree of significance of the bits on the series of coefficients, where a first type of coding by implementation is performed on a first part of the data and a second type of coding by implantation is effectué sur une deuxième partie des données.  performed on a second part of the data. 14. Procédé selon la revendication 13, caractérisé en ce que l'opération de codage par transformation comprend le filtrage des données d'entrée par ondes élémentaires.  14. Method according to claim 13, characterized in that the transformation coding operation comprises filtering the input data by elementary waves. 15. Procédé selon la revendication 13, caractérisé en ce que le premier15. The method of claim 13, characterized in that the first type de codage par implantation comprend un codage du type ramification.  The type of implementation coding includes branching type coding. 16. Procédé selon la revendication 13, caractérisé en ce que l'opération de codage par implantation comprend l'opération consistant à mettre la série de  16. The method according to claim 13, characterized in that the implantation coding operation comprises the operation of putting the series of coefficients au format signe/amplitude.  coefficients in the sign / amplitude format. 17. Proc&dé de codage de données d'entrée, caractérisé en ce qu'il comprend les opérations suivantes: transformer des données d'entrée en une série de coefficient à l'aide d'ondes universelles réversibles; convertir la série de coefficients suivant un format signe/amplitude en une série de coefficients mis au format; coder une première partie de la série de coefficients mis au format à l'aide d'un premier type de codage par implantation afin de produire un premier train de bits; et coder une deuxième partie de la série de coefficients mis au format à l'aide d'un deuxième type de codage par implantation afin de produire un deuxième train de bits, o le premier train de bits et la deuxième train de bits sont combinés  An input data coding method, characterized by comprising the steps of: transforming input data into a series of coefficients using reversible universal waves; converting the series of coefficients according to a sign / amplitude format into a series of formatted coefficients; encoding a first portion of the set of formatted coefficients using a first type of implementation encoding to produce a first bit stream; and encoding a second portion of the set of formatted coefficients using a second type of implementation encoding to produce a second bit stream, wherein the first bit stream and the second bit stream are combined en un unique train de bits.in a single bit stream. 18. Procédé selon la revendication 17, caractérisé en ce qu'il comprend  18. The method of claim 17, characterized in that it comprises en outre un codage entropique du train de bits unique.  further entropy coding of the single bit stream. 19. Procédé selon la revendication 17, caractérisé en ce que le premier  19. The method of claim 17, characterized in that the first type de codage comprend un codage de l'ordre de ramification.  encoding type includes a coding of the branch order. 20. Procédé selon la revendication 17, caractérisé en ce que la première partie comprend les bits d'ordre supérieur et la deuxième partie comprend les bits  20. Method according to claim 17, characterized in that the first part comprises the higher order bits and the second part comprises the bits. d'ordre inférieur.lower order. 21. Procédé selon la revendication 17, caractérisé en ce que le train de  21. The method of claim 17, characterized in that the train of bits unique représente une version, comprimée sans pertes, des données d'entrée.  single bit represents a version, compressed without losses, of the input data.
FR9511024A 1994-09-20 1995-09-20 DATA COMPRESSION METHOD USING REVERSIBLE IMPLANTED ELEMENTARY WAVES Expired - Fee Related FR2724792B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31014194A 1994-09-20 1994-09-20
US08/310,146 US5748786A (en) 1994-09-21 1994-09-21 Apparatus for compression using reversible embedded wavelets

Publications (2)

Publication Number Publication Date
FR2724792A1 true FR2724792A1 (en) 1996-03-22
FR2724792B1 FR2724792B1 (en) 1998-04-03

Family

ID=26977230

Family Applications (2)

Application Number Title Priority Date Filing Date
FR9511023A Expired - Fee Related FR2724791B1 (en) 1994-09-20 1995-09-20 DATA COMPRESSION APPARATUS USING REVERSIBLE IMPLANTED ELEMENTARY WAVES
FR9511024A Expired - Fee Related FR2724792B1 (en) 1994-09-20 1995-09-20 DATA COMPRESSION METHOD USING REVERSIBLE IMPLANTED ELEMENTARY WAVES

Family Applications Before (1)

Application Number Title Priority Date Filing Date
FR9511023A Expired - Fee Related FR2724791B1 (en) 1994-09-20 1995-09-20 DATA COMPRESSION APPARATUS USING REVERSIBLE IMPLANTED ELEMENTARY WAVES

Country Status (2)

Country Link
FR (2) FR2724791B1 (en)
GB (2) GB2293734B (en)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6229927B1 (en) 1994-09-21 2001-05-08 Ricoh Company, Ltd. Reversible embedded wavelet system implementation
US5867602A (en) * 1994-09-21 1999-02-02 Ricoh Corporation Reversible wavelet transform and embedded codestream manipulation
US6549666B1 (en) 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
US6195465B1 (en) * 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6038349A (en) * 1995-09-13 2000-03-14 Ricoh Company, Ltd. Simultaneous registration of multiple image fragments
US5959560A (en) * 1997-02-07 1999-09-28 Said; Amir Data compression via alphabet partitioning and group partitioning
US5923785A (en) * 1997-03-31 1999-07-13 Interated Systems, Inc. System and method for compressing data
US5982938A (en) * 1997-03-31 1999-11-09 Iterated Systems, Inc. System and method for compressing data using differential coding of coefficient addresses
GB2341034B (en) * 1997-05-01 2000-06-07 Ricoh Kk Reversible embedded wavelet system implementation
GB2325584B (en) * 1997-05-01 2000-03-29 Ricoh Kk Decompression system using inverse wavelet transform
EP0996926B1 (en) * 1997-07-11 2010-02-03 Sharp Kabushiki Kaisha Apparatus and method for multiscale zerotree entropy encoding
EP0892557A1 (en) * 1997-07-18 1999-01-20 Texas Instruments Inc. Image compression
GB9716579D0 (en) * 1997-08-05 1997-10-08 Univ Bath Signal coding and decoding
DE19737258A1 (en) * 1997-08-27 1999-03-04 Iat Ag Digital data transmission and/or storage method, e.g. for image data
EP0899958A3 (en) * 1997-08-27 2008-04-23 Opportunity Investment Management PLC Image data transmission method
KR100284027B1 (en) * 1998-12-22 2001-03-02 서평원 Repositioning Wavelet Packet Counts
US8674855B2 (en) 2006-01-13 2014-03-18 Essex Pa, L.L.C. Identification of text
US7783079B2 (en) 2006-04-07 2010-08-24 Monro Donald M Motion assisted data enhancement
US7586424B2 (en) 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
US7770091B2 (en) 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US7845571B2 (en) 2006-06-19 2010-12-07 Monro Donald M Data compression
US7689049B2 (en) 2006-08-31 2010-03-30 Donald Martin Monro Matching pursuits coding of data
US7508325B2 (en) 2006-09-06 2009-03-24 Intellectual Ventures Holding 35 Llc Matching pursuits subband coding of data
US7974488B2 (en) 2006-10-05 2011-07-05 Intellectual Ventures Holding 35 Llc Matching pursuits basis selection
US7707214B2 (en) 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location with indirect addressing
US7707213B2 (en) 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location
US10194175B2 (en) 2007-02-23 2019-01-29 Xylon Llc Video coding with embedded motion
US7990289B2 (en) 2007-07-12 2011-08-02 Intellectual Ventures Fund 44 Llc Combinatorial coding/decoding for electrical computers and digital data processing systems
US7548176B2 (en) 2007-07-12 2009-06-16 Donald Martin Monro Data coding buffer for electrical computers and digital data processing systems
US7671767B2 (en) 2007-07-12 2010-03-02 Donald Martin Monro LIFO radix coder for electrical computers and digital data processing systems
US7602316B2 (en) 2007-07-12 2009-10-13 Monro Donald M Data coding/decoding for electrical computers and digital data processing systems
US8055085B2 (en) 2007-07-12 2011-11-08 Intellectual Ventures Fund 44 Llc Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems
US8144037B2 (en) 2007-07-12 2012-03-27 Intellectual Ventures Fund 44 Llc Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems
US7545291B2 (en) 2007-07-12 2009-06-09 Donald Martin Monro FIFO radix coder for electrical computers and digital data processing systems
US7786903B2 (en) 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7786907B2 (en) 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7791513B2 (en) 2008-10-06 2010-09-07 Donald Martin Monro Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7864086B2 (en) 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
WO2017140600A1 (en) * 2016-02-17 2017-08-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Post-processor, pre-processor, audio encoder, audio decoder and related methods for enhancing transient processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993010634A1 (en) * 1991-11-12 1993-05-27 General Electric Company Data compression system
WO1994017492A1 (en) * 1993-01-22 1994-08-04 David Sarnoff Research Center, Inc. Apparatus and method for compressing information

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703477A (en) * 1986-02-28 1987-10-27 American Telephone And Telegraph Company At&T Bell Laboratories Packet information field data format
GB8621994D0 (en) * 1986-09-12 1986-10-22 Crosfield Electronics Ltd Image processing
US4725885A (en) * 1986-12-22 1988-02-16 International Business Machines Corporation Adaptive graylevel image compression system
US4774574A (en) * 1987-06-02 1988-09-27 Eastman Kodak Company Adaptive block transform image coding method and apparatus
BE1000643A5 (en) * 1987-06-05 1989-02-28 Belge Etat METHOD FOR CODING IMAGE SIGNALS.
US5028995A (en) * 1987-10-28 1991-07-02 Hitachi, Ltd. Picture signal processor, picture signal coder and picture signal interpolator
EP0339589A3 (en) * 1988-04-28 1992-01-02 Sharp Kabushiki Kaisha Orthogonal transform coding system for image data
US5241395A (en) * 1989-08-07 1993-08-31 Bell Communications Research, Inc. Adaptive transform coding using variable block size
US5014134A (en) * 1989-09-11 1991-05-07 Aware, Inc. Image compression method and apparatus
US4999705A (en) * 1990-05-03 1991-03-12 At&T Bell Laboratories Three dimensional motion compensated video coding
JP3012698B2 (en) * 1991-01-29 2000-02-28 オリンパス光学工業株式会社 Image data encoding apparatus and encoding method
JPH04323963A (en) * 1991-04-23 1992-11-13 Canon Inc Picture processing method and device
US5235434A (en) * 1991-06-27 1993-08-10 Polaroid Corporation Method and apparatus for selectively adjusting the brightness of large regions of an image
US5141395A (en) * 1991-09-05 1992-08-25 General Electric Company Flow activated flowpath liner seal
JPH06125543A (en) * 1992-10-12 1994-05-06 Toshiba Corp Encoding device
JP3293920B2 (en) * 1993-01-22 2002-06-17 キヤノン株式会社 Image processing apparatus and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993010634A1 (en) * 1991-11-12 1993-05-27 General Electric Company Data compression system
WO1994017492A1 (en) * 1993-01-22 1994-08-04 David Sarnoff Research Center, Inc. Apparatus and method for compressing information

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
A. SAID ET AL.: "Image Compression Using the Spatial-Orientation Tree", 1993 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS, vol. 1, 3 May 1993 (1993-05-03), CHICAGO, IL, US, pages 279 - 282, XP000409989 *
A. SAID ET AL.: "Reversible Image Compression via Multiresolution Representation and Predictive Coding", VISUAL COMMUNICATIONS AND IMAGE PROCESSING '93, vol. 2094, no. 2/3, 8 November 1993 (1993-11-08), CAMBRIDGE, MASSACHUSETTS, US, pages 664 - 674, XP000609929 *
J. M. SHAPIRO: "Embedded Image Coding Using Zerotrees of Wavelet Coefficients", IEEE TRANSACTIONS ON SIGNAL PROCESSING, vol. 41, no. 12, December 1993 (1993-12-01), NEW YORK, US, pages 3445 - 3462, XP000426658 *
J.D. VILLASENOR ET AL.: "Filter Evaluation and Selection in Wavelet Image Compression", DCC '94, DATA COMPRESSION CONFERENCE 1994, 29 March 1994 (1994-03-29), SNOWBIRD, UTAH, US, pages 351 - 360, XP000609928 *
OHTA ET AL.: "Wavelet Picture Coding with Transform Coding Approach", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES, vol. E75-A, no. 7, July 1992 (1992-07-01), TOKYO JP, pages 776 - 784, XP000311771 *
XIONG ET AL.: "Joint Optimization of Scalar and Tree-structured Quantization of Wavelet Image Decompositions", PROCEEDINGS OF THE 27TH ASILOMAR CONFERENCE ON SIGNALS, SYSTEMS AND COMPUTERS, vol. 2, 1 November 1993 (1993-11-01), PACIFIC GROVE, CA, US, pages 891 - 895, XP000438424 *

Also Published As

Publication number Publication date
GB2293733B (en) 1997-10-22
GB9518298D0 (en) 1995-11-08
FR2724791B1 (en) 1997-12-26
FR2724792B1 (en) 1998-04-03
GB2293734B (en) 1997-04-09
FR2724791A1 (en) 1996-03-22
GB2293734A (en) 1996-04-03
GB2293733A (en) 1996-04-03
GB9518299D0 (en) 1995-11-08

Similar Documents

Publication Publication Date Title
FR2724792A1 (en) DATA COMPRESSION METHOD USING REVERSIBLE IMPLANTED ELEMENTARY WAVES
US5748786A (en) Apparatus for compression using reversible embedded wavelets
US7215820B2 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6195465B1 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US5867602A (en) Reversible wavelet transform and embedded codestream manipulation
EP0864135B1 (en) Storage and retrieval of large digital images
JP4511788B2 (en) Multi-resolution image data management system and method based on tiled wavelet transform and sparse data coding
US7418142B2 (en) Method for compression using reversible embedded wavelets
WO1998056184A1 (en) Image compression system using block transforms and tree-type coefficient truncation
FR2763766A1 (en) METHOD AND DEVICE FOR IMPLEMENTING A REVERSIBLE NOISEE WAVELET SYSTEM
US6934420B1 (en) Wave image compression
GB2302244A (en) Wavelet transform filter
AHMED et al. Lightweight Image Compression Using Polynomial and Transform Coding
GB2313757A (en) Method using an embedded codestream
CA2236943C (en) Storage and retrieval of large digital images
GB2302488A (en) Image data compression using embedded coding
Pravallika Image Compression using Combined FIR-IIR Filters

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140530