FR2724792A1 - Procede de compression de donnees utilisant des ondes elementaires implantees reversibles - Google Patents

Procede de compression de donnees utilisant des ondes elementaires implantees reversibles 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
English (en)
Other versions
FR2724792B1 (fr
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/fr
Application granted granted Critical
Publication of FR2724792B1 publication Critical patent/FR2724792B1/fr
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)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Discrete Mathematics (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.

Description

La présente invention concerne les systèmes de compression et de
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
système de compression et de décompression.
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
pour réduire le nombre de bits nécessaires à la re-création d'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
permet une reconstruction parfaite.
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
précises pour le codage de compression des données.
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
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
en n'utilisant qu'un seul passage des données.
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 à
l'aide de filtres unidimensionnels multiples.
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
poids) des bits sur les signaux transformés.
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
d'entrée avec pertes, par troncation de données comprimées sans pertes.
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
ondes élémentaires réversible inverse.
La description suivante, conçue à titre d'illustration de l'invention, vise
à 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;
la figure 2A est un schéma fonctionnel montrant un système d'analyse-
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
de décompression. Dans la description détaillée suivante de l'invention, de
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
description de l'invention.
Certaines parties de la description détaillée qui va suivre sont
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
d'ordinateur. Ces descriptions et représentations à base d'algorithmes sont les
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
appropriées et ne sont que des étiquettes commodes qu'on applique à ces quantités.
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
dispositifs de transmission ou d'affichage du système informatique.
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
activé ou reconfiguré par un programme d'ordinateur mémorisé dans l'ordinateur.
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
structure nécessaire à cette variété de machine apparaîtra dans la 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
l'invention, comme décrit ci-après.
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
mémoire ou un canal de transmission.
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
sous forme dc logiciels, comme il en est utilisé dans un système infonatiquc.
L'invention fournit un système de compression/décompression sans pertes.
L'invention peut également être configurée de manière à effectuer une
compression/décompression avec pertes.
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
la même action dans l'ordre inverse, par rapport à la circulation des données.
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
codeur entropique 104 produit un train de signaux codés 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
à ramification zéro (également connu sous l'appellation de modèle "zerotree).
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
train de signaux codés de sortie 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
d'implantation du degré de signification des 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
soumis à la combinaison de différents procédés de modélisation par 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
basée sur la fréquence et la modélisation JSF.
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
corrélation avec des relations de coefficients du domaine de la fréquence.
Les résultats du codage par implantation du degré de signification des
bits sont des décisions (ou des symboles) à coder à l'aide du codeur entropique.
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
traitées par des codeurs multiples des codeurs (matériels ou virtuels) différents.
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
Arithmetic," IBM Journal of Research and Development vol. 32, p. 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
dans des décompositions à plusieurs niveaux.
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
gl(n) sont combinés pour produire 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)+
12[Ho(-Z)Go (Z) +Hl (-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:
{G0(Z) = H1(-Z)
G1(Z) = -H0O(-Z)
ce qui donne, pour les coefficients des filtres, go(n) = (-1)nhl(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:
X(z) = 2[H0(Z)H1(-Z) -HI(Z)H0(-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
exemple d'un tel système pyramidal est présenté sur la 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,
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
initialement appliquée aux données d'entrée est reconstructible de façon exacte.
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:
1
Ho H(Z)- = l(+Zi)
H1(Z) = 2 (1Z-1)
Après substitution, le signal de sortie est
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,
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)
La notation. J signifie un arrondissement vers le bas, ou une tron-
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'à
l'entier suivant.
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
la longueur minimale) peuvent donner une meilleure compaction de l'énergie.
L'invention fournit des filtres réversibles de longueur non minimale qui permettent
une transformation sans chevauchement.
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)
{H(Z) = (-1-Z-1+8Z-2-8Z-3 +Z4+Z-5)-
Après substitution, le signal de sortie est:
X(Z) = 2Z-3X(Z),
qui est une transformation à reconstruction exacte.
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
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
utilise une information locale.
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
appellera ici une transformation RTS, qui réalise une opération de filtrage passe-
haut différente.
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
= L(-yo(O) + 4(x(2)- x(3)) +yO(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
les moins significatifs de x(0)+x(1) et x(O)-x(1) sont identiques.
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
programmation "C'.
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))
sont les mêmes lorsqu'elles sont exécutées selon une arithmétique à précision finie.
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
et le filtre passe-haut sont présentés en liaison avec les figures 10 et 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
matérielle, comme cela sera expliqué ci-après.
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
faut effectuer que deux autres additions pour arriver aux résultats du filtre passe-
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
=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
rationnelle du filtre, car il faut éviter de compliquer la description de l'invention.
1 1-4 -4 16-164 4-1-1
1 1-3-3 8-8 3 3-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
3 3-22-2 128-128 22 22-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
oeuvre au moyen de sept additions et soustractions au 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
suivant lorsqu'on utilise un ordre de tramage.
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
filtrage inverse particulière.
Une manière d'utiliser des filtres multiples consiste à traiter les
coefficients passe-haut de façon progressive. D'autres opérations de filtrage passe-
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:
-1 3 -3 1
-1 4 -4 1
-3 8 -8 3
1 -5 10 -10 5 -1
1 -4 8-8 4-1-
Dans certains modes de réalisation, on peut remplacer le filtre passe-
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
le codage dans le domaine spatial.
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
niveaux de décomposition est couramment égal à deux, trois, quatre ou cinq.
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
décomposition, l'image est décomposée en quatre sous-images (par exemple sous-
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
fréquence (par exemple l'information concernant les diagonales ou les 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
correspond au détail relativement grossier de l'image initiale pour le même endroit.
De plus, chaque sous-bande du quatrième niveau a une taille égale à 1/256 de la
taille de l'image initiale.
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
servi à mémoriser l'image initiale. En d'autres termes, l'image initiale et les sous-
bandes décomposées L.O et LL1 sont rejetées et ne sont pas enregistrées dans une
décomposition à trois niveaux.
Il existe une relation parent-enfant entre une composante de sous-
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
suite.
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
parent-enfant différentes.
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
position sur deux, de façon à éviter les calculs rendus inutiles par le sous-
échantillonnage. Dans un mode de réalisation, les filtres unidimensionniels se
partagent les calculs entre calculs passe-bas et calculs passe-haut.
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
hiérarchique sont envoyés à un dispositif de compression pour y êtrc comprimés.
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
comprimées qui représentent une version comprimée des données d'entrée initiales.
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
minimale pour produire une version reconstruite des données initiales.
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 à
ondes élémentaires réversibles, avec chevauchement, de longueur non minimale.
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
distinguer entre l'image d'un texte et des images représentant des scènes naturelles.
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
bords, un contrôle du bruit, etc., en utilisant une décomposition hiérarchique.
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
la fréquence et dans le domaine conjoint temps/espace.
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
codage, tandis que les coefficients restants sont codés avec d'autres 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,
mais ils utilisent des procédés différents pour le codage des événements.
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
supérieur des pixels situés sur les bords.
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
quinzième décisions sont toutes deux "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
seule liste sans drapeau.
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
selon l'invention.
Les figures 25A et 25B représentent un organigrammc illustrant le
processus de transformation et de modélisation du codeur selon l'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
un filtre à ondes élémentaires réversible (bloc de traitement 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
ensuite (max-1) (bloc de traitement 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
* fréquence et d'un codage entropique.
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
SA est supérieur ou égal à zéro, le traitement revient au bloc de traitement 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
et de modélisation du codeur selon l'invention prend fin.
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
l'invention commence par extraire des données codées (bloc de traitement 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é
sur le plan mémoire le plus significatif suivant (max-1) (bloc de traitement 2604).
Alors, la valeur de chaque coefficient est positionnée sur une valeur initiale zéro
(bloc de traitement 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
basé conjointement sur l'espace et la fréquence et un décodage entropiquc.
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
niveau le plus grossier restant de la décomposition (bloc de traitement 2613).
Après cela, le traitement revient au bloc de traitement 2612 afin qu'il soit de
nouveau vérifié si tous les niveaux ont été soumis au filtrage inverse.
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
l'émission de données reconstruites a lieu.
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
indiquer qu'un passage A doit être effectué.
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
(bloc de traitement 2705), et le traitement passe ensuite au bloc de traitement 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
traitement 2707.
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é
sur C, et le traitement passe directement au bloc de traitement 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
voit attribuer la variable C, et le traitement passe au bloc de traitement 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é,
le traitement prend fin alors immédiatement.
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
valeur 2(plan mémoire+l) (sans le bit de signe).
TABLEAU 7 Masques Plan mémoire Masque (binaire)
7 00000000
6 10000000
11000000
4 11100000
3 11110000
2 11111000
1 11111100
O 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
compression avec pertes.
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
traitement 2802).
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
immédiatement précédente, et le traitement retourne au bloc de traitement 2803.
De cette manière, l'invention permet d'effectuer n'importe quel nombre de niveaux
de décomposition.
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
basé conjointement sur l'espace et la fréquence et d'un codage entropique.
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,
o des données codées sont émises sur un canal ou enregistrées dans une mémoire.
Après enregistrement ou émission des données codées, le processus de
transformation et de modélisation du codeur selon l'invention prend fin.
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
valeur de chaque coefficient sur une valeur initiale zéro (bloc de traitement 2905).
Puis on positionne le masque MB sur -2(S+1) (bloc de traitement 2902) et on
positionne le masque MA sur -2(SA+1) (bloc de traitement 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
fréquence et d'un décodage entropique.
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
supérieur ou égal à zéro, le traitement passe au bloc de traitement2906.
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é
pour déterminer si tous les niveaux ont été soumis au filtrage inverse.
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
émission des données reconstruites a lieu.
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"
est effacé (bloc de traitement 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
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
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
passe au bloc de traitement 3007.
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é
à C, et le traitement passe directement au bloc de traitement 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
passage A n'est pas positionné, alors le traitement prend fin immédiatement.
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
des cas à une dimension et à deux dimensions.
La structure ramifiée découle également du fonctionnement des filtres
présentés sur les figures 4A à 4C. Le fonctionnement des paires de filtres à sous-
échantillonnage fait que les coefficients précédemment décrits sont reliés.
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
coefficient n'a pas encore été codé.
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
non significatives qu'il n'est pas nécessaire de coder).
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
liste dominante et une liste subordonnée, pour enregistrer tous les 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é
sur la fréquence selon l'invention est le modèle dit de "ramification zéro".
Dans un autre mode de réalisation, un modèle basé sur la fréquenC
analogue au modèle "ramification zéro" (tel que décrit par Shapiro) est employé.
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
le modèle de ramification zéro à liste unique.
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
progressivement plus fins. Ainsi, de multiples passages dans la liste ont lieu.
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
de contexte de Markov d'ordre zéro.
L'ordre des coefficients dans la liste selon l'invention préserve la
structure ramifiée de sorte qu'aucun enfant ne peut être modélisé avant son 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
en séquentiel enchaîné.
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
8 ordres de significations des bits ou 8 plans mémoire.
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
bit SA du coefficient C est 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
drapeau de groupe associé à C est positionné sur "groupe 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
traitement 3221), puis le processus prend fin.
Dans un autre mode de réalisation, l'essai de fin de processus peut
reposer sur le fait qu'un taux de compression voulu a ou non été atteint.
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
codeur arithmétique quaternaire (alphabet de taille 4).
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
bloc de traitement 3202, o un essai détermine si le bit SA du coefficient C est 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
est 0, et le deuxième bit lorsque le premier bit est 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
"déterminé/non déterminé" de tous les descendants du coefficient, qui ont eux-
mêmes des descendants, sont positionnés sur "déterminé' (bloc de
traitement 3211), et le processus prend fin.
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
positionné sur "groupe B" (bloc de traitement 3541), et le processus prend fin.
Si la décision n'est pas "significatif positif' (bloc de traitement 3503),
un essai détermine si la décision 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étcminé/no déterminé" de tous les descendants du coefficient C est positionné sur "non
déterminé" (bloc de traitement 3531), et le processus prend fin.
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
"groupe B" (bloc de traitement 3541), et le processus prend fin.
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
(bloc de traitement 3507), et le processus prend fin.
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
processus prend fin.
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
traitement 3507) et le processus prend fin.
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
À significatif négatif, ayant au moins un enfant positif.
Dans ce mode de réalisation, une information de signe s'ajoutant à la non-
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
des contextes de Markov d'ordre supérieur (comme décrit ci-après).
Modélisation par implantation basée conjointement sur l'espace et la fréquencem
avec liste pour plusieurs 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
de groupe A", "signe de groupe A" et "groupe 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
l'invention. Ce processus peut être utilisé dans le processus des figures 27A et 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
"groupe A" (bloc de traitement 3111). Si ce n'est pas le cas, le processus prend fin.
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
coefficient C est positionné sur 'groupe 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
traitement 31102, o un essai détermine 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 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
traitement 3105), et le processus prend fin.
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
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
un ou des contextes de "groupe A".
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
positionné sur "groupe B" (bloc de traitement 3418), et le processus prend fin.
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
"groupe 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
est fixée à 2SA (bloc de traitement 3407), et le processus prend fin.
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
processus prend fin.
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
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'
(bloc de traitement 3111). Si ce n'est pas le cas, alors le prmcessus prend fin.
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
processus prend fin.
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
est non nul (bloc de traitement 3301). 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 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
contextes de 'groupe B" (bloc de traitement 3304), et le processus prend fin.
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"
(bloc de traitement 3611). 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 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
processus prend fin.
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
logique du coefficient C avec le masque MB est zéro, alors le processus prend fin.
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
traitement 3604) et le processus prend fin.
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
ramification zéro.
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
contextes de Markov d'ordre supérieur.
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
signe du coefficient du 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
comprimés et décomprimés avec une erreur de crête spécifiée.
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
binaire.
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
droite son signal d'entrée de 17 bits.
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
vers la droite son signal d'entrée de 20 bits.
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,
- un additionneur à 19 bits.
On note que le décalage s'effectue à l'aide du câblage, de sorte qu'aucun circuit
logique n'est nécessaire.
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
additionneur à (N + 3) bits.
Du fait du coût matériel extrêmement bas de ces additionneurs et
soustracteurs, on peut utiliser, si on le souhaite, un montage de filtres en parallèle.
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
soustracteur 1106 peuvent subir ensuite un écrêtage.
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,
on délivre en sortie les 16 bits les moins significatifs.
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
un soustracteur à (N+3) bits, et l'unité d'écrêtage délivre 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
d'une mémoire de tampon de ligne représentant une quantité limitée.
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
images). On va décrire ci-après le système à un seul passage selon l'invention.
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
travaillent sur une seule ramification à la fois.
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 à
l'aide d'un codeur entropique binaire.
* 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
de traiter complètement les données d'entrée du système lors de leur réception.
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é
traitées.
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 à
quatre niveaux. Chaque ramification possède 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)
de 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
commande de filtre.
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
signaux de sortie, la largeur de bande de mémoire nécessaire peut être importante.
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
entre les entrée/sortie (I/O) de la mémoire 1302 et les entrée/sortie du filtre 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
mémoire supplémentaire peut être nécessaire pour le tampon de bande.
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
horizontaux.
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
horizontales et verticales.
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
commande de filtre 1301 (figure 13). On note que, dans le cadre de la description,
on présentera d'abord de la description d'une décomposition à deux niveaux en 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
opération de filtrage a été exécutée.
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.
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
utilisés dans le niveau suivant.
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
temps des temps 11 et 12, le filtrage vertical de niveau 1 peut avoir lieu.
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
les deux filtres dont identiques.
TABI.FAU 1
Temps _ Filtre 1 | Filtre 2 O 1H(0,0) (libre)
1 1H(0,1)
2 1H(2,0) 1VL(O,O)
3 1H(2,1) 1VH(O,O)
4 1H(0,2) 1VL(0,2)
1H(0,3) 1VH(2,0)
6 1H(2,2) 1VL(0,2)
7 1H(2,3) 1VH(0,2)
8 OH(0,0) 1VL(2,2)
9 ( i bre) 1VH(2,2) 10 OH(O,1) (libre) il11 OVL(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
libres pourraient être répartis entre les cycles de filtrage si cela était souhaitablc.
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
façon à rendre la lecture plus aisée.
TABLEAUI2
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)
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)
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)
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)
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)
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)
I
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)
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)
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)
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)
-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,
que le niveau et le sens du filtrage.
TABLEAU 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
par implantation du degré de signification des bits, selon l'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
codage de mise en ordre du type horizon à un seul passage. Les trois sous-
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
décisions, au contraire de la ramification zéro qui traite d'abord les 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
écrites dans une mémoire, l'autre est en train d'être lue, ou vidée).
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
entièrement constituée par des zéros.
La discussion suivante suppose que les coefficients sont à 18 bits et
que les données d'entrée ont subi une décomposition à quatre niveaux.
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
compteur 1804 (par exemple 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
positif est délivré au titre de la mantisse.
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 à
84 (puisque 1 + 4 + 16 + 64 = 85 est le nombre des éléments d'une sous-
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
les coefficients placés en ordre.
TABLEAU 4
Niveaul Index des coefficients
0 0
"
1 1,22,43, 64
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.
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
signification. ll y a donc dix-sept compteurs et dix-sept mémoires associées.
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,
etc., de sorte que chaque mot comprend deux éléments totalisant 32bits.
Naturellement, pour un nombre impair de niveaux de signification, un mot doit
contenir un seul élément, qui est de niveau 7 dans cet exemple.
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
de signification puisse être stocké à l'emplacement suivant.
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
l'entrée tandis que l'autre est utilisé pour la sortie.
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
oeuvre une procédure FIFO ("premier entré, premier sorti").
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
réalisation, le compteur d'index 2001 est initialisé à 84 et décompte jusqu'à zéro.
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
niveau) 2003 qui effectue la fonction présentée dans le tableau 4 cidessus.
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
envoyée à un générateur de décisions 2008.
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 à
l'index fourni par le compteur d'index 2001.
Des drapeaux "codés" sont mémorisés (pour certains modes de
réalisation dans un fichier de registres), à raison d'un bit pour chaque 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
ne sont pas utilisés et le signal déjà codé n'est jamais utilisé.
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
constitué de zéros.
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
établi que si la valeur du compteur est supérieure à celle du seuil.
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
réduire la complexité de l'équipement matériel.
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
mémoire 2101 est égal à 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
compteur 2102 est incrémenté.
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
parent non significatif sont ignorés.
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
que l'autre est utilisée pour la sortie.
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
seront 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
signification ajoutés n'ont pas à être codés.
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
présentée dans le tableau 5.
TABLEAU 5
Entrée (binaire) Sortie
001 O
O
011 1
1
101 1
2
111 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
mantisse contient 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
priorité '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
élémentaires de reconstruction exacte des transformations IS.
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
passage A0 traite ceux qui partent de "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
le passage A2, un coefficient du groupe A est significatif si le bit S est non nul.
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
plan mémoire le moins significatif).
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
groupant les plans mémoire fractionnaires voulus pour chaque niveau.
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
écarter des données moins significatives sans perdre de données plus significatives.
Puisque les données codées sont de longueur variable, on peut faire appel à une
affectation de mémoire dynamique.
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
sophistiqués ayant une meilleure compression utilisent l'état interne.
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
partie des données est simplement regroupée selon les 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
liste liée décrivant la mémoire attribuée, plus le contenu de la mémoire attribuée.
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
est attribuée doivent être stockées en plus des données codées.
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
libre suivant. La mémoire est divisée en pages de taille fixe.
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
mémoire suivant.
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
d'attribution peut être déterminé pendant le décodage.
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
significatives et on n'enregistre plus les données les moins significatives.
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
étaient précédemment mémorisées dans cette page est perdu.
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
significatives n'ont pas besoin de toute la 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
plus grande souplesse de 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
l'accès direct aux régions de l'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
pointant sur les données de chaque signification peuvent être conservés.
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
signification non utilisées.
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
peut être simplement écrasé.
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
emplacements de mémorisation peuvent être réutilisés dès qu'il y a eu émission.
Dans certaines applications, la taille de page de la mémoire peut être la taille des
paquets de données utilisés dans le canal ou un multiple de la taille des paquets.
(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
qu'un seuil.
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
précision voulue, sont rejetées.
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
donnée par des erreurs de la forme -2n<erreur<+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
coefficients sans pertes.
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
coefficients HH associés au détail le plus fin doivent être quantifiés à 4E.
Au lieu d'utiliser une quantification de l'image d'entrée, on peut anssi
commander les décisions fournies au codeur entropique. Un exemple est donné ci-
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
pour le sous-ensemble le plus grand possible du groupe.
Bien entendu, l'homme de l'art sera en mesure d'imaginer, à partir de la
description qui vient d'être donnée à titre purement illustratif et nullement limitatif,
diverses variantes et modifications ne sortant pas du cadre de l'invention.
AFEbU=C
Exemple dc code pour transformation RTS (directe).
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:
Exemple de code pour transformation RTS (inverse).
Décomposition à un seul niveau.
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]; }
Décomposition à deux niveaux.
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}])'>>:
Décomposition à deux niveaux.
Transformation RTS (inverse).
i --. v,., _: ' * -n: Ze-a
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 (-: <.:--)
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:

Claims (21)

REVENDICAIONS
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
version, comprimée sans pertes des données d'entrée.
2. Procédé selon la revendication 1, caractérisé en ce que Ies signaux
transformés comprennent une pluralité de 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
une série de 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.
5. Procédé selon la revendication 1, caractérisé en ce que les données
d'entrée comprennent des données d'image.
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
sur les signaux transformés.
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
transformation par ondes élémentaires réversible inverse.
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
élémentaires réversible inverse.
9. Procédé selon la revendication 8, caractérisé en ce que les signaux transformés comprennent une pluralité de 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 produire
une série dc 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.
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.
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 est
effectué sur une deuxième partie des données.
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.
15. Procédé selon la revendication 13, caractérisé en ce que le premier
type de codage par implantation comprend un codage du type ramification.
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
coefficients au format signe/amplitude.
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
en un unique train de bits.
18. Procédé selon la revendication 17, caractérisé en ce qu'il comprend
en outre un codage entropique du train de bits unique.
19. Procédé selon la revendication 17, caractérisé en ce que le premier
type de codage comprend un codage de l'ordre de ramification.
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
d'ordre inférieur.
21. Procédé selon la revendication 17, caractérisé en ce que le train de
bits unique représente une version, comprimée sans pertes, des données d'entrée.
FR9511024A 1994-09-20 1995-09-20 Procede de compression de donnees utilisant des ondes elementaires implantees reversibles Expired - Fee Related FR2724792B1 (fr)

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 (fr) 1996-03-22
FR2724792B1 FR2724792B1 (fr) 1998-04-03

Family

ID=26977230

Family Applications (2)

Application Number Title Priority Date Filing Date
FR9511024A Expired - Fee Related FR2724792B1 (fr) 1994-09-20 1995-09-20 Procede de compression de donnees utilisant des ondes elementaires implantees reversibles
FR9511023A Expired - Fee Related FR2724791B1 (fr) 1994-09-20 1995-09-20 Appareil de compression de donnees utilisant des ondes elementaires implantees reversibles

Family Applications After (1)

Application Number Title Priority Date Filing Date
FR9511023A Expired - Fee Related FR2724791B1 (fr) 1994-09-20 1995-09-20 Appareil de compression de donnees utilisant des ondes elementaires implantees reversibles

Country Status (2)

Country Link
FR (2) FR2724792B1 (fr)
GB (2) GB2293733B (fr)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195465B1 (en) * 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6549666B1 (en) 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
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
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
US5982938A (en) * 1997-03-31 1999-11-09 Iterated Systems, Inc. System and method for compressing data using differential coding of coefficient addresses
US5923785A (en) * 1997-03-31 1999-07-13 Interated Systems, Inc. System and method for compressing data
GB2341035B (en) * 1997-05-01 2000-11-15 Ricoh Kk Coding wavelet transform coefficients
GB2325584B (en) * 1997-05-01 2000-03-29 Ricoh Kk Decompression system using inverse wavelet transform
EP0996926B1 (fr) * 1997-07-11 2010-02-03 Sharp Kabushiki Kaisha Appareil et procede d'entropie d'arborescence 0 a echelles multiples
EP0892557A1 (fr) * 1997-07-18 1999-01-20 Texas Instruments Inc. Compression d'images
GB9716579D0 (en) * 1997-08-05 1997-10-08 Univ Bath Signal coding and decoding
DE19737258A1 (de) * 1997-08-27 1999-03-04 Iat Ag Bilddatenübertragungsverfahren
EP0899958A3 (fr) * 1997-08-27 2008-04-23 Opportunity Investment Management PLC Méthode de transmission de données d'images
KR100284027B1 (ko) * 1998-12-22 2001-03-02 서평원 웨이블릿 패킷 계수의 재배치방법
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
US7845571B2 (en) 2006-06-19 2010-12-07 Monro Donald M Data compression
US7770091B2 (en) 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
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
US7707213B2 (en) 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location
US7707214B2 (en) 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location with indirect addressing
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
US7545291B2 (en) 2007-07-12 2009-06-09 Donald Martin Monro FIFO 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
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
US7671767B2 (en) 2007-07-12 2010-03-02 Donald Martin Monro LIFO radix coder 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
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
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
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
PL3417544T3 (pl) * 2016-02-17 2020-06-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Procesor końcowy, procesor wstępny, koder audio, dekoder audio i powiązane sposoby ulepszania przetwarzania transjentów

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993010634A1 (fr) * 1991-11-12 1993-05-27 General Electric Company Systeme de compression de donnees
WO1994017492A1 (fr) * 1993-01-22 1994-08-04 David Sarnoff Research Center, Inc. Appareil et procede de compression d'informations

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 (fr) * 1987-06-05 1989-02-28 Belge Etat Procede de codage de signaux d'image.
US5028995A (en) * 1987-10-28 1991-07-02 Hitachi, Ltd. Picture signal processor, picture signal coder and picture signal interpolator
EP0339589A3 (fr) * 1988-04-28 1992-01-02 Sharp Kabushiki Kaisha Système de codage par transformation orthogonale pour données d'images
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 (ja) * 1991-01-29 2000-02-28 オリンパス光学工業株式会社 画像データの符号化装置および符号化方法
JPH04323963A (ja) * 1991-04-23 1992-11-13 Canon Inc 画像処理方法及び装置
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 (ja) * 1992-10-12 1994-05-06 Toshiba Corp 符号化装置
JP3293920B2 (ja) * 1993-01-22 2002-06-17 キヤノン株式会社 画像処理装置およびその方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993010634A1 (fr) * 1991-11-12 1993-05-27 General Electric Company Systeme de compression de donnees
WO1994017492A1 (fr) * 1993-01-22 1994-08-04 David Sarnoff Research Center, Inc. Appareil et procede de compression d'informations

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
GB9518298D0 (en) 1995-11-08
FR2724792B1 (fr) 1998-04-03
GB2293733B (en) 1997-10-22
GB2293734A (en) 1996-04-03
FR2724791A1 (fr) 1996-03-22
GB2293734B (en) 1997-04-09
FR2724791B1 (fr) 1997-12-26
GB2293733A (en) 1996-04-03
GB9518299D0 (en) 1995-11-08

Similar Documents

Publication Publication Date Title
FR2724792A1 (fr) Procede de compression de donnees utilisant des ondes elementaires implantees reversibles
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 (fr) Stockage et extraction d&#39;images numeriques de grandes dimensions
US7418142B2 (en) Method for compression using reversible embedded wavelets
WO1998056184A1 (fr) Systeme de compression d&#39;image utilisant des transformations par blocs et une troncature de coefficient arborescente
FR2763766A1 (fr) Procede et dispositif de mise en oeuvre d&#39;un systeme a ondelette noye reversible
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 (fr) Stockage et extraction d&#39;images numeriques de grandes dimensions
GB2302488A (en) Image data compression using embedded coding
Pravallika Image Compression using Combined FIR-IIR Filters
FR2817697A1 (fr) Procede et dispositif de traitement d&#39;un ensemble de donnees representatives de grandeurs physiques

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140530