Brevet FR2763766A1 — publié le 19981127

DOMAINE DE L'INVENTION La présente invention concerne le domaine des systèmes de compression et de décompression de données et plus particulièrement, le présente invention concerne un procédé et un appareil pour coder et décoder sans perte et avec perte des données dans des systèmes de compression/décompression. ARRIERE PLAN DE L'INVENTION Une compression de données constitue un outil extrêmement utile pour stocker et transmettre des quantités importantes de données. Par exemple, le temps nécessaire pour transmettre une image telle qu'une transmission par télécopie d'un document est fortement réduit lorsqu'une compression est utilisée pour diminuer le nombre des bits nécessaires pour recréer l'image. De nombreuses techniques différentes de compression de données existent dans l'art antérieur. Les techniques de compression peuvent être divisées en deux grandes catégories, à savoir le codage avec perte et le codage sans perte. Le codage avec perte met en jeu un codage qui aboutit à une perte d'information, de telle sorte qu'il n'y a pas de garantie d'une reconstruction parfaite des données originales. Le but de la compression avec perte est que des modifications sont apportées aux données originales de telle sorte qu'elles ne puissent être objectées ou détectées. Dans une compression sans perte, toute l'information est retenue et les données sont comprimées d'une manière qui permet une reconstruction parfaite. Dans une compression sans perte, des symboles d'entrée ou des données d'intensité d'entrée sont convertis selon des mots de code de sortie. L'entrée peut inclure des données d'image, audio, mono- dimensionnelles (par exemple des données variant spatialement ou temporairement), bi-dimensionnelles (par exemple des données variant dans deux directions spatiales (ou suivant une dimension spatiale et une dimensions temporelle)) ou des données multi- dimensionnelles/multi-spectrales. Si la compression est couronnée de succès, les mots de code sont représentés avec moins de bits que le nombre de bits requis pour les symboles (ou les données d'intensité) d'entrée. Les procédés de codage sans perte incluent des procédés de codage par dictionnaire (par exemple Lempel-Ziv), un codage RLL(en longueurs variables), un codage énumératif et un codage par entropie. Dans une compression d'image sans perte, la compression est réalisée sur des prédictions ou contextes, plus un codage. Le standard JBIG pour une compression de télécopie (ISO/IEC 11544) et le codage DPCM (modulation par impulsions codées différentielles - une option dans le standard JPEG (ISO/IEC 10918)) pour des images en tonalités continues sont des exemples d'une compression sans perte pour des images. Dans une compression avec perte, des symboles ou des données d'intensité d'entrée sont quantifiés avant conversion selon des mots de code de sortie. La quantification est destinée à préserver les caractéristiques pertinentes des données tout en éliminant les caractéristiques non importantes. Avant la quantification, le système de compression avec perte utilise souvent une transformation pour assurer une compression d'énergie. Le système JPEG est un exemple d'un procédé de codage avec perte pour des données d'image. Des développements récents au niveau du traitement de signal d'image continuent à focaliser l'attention sur la nécessité de formes efficaces et précises du codage de compression de données. Diverses formes de traitement de signal pyramidal ou de transformation ont été proposées, parmi lesquelles on trouve un traitement pyramidal à résolutions multiples et un traitement pyramidal à ondelettes. Ces formes sont également appelées traitement de sous-bande et traitement hiérarchique. Le traitement pyramidal à ondelettes des données d'image est un type spécifique d'un traitement pyramidal à multiples résolutions qui peut utiliser des filtres miroirs en quadrature (QMF) afin de produire une décomposition en sous-bandes d'une image originale. Il est à noter que d'autres types d'ondelettes non QMF existent. Pour davantage d'information concernant le traitement à ondelettes, voir Antonini M. et suivants "Image Coding Using Wavelet Transform", IEEE Transactions on Image Processing, Vol. 1, No 2, Avril 1992; Shapiro, J., "An Embeddeb Hierarchical Image Coder Using Zerotrees of Wavelet Coefficients", Proc. IEEE Data Compression Conference, pages 214-223, 1993. Pour une information concernant une transformation réversible, voir Said A. et Pearlman W. "Reversible Image Compression via Multiresolution Representation and Predictive Coding", Dept. of Electrical, Computer and Systems Engineering, Rensealaer Polytechnic Institute, Troy, NY, 1993. La compression est souvent très consommatrice de temps et très demandeuse de capacité mémoire. Il est souhaitable de réaliser une compression plus rapide et/ou avec une mémoire réduite lorsque c'est possible. Certaines applications n'ont jamais utiliser la compression du fait que soit la qualité ne peut pas être assurée, soit le taux de compression n'est pas suffisamment élevé, soit le débit des données ne peut pas être contrôlé. Cependant, l'utilisation de la compression est souhaitable pour réduire la quantité d'information à transférer et/ou stocker. Les copieurs numériques, les imprimantes, les scanners et les machines multifonctions sont fortement par l'emploi d'une mémoire de trame. Une mémoire de trame comprimée réduit la mémoire et par conséquent les coûts requis pour un stockage de trame dans ces produits. Cependant, de nombreuses mémoires de trame sont mises en oeuvre à l'aide de mémoires vives (RAM). La RAM est rapide mais est de façon générale coûteuse. Des disques durs peuvent également être utilisés en tant que mémoires et sont de façon générale considérés comme étant peu coûteux (ou moins coûteux de façon générale que la RAM). Par conséquent, tout fabricant de système trouverait un avantage à fabriquer un système moins coûteux en utilisant un disque dur pour constituer une telle mémoire de trame à la place d'une RAM. Un problème rencontré avec l'utilisation des disques durs pour des applications sensibles temporellement est constitué par le fait qu'il est difficile d'accéder directement à une information à partir d'un disque dur aussi rapidement que la vitesse à laquelle la même information peut être accédée à partir d'une RAM. Par ailleurs, de nombreux disques durs utilisent une compression lors du stockage d'une information sur le disque afin d'augmenter la quantité d'information qui peut être stockée sur le disque. Le temps nécessaire pour réaliser la compression peut également être dissuasif pour l'utilisation des disques durs dans des applications sensibles vis-à-vis du temps. La vitesse lente inhérente à l'utilisation des disques durs et l'utilisation de la compression sont deux facteurs qui font qu'une utilisation de disques durs dans des applications sensibles vis-à-vis du temps est d'une possibilité de mise en oeuvre difficile. La présente invention propose une compression avec perte/sans perte rapide. La présente invention propose des mises en oeuvre de systèmes qui permettent l'utilisation d'une technologie par disque dur peut coûteuse en lieu et place des RAM coûteuses. En outre, la présente invention propose une adaptation de débit au disque dur et propose d'utiliser une compression pour faire correspondre le disque dur à des largeurs de bande ou bandes passante d'autres parties de la mise en oeuvre du système telles qu'un moteur d'impression. La présente invention propose également d'utiliser une RAM lorsque le temps pour la compression et la décompression ne conduit pas à une vitesse beaucoup plus lente que la vitesse de la RAM. De cette façon, la présente invention réalise une adaptation de débit pour la RAM. RESUME DE L'INVENTION Un procédé et un appareil pour réaliser une compression et/ou une décompression sont décrits. Selon un mode de réalisation, la présente invention comprend un système comportant un tampon, une unité de transformation d'ondelettes et un codeur. L'unité de transformation d'ondelettes comporte une entrée couplée au tampon afin de réaliser une transformation d'ondelettes sur des pixels stockés dedans et afin de générer des coefficients au niveau d'une sortie. Le codeur est couplé à l'unité de transformation d'ondelettes afin de coder les pixels transformés reçus depuis le tampon. BREVE DESCRIPTION DES DESSINS La présente invention sera comprise de manière davantage complète au vu de la description détaillée présentée ci-après et au vu des dessins annexés des divers modes de réalisation de l'invention qui cependant ne doivent pas être considérés comme limitant l'invention aux modes de réalisation spécifiques mais qui sont prévus seulement pour l'explication et la compréhension, et parmi ces dessins: La figure 1A représente les relations de dépendance de contexte; les enfants sont conditionnés par leurs parents; La figure 2A représente un ordre qui est similaire à un ordre de tramage; La figure 2B représente un autre mode de réalisation d'un ordre qui est appelé ici ordre "de couture courte"; La figure 2C représente un autre ordre de couture courte; Les figures 3A à 3H représentent le résultat de chaque application du filtre de transformation TS pour une transformation à quatre niveaux sur une arborescence d'ondelettes de la présente invention; La figure 4A est un schéma fonctionnel d'un mode de réalisation d'une unité de filtre à sens direct/sens inverse pour une utilisation lors de la mise en oeuvre de filtres mono-dimensionnels; La figure 4B est un schéma fonctionnel d'un mode de réalisation d'une transformation en sens direct de premier niveau selon la présente invention; La figure 5 est un schéma fonctionnel d'un mode de réalisation d'une transformation en sens direct complète selon la présente invention; La figure 6 est un diagramme temporel lorsque des coefficients sont émis en sortie; Les figures 7A à 7H représentent les résultats (les sorties) de chaque opération de filtrage mono-dimensionnel pour la transformation TT; La figure 8 est un schéma fonctionnel d'une unité de filtre en sens direct/sens inverse à 10 connexions intermédiaires; La figure 9 est un schéma fonctionnel d'un mode de réalisation de l'unité de chevauchement pour le filtre en sens direct/sens inverse de la figure 8; La figure 10 représente la l'ordonnancement du train de code et l'ordonnancement dans une unité de codage; La figure 11 représente les profondeurs binaires des divers coefficients dans une décomposition par transformation TS et par transformation TT à deux niveaux à partir d'une image d'entrée comportant b bits par pixel; La figure 12 est un mode de réalisation des multiplicateurs pour la bande de fréquence utilisés pour un alignement de coefficients selon la présente invention; La figure 13A représente un coefficient divisé selon les données les plus importantes et les données moins importantes; La figure 13B représente le cas sans perte dans lequel aucune donnée n'est écartée; La figure 13C représente le cas dans lequel un plan mémoire binaire de données a été écarté (c'est-à-dire Q=2) du fait que la mise à l'écart d'un plan mémoire binaire est équivalente à une division par deux; La figure 14 est un organigramme qui représente un mode de réalisation du fonctionnement du système de compression/ décompression; La figure 15 représente un mode de réalisation dans lequel 6 bits sont utilisés pour chaque arborescence; La figure 16 est un organigramme permettant de coder le tronçon le plus important; La figure 17 est un schéma fonctionnel d'un mode de réalisation de l'unité de formatage et du modèle de contexte utilisés pendant la passe de codage des données les plus importantes; La figure 18 représente un mode de réalisation d'une première unité de plan mémoire binaire; La figure 19 est un organigramme qui représente un mode de réalisation du processus de codage d'un plan mémoire binaire LIC; La figure 20 est un schéma fonctionnel d'un mode de réalisation des modèles de prospective et de contexte pour des données moins importantes; La figure 21 est un schéma fonctionnel d'un mode de réalisation du modèle de contexte qui assure le conditionnement des bits de tête; La figure 22 représente l'utilisation de mémoires pour un mode de réalisation du modèle de contexte avec conditionnement sur tous les voisins et parents; La figure 23 est un schéma fonctionnel d'un mode de réalisation du modèle de contexte pour des bits de signe; La figure 24 représente un mode de réalisation de codage parallèle pour le LIC; La figure 25 est un schéma fonctionnel d'un mode de réalisation de la zone d'entrée d'une imprimante; La figure 26 est un schéma fonctionnel d'un mode de réalisation de la zone de sortie de l'imprimante; La figure 27 est un schéma fonctionnel d'un autre mode de réalisation de la zone de sortie de l'imprimante; La figure 28 est un schéma fonctionnel d'un mode de réalisation d'une puce de circuit intégré (IC) contenant la compression/ décompression d'imprimante; La figure 29 représente le cadencement de base du système pendant l'impression; La figure 30 représente un mode de réalisation possible de la façon dont des données de pixels sont organisées; La figure 31 représente un tampon de bande d'une page; La figure 32 représente un diagramme temporel de décodage qui représente des exigences d'accès mémoire concurrentes; La figure 33 représente comment un adressage circulaire peut être utilisé pour manipuler une écriture de données qui sont en une quantité plus importante que la lecture de données; La figure 34 représente une paire constituée par un codeur et un décodeur; La figure 35 représente un mode de réalisation d'un modèle de contexte binaire; La figure 36 représente un autre mode de réalisation d'un modèle de contexte binaire; La figure 37 représente les coefficients de voisinage pour chaque coefficient d'une unité de codage; La figure 38 représente un alignement pyramidal basé sur un alignement MSE; et La figure 39 représente un alignement MSE de coefficients d'ondelettes. DESCRIPTION DETAILLÉE DE LA PRÉSENTE INVENTION Un procédé et un appareil pour la compression et la décompression sont décrits. Dans la description qui suit, de nombreux détails sont présentés tels que les types de retards, les débits binaires, les types de filtre, etc. Il apparaîtra cependant à l'homme de l'art que la présente invention peut être mise en oeuvre sans ces détails spécifiques. Dans d'autres cas, des structures et dispositifs bien connus sont représentées sous forme de schémas fonctionnels au lieu de l'être en détails afin d'éviter d'obscurcir la présente invention. Certaines parties des descriptions détaillées qui suivent sont présentées en termes d'algorithmes et de représentation symbolique d'opérations sur des bits de données dans une mémoire d'ordinateur. Ces descriptions et représentations algorithmiques constituent le moyen utilisé par l'homme de l'art spécialisé dans le traitement des données pour faire partager de la manière la plus efficace la substance de leur travail avec d'autres personnes du même métier. Un algorithme est ici, et de façon générale, conçu comme étant une séquence auto-cohérente d'étapes aboutissant à un résultat souhaité. Les étapes sont celles qui nécessitent des manipulations physiques de quantités physiques. Habituellement bien que non nécessairement, ces quantités prennent la forme de signaux électriques ou magnétiques qui peuvent être stockés, transférés, combinés, préparés et manipulés de toute autre façon. Il a été trouvé qu'il était commode, principalement pour des raisons d'utilisation commune, de nommer ces signaux en tant que bits, valeurs, éléments, symboles, caractères, termes, nombres ou similaire. On doit cependant garder à l'esprit que tous ces termes ainsi que des termes similaires doivent être associés aux quantités physiques appropriées et sont simplement des étiquettes commodes appliquées à ces quantités. Sauf mention spécifique du contraire comme il apparaîtra au fil des discussions qui suivent, il est à apprécier que dans l'ensemble de la présente invention, les discussions qui utilisent les termes tels que "traitement" ou "calcul par ordinateur" ou "calcul" ou "détermination" ou "affichage" ou similaire se réfèrent à l'action et au processus d'un système d'ordinateur ou d'un dispositif de calcul électronique similaire qui manipule et transforme des données représentées en tant que quantités physiques (électroniques) dans les registres du système d'ordinateur et dans des mémoires selon d'autres données représentées de façon similaire en tant que quantités physiques dans les mémoires ou registres du système d'ordinateur ou dans d'autres de ces dispositifs de stockage, de transmission ou d'affichage d'informations. La présente invention se rapporte également à un appareil permettant de réaliser les opérations présentées ici. Cet appareil peut être plus spécialement construit pour les buts requis ou il peut comprendre un ordinateur à usage général activé sélectivement ou reconfiguré par un programme d'ordinateur stocké dans l'ordinateur. Un tel programme d'ordinateur peut être stocké dans un support d'information de stockage lisible par l'ordinateur tel que n'importe quel type de disque incluant des disques souples, des disques optiques, des CD-ROM et des disques magnéto-optiques, des mémoires mortes (ROM), des mémoires vives (RAM), des mémoires mortes programmables électriquement (EPROM), des mémoires mortes programmables et effaçables électriquement (EEPROM), des cartes magnétiques ou optiques ou n'importe quel type de support d'information convenant pour stocker des instructions électroniques sans qu'on soit limité à l'énumération qui précède, chaque support d'information étant couplé à un bus de système d'ordinateur. Les algorithmes et affichages présentés ici ne sont pas rapportés de façon inhérente à un quelconque ordinateur particulier ou à un quelconque autre appareil particulier. Diverses machines à usage générale peuvent être utilisées avec des programmes conformément aux enseignements présentés ici ou il peut s'avérer commode de construire un appareil davantage spécialisé afin de réaliser les étapes de procédé requises. La structure requise pour une certaine variété de ces machines apparaîtra au vu de la description présentée ci-après. En outre, la présente invention n'est pas décrite par référence à un quelconque langage de programmation particulier. Il est à apprécier qu'une certaine variété de langages de programmation puisse être utilisée afin de mettre en oeuvre les enseignements de l'invention tels que décrits ici. Les termes qui suivent sont utilisés dans la description qui suit. Une définition a été incluse pour ces divers termes. Cependant, la définition proposée ne doit pas être considérée comme limitant l'étendue selon laquelle les termes sont connus dans la technique considérée. Ces définitions sont proposées pour contribuer à la compréhension de la présente invention. Codage ABS: Procédé de codage par entropie parallèle utilisant des codes simples (par exemple des codes RLL) pour une génération de bit et une estimation de probabilité sur la base des mots de code utilisés (par exemple une estimation de probabilité tabulaire). Selon un mode de réalisation, le codage ABS inclut également un procédé permettant de multiplexer et démultiplexer des trains provenant de plusieurs codeurs. Alignement: Le degrés de décalage des coefficients de transformation dans une bande de fréquence par rapport aux autres bandes de fréquences. Codage arithmétique: Codage Shannon/Elias à l'aide d'une arithmétique à précision finie, non nécessairement un codeur à entropie binaire. Codage B: Un codeur à entropie binaire qui utilise l'état fini pour la compression. La différence du codage Huffman, l'utilisation de la machine d'état fini convient bien avec des symboles binaires et est utile pour une certaine plage de probabilités d'entrée. Codeur à entropie binaire: Un codeur sans bruit qui opère sur des décisions binaires (oui/non) souvent exprimées en tant que symbole le plus probable (mps) et en tant que symbole le moins probable (lps). Style binaire: Style de codage avec codage de Gray à remplissage de bord des pixels et avec un modèle de contexte particulier. Modèle de contexte Un modèle de contexte pour des de style binaire données d'image à deux niveaux et à niveau limité. Signification de bit: Une représentation par nombre, similaire à une amplitude signée, avec des bits de tête suivis par le bit de signe, suivi par les bits de queue éventuels. Le noyage code selon l'ordre de plan mémoire binaire par rapport à cette représentation. Ordre basé sur les enfants: Un ordre de balayage sur une image. Cet ordre est similaire à un ordre tramé à l'exception du fait que le balayage opère sur des blocs deux par deux. Considérant le balayage d'une bande de fréquence "parente" selon un ordre tramé, chaque coefficient comportera quatre enfants. Ces enfants sont ordonnés depuis gauche supérieur, droit supérieur, gauche inférieur et droit inférieur suivi par le parrain suivant et le jeu suivant de quatre enfants, etc... jusqu'à la fin de la ligne. Puis le traitement revient aux deux lignes suivantes et éventuellement se termine au niveau de l'angle droit inférieur. Aucune ligne n'est sautée. L'ordre basé sur les enfants est également appelé ordre de bloc 2x2. Coefficient: Composantes après la transformation. Composantes: Parties constitutives de l'image. Les composantes constituent les pixels. Par exemple, les bandes de rouge, de vert et de bleu sont des bandes constitutives. Chaque pixel individuel est constitué par une composante de rouge, de vert et de bleu. Les composantes et les bandes constitutives peuvent contenir n'importe quel type d'information qui présente une cartographie spatiale pour l'image. Modèle de contexte: Information disponible causalement concernant le bit courant à coder qui donne une information apprise historiquement concernant le bit courant, en permettant une estimation de probabilité conditionnelle pour un codage par entropie. Dans des images binaires, un contexte possible pour un pixel est constitué par les deux pixels précédents dans la même rangée et par trois pixels provenant de la rangée précédente. Niveau de décomposition: Place dans la pyramide de décomposition d'ondelettes. Ce niveau est directement rapporté à la résolution. Transformation efficace: Transformation qui permet d'obtenir la meilleur compaction d'énergie dans les coefficients tout en utilisant le nombre minimum de bits pour représenter ces coefficients. Modèle de contexte noyé: Un modèle de contexte qui sépare les casiers de contexte et les résultats selon des niveaux d'importance de telle sorte qu'une compression avec perte efficace soit obtenue si les valeurs plus importantes sont retenues. Noyé avec ordre: Un cas spécial des modèles de contexte noyé o il n'y a pas d'étiquetage explicite d'importance mais en lieu et place, les données comprimées sont ordonnées de telle sorte que les données les plus importantes soient à l'avant. Quantification noyé: Quantification qui est appliquée par le train de code. Par exemple, si des niveaux d'importance sont placés dans l'ordre depuis le plus important jusqu'au moins important, alors la quantification est réalisée par simple troncature du train de codes. La même fonctionnalité est disponible avec des étiquettes, des marqueurs, des pointeurs ou tout autre signalisation. De multiples quantifications peuvent être réalisés sur une image lors d'un décodage mais seulement une seule quantification noyée peut être réalisée à un instant de codage. Codeur par entropie: Un dispositif qui code ou décode un bit courant sur la base d'une estimation de probabilité. Un codeur par entropie peut également être appelé ici codeur par entropie binaire à multiples contextes. Le contexte du bit courant est une certaine configuration choisie de bits "voisins" et il permet une estimation de probabilité pour la meilleure représentation de bit courant (ou des multiples bits). Selon un mode de réalisation, un codeur par entropie peut inclure un codeur binaire, un codeur RLL parallèle ou un codeur Huffman. Point d'entrée: Un point dans les données qui commence par un état de codage connu. Le décodeur peut démarrer le décodage au niveau de ce point sans décoder les données précédentes. Dans la plupart des cas, ceci nécessite que le contexte et le codeur par entropie binaire soient remis à l'état initial. Les données codées pour chaque unité de codage commencent au niveau d'un point d'entrée. Longueur fixe: Un système qui convertit un bloc spécifique de données selon un bloc spécifique de données comprimées, par exemple BTS (codage par troncature de bloc) et certaines formes de VQ (quantification vectorielle). Les codes de longueur fixe servent dans des applications à débit fixe et à dimension fixe mais la performance de taux de distorsion est souvent médiocre par comparaison avec des systèmes à débit variable. Débit fixe: Une application ou un système qui maintient un certain débit de pixels et qui présente un canal à largeur de bande limité. Selon un mode de réalisation, afin d'atteindre ce but, une compression moyenne locale est réalisée en lieu et place d'une compression moyenne globale. Par exemple, MPEG nécessite un débit fixe. Dimension fixe: Une application ou un système qui présente un tampon de dimension limitée. Selon un mode de réalisation, pour atteindre ce but, une compression moyenne globale est réalisée, par exemple un tampon d'impression (une application peut être à débit fixe, à dimension fixe ou les deux). Bande de fréquences: Chaque bande de fréquences décrit un groupe de coefficients résultant de la même séquence d'opérations de filtrage. Bits de tête: Dans une représentation par signification binaire, les bits de tête sont les bits d'amplitude en partant du bit de poids fort en allant jusqu'à inclure le premier bit non nul. Codeur Huffman: De façon générale, un code de longueur fixe qui produit un nombre entier de bits pour chaque symbole. Niveaux d'importance: L'unité de données codées qui correspond, avant compression, à un plan mémoire binaire entier des données noyées. Le niveau d'importance inclut tous les plans mémoire binaires appropriés provenant des différentes bandes de fréquences de coefficient. LPS (symbole le moins Le résultat lors d'une décision probable): binaire ayant moins de 50 % de probabilité. Lorsque les deux résultats sont également probables, il est non important que se soit mps ou lps qui soit désigné pour autant que le codeur et le décodeur réalisent tout deux la même désignation. Codage sans perte/sans Compression des données d'une bruit/réversible: manière qui permet une reconstruction parfaite des données originales. Codage avec perte: Codage de données qui ne garantit pas une reconstruction parfaite des données originales. Les modifications par rapport aux données originales peuvent être réalisées de manière à ne pas soulever d'objection ou à ne pas pouvoir être détecté du point de vue visuel. Souvent, un débit fixe est possible. MPS (Symbole le plus Lerésultat d'une décision binaire probable): avec plus de 50 % de probabilité. Transformation en Une transformation dans laquelle un chevauchement: unique point d'échantillon source contribue à de multiples coefficients de la même fréquence. Des exemples incluent de nombreuses ondelettes et la transformation orthogonale dépassée. Coefficient parent: Le coefficient ou pixel dans le niveau de pyramide plus élevé suivant couvre le même espace d'image que le coefficient ou pixel courant. Par exemple, le parent des coefficients 1SD est le coefficient 2SD qui est le parent des coefficients 3SD de la figure 1A. Machine/module Une partie d'un système de codage d'estimation de probabilité: qui suit la probabilité dans un contexte. Profondeur de pixel Un train de code qui est ordonné progressive: avec des plans mémoire binaires de données qui s'enfoncent avec une résolution d'image complète. Pyramidal progressif: Succession de résolutions o chaque résolution plus faible est un facteur linéaire de deux dans chaque dimension (un facteur de quatre dans une surface). Codeur Q: Un codeur arithmétique binaire dans lequel des additions ont remplacé des multiplications et des probabilités limitées à des valeurs discrètes et des estimations de probabilités sont mises à jour lorsque des bits sont émis en sortie. Ordre de tramage: Un ordre de balayage sur une image bidimensionnelle. Il commence au niveau de l'angle gauche supérieur, se déplace de la gauche vers la droite puis retourne au niveau du côté gauche de la ligne suivante pour se terminer au niveau de l'angle inférieur droit. Aucune ligne n'est sautée. Transformation réversible: Selon un mode de réalisation, une transformation réversible est une transformation efficace mise en oeuvre à l'aide d'une arithmétique par entiers dont des résultats comprimés peuvent être reconstruits dans l'original. Bits de queue (ou queue): Dans une représentation à signification binaire, les bits de queue sont les bits d'amplitude présentant moins de signification que le bit non à zéro le plus significatif. Segment de données de Partie du train de code décrivant carreaux: complètement une unité de codage. Transformation TS: Transformation deux-six, soit une paire de filtres d'ondelettes réversibles spécifiques avec un filtre d'analyse passe-bas à deux connexions intermédiaires et un filtre d'analyse passe-haut à six connexions intermédiaires. Les filtres de synthèse sont des miroirs en quadrature des filtres d'analyse. Transformation TT: Transformation deux-dix, soit une paire de filtres d'ondelettes réversibles spécifiques avec un filtre d'analyse passe-bas à deux connexions intermédiaires et un filtre d'analyse passe-haut à dix connexions intermédiaires. Les filtres de synthèse sont un miroir en quadrature des filtres d'analyse. Sans perte/avec perte Le même système de compression unifiée: procure un train de codes susceptible d'une reconstruction sans perte ou avec perte. Selon un mode de réalisation de la présente invention, ce train de codes être à la fois sans et avec réglages ou instructions sur le codeur. Filtres d'ondelettes: Les filtres de synthèse et d'analyse passe- haut et passe-bas utilisés lors d'une transformation d'ondelettes. Transformation Transformation avec à la fois des d'ondelettes: contraintes du domaine des "fréquences" et "temporel (ou spatial)." Selon un mode de réalisation, il s'agit d'une transformation comprenant un filtre passe-haut et un filtre passe-bas. Les coefficients résultants sont décimés par réduction de moitié (filtrés de façon critique) et les filtres sont appliqués sur les coefficients passe- bas. Arborescences Les coefficients et les pixels qui d'ondelettes: sont rapportés à un unique coefficient dans la section SS de la décomposition en ondelettes de niveau le plus élevé. Le nombre de coefficients est une fonction du nombre de niveaux. La figure 1A représente les coefficients inclus dans une arborescence d'ondelettes. L'étendue d'une arborescence d'ondelettes dépend du nombre de niveaux de décomposition. Par exemple, avec un seul niveau de décomposition, une arborescence d'ondelettes s'étend sur quatre pixels, avec deux niveaux elle s'étend sur seize pixels etc... Le tableau 1 présenté ci-après représente le nombre de pixels affectés par une arborescence d'ondelettes pour des niveaux différents. Dans le cas bidimensionnel, chaque arborescence d'ondelettes comprend trois sous- arborescences appelées SD, DD et DS. Tableau 1 Étendue d'une arborescence d'ondelettes pour différents niveaux de décompressions. Largeur Hauteur Total 1 niveau 2 2 4 2 niveaux 4 4 16 3 niveaux 8 8 64 4 niveaux 16 16 256 niveaux 32 32 1024 6 niveaux 64 64 4096 Apercu global de la présente invention La présente invention propose un système de compression/décompression comportant une partie de codage et une partie de décodage. La partie de codage est responsable du codage des données d'entrée pour créer des données comprimées tandis que la partie de décodage est responsable du décodage des données codées préalablement afin de produire une version reconstruite des données d'entrée originales. Les données d'entrée peuvent comprendre une certaine variété de types de données tels qu'une image (fixe ou vidéo), des données audio etc... Selon un mode de réalisation, les données sont des données de signal numérique; cependant, des formats de données de texte et d'autres formats sont possibles. La source des données peut être soit une mémoire, soit un canal pour la partie de codage et/ou pour la partie de décodage. Selon la présente invention, les éléments de la partie de codage et/ou de la partie de décodage peuvent être mis en oeuvre selon des composants matériels ou des logiciels tels qu'utilisés sur un système d'ordinateur. La présente invention propose un système de compression/décompression sans perte. La présente invention peut également être configurée pour réaliser une compression/ décompression avec perte. Le système de la présente invention utilise une compression avec perte/sans perte rapide au moyen d'ondelettes réversibles, ce qui est décrit de manière davantage détaillée ci-après. Le système peut inclure une imprimante telle que par exemple une imprimante laser. Selon un mode de réalisation, l'imprimante utilise un disque dur peu coûteux pour stocker une page, ce qui réduit fortement la quantité de mémoire vive (RAM) coûteuse requise. La compression est utilisée pour faire correspondre la largeur de bande limitée du disque dur ou de tout autre dispositif de stockage à la largeur de bande plus importante requise pour le moteur d'impression. La technologie de codage de la présente invention satisfait les exigences temps réel et haute vitesse du moteur d'impression tandis que la présente invention assure soit une compression avec perte excellente, soit une compression sans perte excellente comme requis du fait des caractéristiques d'image et de la nature en salves du disque dur. La description détaillée qui suit met en exergue une vue générale d'une compression au moyen d'ondelettes réversibles, une application de stockage de trames comprimées, une imprimante laser couleur et des modes de réalisation d'une puce d'imprimante. Le moteur de rendu d'image d'imprimante utilise un disque dur pour le stockage. Du fait que le disque dur est plus lent que le moteur d'impression, une compression est utilisée pour assurer une correspondance des débits. Une technologie par liste d'affichage peut également être utilisée pour diminuer la mémoire requise. Un moteur de rendu d'image basé sur liste d'affichage permet au système de compression de manipuler des bandes de l'image de manière indépendante. Il est à noter que bien que la présente invention soit décrite en termes d'un système d'imprimante, la présente invention peut être appliquée à d'autres systèmes qui incluent des sous systèmes de compression et/ou de décompression ainsi que des parties afférentes. Un système de compression sans perte/avec perte unifiée noyé fait également l'objet d'une discussion ici. La caractéristique noyée du système permet de déterminer la qualité au moyen du débit de transfert du disque. Pour des images aisément comprimées (par exemple la plupart des documents avec texte et/ou traits de dessin), une compression sans perte est réalisée. Lorsqu'il est difficile de comprimer des images (par exemple dans le cas de documents comportant des images naturelles complexes et/ou des demi-teintes), une compression sans perte haute qualité est obtenue. Pour une description d'un système ou de systèmes qui supporte(nt) à la fois une compression sans perte et une compression avec perte haute qualité d'image couleur, voir la demande de brevet des États-Unis numéro 08/642 518 déposée le 3 Mai 1996 et intitulée "Compression and Decompression with Wavelet Style and Binary Style Including Quantization by Device-Dependent Parser" ainsi que la demande de brevet des États-Unis numéro 08/436 662 déposée le 8 mai 1995 et intitulée "Method and Apparatus for Reversible Color Conversion". Ondelettes réversibles La présente invention utilise une compression par ondelettes réversibles. Décomposition en ondelettes La présente invention réalise initialement une décomposition d'une image (sous la forme de données d'image) ou d'un autre signal de donnée en utilisant des ondelettes réversibles. Selon la présente invention, une transformation par ondelettes réversibles comprend la mise en oeuvre d'un système à reconstruction exacte selon une arithmétique par entiers de telle sorte qu'un signal muni de coefficients entiers puisse être restauré sans perte. Une transformation réversible efficace est une transformation munie d'une matrice de transformation dont le déterminant est égal à l'unité (ou est pratiquement égale à l'unité). En utilisant des ondelettes réversibles, la présente invention permet d'assurer une compression sans perte à l'aide d'une arithmétique de précision finie. Les résultats générés en appliquant la transformation par ondelettes réversibles aux données d'image sont une série de coefficients. La transformation par ondelette réversible de la présente invention peut être mise en oeuvre en utilisant un jeu de filtres. Selon un mode de réalisation, les filtres sont un filtre passe-bas à deux connexions intermédiaires et un filtre passe-haut à six connexions intermédiaires afin de mettre en oeuvre une transformation appelée ici transformation TS ou transformation 2,6. Selon l'autre mode de réalisation, les filtres sont un filtre passe-bas à deux connexions intermédiaires et un filtre passe-haut à dix connexions intermédiaires afin de mettre en oeuvre une transformation appelée ici transformation TT ou transformation 2,10. Ces filtres peuvent être mis en oeuvre en utilisant seulement des opérations d'addition et de soustraction (plus un décalage de bit par câblage de composants matériels). La transformation TT comporte au moins un avantage et au moins un inconvénient par rapport à la transformation TS. L'avantage réside dans le fait qu'elle assure une meilleur compression que la transformation TS. L'inconvénient de la transformation TT' réside dans le fait que le filtre à dix connexions intermédiaires plus long nécessite un coût de composants matériels plus élevé. Décomposition en ondelettes bidimensionnelle En utilisant les filtres passe-bas et passe-haut de la présente invention, une décomposition à multiples résolutions est réalisée. Le nombre de niveaux de composition est variable et peut être n'importe quel nombre; cependant, le nombre de niveaux de décomposition est couramment compris entre deux et huit niveaux. Le nombre maximum de niveaux est le log2 du maximum de la longueur ou de la largeur de l'entrée. La façon la plus classique de réaliser la transformation sur des données bidimensionnelles telles qu'une image consiste à appliquer les filtres mono-dimensionnels séparément, c'est-à-dire suivant les rangées puis suivant les colonnes. le premier niveau de décomposition conduit à quatre bandes différentes de coefficients appelées ici SS, DS, SD et DD. Les lettres se rapportent aux filtres de lissage (S) et de détail (D) définis ci-avant qui correspondent respectivement à des filtres passe- bas (L) et passe-haut (H). Il s'ensuit que la bande SS est constituée par des coefficients provenant du filtre de lissage à la fois suivant des directions de rangée et de colonne. Chaque sous-bande de fréquences dans une décomposition en ondelettes peut être encore décomposée. La pratique la plus classique consiste à seulement décomposer la sous-bande de fréquences SS encore et peut inclure la décomposition supplémentaire de la sous- bande de fréquences SS dans chaque niveau de décomposition dans l'ordre o chacune est générée. Une telle décomposition multiple est appelée décomposition pyramidale. Les désignations SS, SD, DS, DD et le nombre de niveaux de décomposition sont caractéristiques de chaque décomposition. Il est à noter qu'avec soit la transformation TS, soit la transformation TT de la présente invention, la décomposition pyramidale n'augmente pas la dimension des coefficients. Si la transformation par ondelettes réversibles est appliquée de façon récursive sur une image, le premier niveau de décomposition opère sur le détail le plus fin, ou la résolution. A un premier niveau de décomposition, l'image est décomposée selon quatre sous-images (par exemple quatre sous-bandes). Chaque sous-bande représente une bande de fréquences spatiales. Les sous-bandes de premier niveau sont désignées 1SS, 1SD, 1DS et 1DD. Le processus de décomposition de l'image originale met en jeu un sous-échantillonnage par deux suivant à la fois des dimensions horizontale et verticale de telle sorte que les sous- bandes de premier niveau lSS, 1SD, 1DS et 1DD comportent en termes de nombre de coefficients le quart des pixels de l'image d'entrée (ou des coefficients de celles-ci). La sous-bande 1SS contient simultanément une information basse fréquence horizontale et basse fréquence verticale. Typiquement, une énergie d'image est concentrée dans cette sous-bande. La sous- bande 1SD contient une information basse fréquence horizontale et haute fréquence verticale (par exemple une information de bord horizontal). La sous-bande 1DS contient une information haute fréquence horizontale et une information basse fréquence verticale (par exemple une information de bord vertical). La sous-bande 1DD contient une information horizontale haute fréquence et une information haute fréquence verticale (par exemple une texture ou information de bord en diagonale). Chacun des second, troisième et quatrième niveaux de décomposition successifs est produit en décomposant la sous-bande SS basse fréquence du niveau précédent. Cette sous-bande 1SS du premier niveau est décomposée pour produire des sous-bandes 2SS, 2SD, 2DS et 2DD du second niveau de détail modéré. De façon similaire, la sous-bande 2SS est décomposée afin de produire des sous-bandes de détail grossier 3SS, 3SD, 3DS et 3DD du troisième niveau. Par ailleurs, la sous-bande SS2 est décomposée pour produire des sous-bandes de détail plus grossier 4SS, 4SD, 4DS et 4DD du troisième niveau. Du fait du sous-échantillonnage par deux, chaque sous-bande de second niveau présente une dimension qui vaut 1/16ème de celle de l'image originale. Chaque échantillon (par exemple chaque pixel) à ce niveau représente un détail modéré dans l'image originale au même emplacement. De façon similaire, chaque sous-bande de troisième niveau présente une dimension qui vaut 1/64-ième de la dimension de l'image originale. Chaque pixel à ce niveau correspond à un détail relativement grossier dans l'image originale au même emplacement. Par ailleurs, chaque sous-bande de quatrième niveau présente une dimension qui vaut 1/256-ième de celle de l'image originale. Puisque les images décomposées sont physiquement plus petites que l'image originale du fait du sous-échantillonnage, la même mémoire utilisée pour stocker l'image originale peut être utilisée pour stocker toutes les sous-bandes décomposées. En d'autres termes, l'image originale et les sous-bandes décomposées 1SS et 2SS sont écartées et ne sont pas stockées dans une décomposition à trois niveaux. Bien que seulement quatre niveaux de décomposition de sous- bande soient décrits, des niveaux additionnels pourraient être développés conformément aux exigences d'un système particulier. Par ailleurs, avec d'autres transformations telles qu'une transformation cosinus discrète ou DCT ou que des sous-bandes espacées linéairement, des relations parents-enfants différentes pourraient être définies. Il est à noter qu'une décomposition pyramidale n'augmente pas la dimension de coefficient avec les filtres d'ondelettes de la présente invention. Selon d'autres modes de réalisation, d'autres sous-bandes en plus de la sous-bande SS peuvent être décomposées également Structure arborescente des ondelettes Il y a une structure arborescente naturelle et utile pour des coefficients d'ondelettes dans une décomposition pyramidale. Un résultat de la décomposition en sous-bandes est constitué par une unique sous-bande de fréquence SS correspondant au dernier niveau de décomposition. Par ailleurs, il y a autant de bandes SD, DS et DD que de nombre de niveaux. La structure arborescente définit le parent d'un coefficient dans une bande de fréquence comme étant un coefficient dans une même bande de fréquence à une résolution plus faible et rapporté à la même localité spatiale. Selon la présente invention, chaque arborescence comprend les coefficients SS et trois sous-arborescences, à savoir les sous- arborescences DS, SD et DD. Le traitement de la présente invention est typiquement réalisé sur les trois sous-arborescences. La racine de chaque arborescence est un coefficient purement lisse. Pour un signal bidimentionnel tel qu'une image, il y a trois sous-arborescences dont chacune a quatre enfants. L'arborescence n'est pas hiérarchiquement limitée à des signaux bidimentionnels. Par exemple, pour un signal monodimentionnel, chaque sous-arborescence a un seul enfant. Des dimensions plus élevées résultent des cas monodimentionnels et bidimentionnels. Le processus de décomposition à multiples résolutions peut être réalisé en utilisant un système de filtrage. Pour des exemples d'une transformation bidimentionnelle à deux niveaux, une transformation bidimentionnelle à deux niveaux mise en oeuvre en utilisant des filtres typiques monodimentionnels, voir la demande de brevet des États- Unis de numéro de série 08/498 695 déposée le 30 juin 1995 et intitulée "Method and Apparatus For Compression Using Reversible Wavelet Transforms and an Embedded Codestream" ainsi que la demande de brevet des Etats-Unis de numéro de série 08/498 036 déposée le 30 juin 1995 intitulée "Reversible Wavelet Transform and Embedded Codestream Manipulation". Réalisation de la transformation d'ondelette vers l'avant Selon la présente invention, la transformation d'ondelette est réalisée à l'aide de deux opérations 1D, à savoir horizontale puis verticale. Selon un mode de réalisation, un élément de composant matériel réalise l'opération horizontale tandis qu'un autre élément de composant matériel réalise l'opération verticale. Le nombre de niveaux détermine le nombre d'itérations. Selon un mode de réalisation, une décomposition à quatre niveaux est réalisée en utilisant la transformation TT à la fois suivant la direction horizontale et la direction verticale. Selon un autre mode de réalisation, une décomposition à quatre niveaux est réalisée en utilisant en lieu et place quatre transformations TS. La transformation de la présente invention est extrêmement efficace du point de vue du calcul. Selon un mode de réalisation, la présente invention ordonne les calculs réalisés par la transformation afin de réduire la quantité de mémoire à la fois sur puce et hors puce ainsi que la largeur de bande requises. Ordres de calcul et flux des données pour la transformation Comme discuté ci-avant selon la présente invention, l'unité de base pour calculer la transformation est l'arborescence d'ondelette. Si l'on suppose une transformation à quatre niveaux, chaque arborescence d'ondelette est un bloc de 16 x 16 pixels. Un bloc 16 x 16 pixels (l'ensemble des quatre composantes pour des images CMYK) est entré sur la transformation de la présente invention et tous les calculs possibles pour générer des coefficients sont réalisés. (L'inverse est similaire, c'est-à-dire qu'un bloc 16 x 16 de coefficients pour chaque composante est entré et tous les calculs possibles sont réalisés). Puisque la présente invention utilise une transformation en chevauchement, une information provenant d'arborescences voisines précédantes est stockée et est utilisée lors des calculs. La frontière entre l'arborescence d'ondelette courante et l'information voisine précédante est appelée ici une "couture". L'information qui est préservée sur une couture afin de réaliser la transformation de la présente invention est décrite en détail ci-après. Ordre des arborescences d'ondelette L'ordre d'arborescences d'ondelette pour calculer la transformation est important du fait que, dans certaines applications (par exemple une impression), des unités de codage de la présente invention présentent une largeur importante et une hauteur faible. Selon un mode de réalisation, chaque unité de codage contient 4096 x 256 pixels. Dans la discussion qui suit, chacune des unités de codage contient 4096 x 256 pixels. Cependant, il est à noter que l'ordre décrit ci-après peut être appliqué à des unités de codage d'autres dimensions. La figure 2A représente un ordre qui est similaire à un ordre de tramage. Cet ordre est appelé ici ordre de transformation de couture longue. Par report à la figure 2A, les lignes épaisses indiquent la quantité de données qui est préservée sur des coutures et cette quantité est indicative de la quantité de stockage qui est requise pour calculer la transformation. Ces données sont proportionnelles à une arborescence d'ondelette pour la transformation horizontale mais à la largeur de l'image (4096 selon cet exemple) pour la transformation verticale. La quantité de stockage pour ces données peut nécessiter l'utilisation d'une mémoire externe. Cependant, du fait de la proximité dans l'ordre de tramage pendant la transformation inverse, des données peuvent être émises en sortie à partir de la transformation (sur par exemple une imprimante dans une application d'imprimante) aussitôt qu'une rangée horizontale d'arborescences d'ondelette doit être convertie selon des pixels. La figure 2B représente un autre mode de réalisation d'un ordre qui est appelé ici ordre de couture courte. Le stockage pour les coutures est proportionnel à la hauteur de l'unité de codage (256 dans cet exemple) pour la transformation horizontale et * une arborescence d'ondelette pour la transformation verticale. Ceci réduit fortement la quantité de mémoire requise, ce qui rend le stockage sur puce pratique. La figure 2C représente un autre ordre de couture courte. Au prix d'un stockage proportionnel à une arborescence d'ondelette supplémentaire, le nombre de pixels consécutifs traités selon l'ordre tramé est augmenté. Cette alternative ou des alternatives similaires peuvent permettre une utilisation davantage efficace d'une RAM de mode page rapide ou de sortie de données étendues (EDO) dans le tampon de bande moyennant un faible coût supplémentaire au niveau de la mémoire de couture. L'efficacité est gagnée par le fait que la plupart des mémoires sont conçues ou optimisées pour des accès à des emplacements de mémoire adjacents. Par conséquent, une quelconque augmentation de l'utilisation d'accès de mémoire adjacents du fait de l'ordre de couture aboutit à une utilisation de mémoire davantage efficace. Calcul pour une arborescence d'ondelette Les équations qui suivent définissent à la fois la transformation TS et la transformation TT. Pour une entrée x(n), la sortie du filtre passe-bas, le signal de lissage s(n) et le filtre passe-haut, le signal de détail d(n) sont calculés comme présenté par l'équation qui suit: I s(n)= x(2n) + x(2n + 1)] d(n) = x(2n) - x(2n + 1) + l(n) La transformation inverse est représentée par de l'équation qui suit: [x(2n) = ln)+[ n)+lj x(2n + 1) = sn) - P(n) + 1 o p(n) est calculé comme suit: p(n) = d(n)-t(n) La transformation TS et la transformation TT diffèrent du point de vue de la définition de t(n). Pour la transformation TS: t(n) =L-n1)+s(n +1)+2 Pour la transformation 'IT: f(n) = L3n - 2) - 22s n - 1) + 22sn + 1) - 3sn + 2) + 32J Il est à noter que dans la discussion qui suit, l'annotation L.J signifie un arrondi par défaut ou une troncature et est quelquefois appelée fonction plancher. La transformation TS L'effet de l'utilisation du filtre à six connexions intermédiaires et d'un filtre à deux connexions intermédiaires en des emplacements pairs est constitué par le fait que trois éléments d'information doivent être stockés. Le filtre à six connexions intermédiaires a besoin de deux retards. Le filtre à deux connexions intermédiaires a besoin de seulement un seul retard de telle sorte que son résultat peut être centré par rapport au résultat du filtre à six connexions intermédiaires. Plus spécifiquement, deux valeurs s(-) et une valeur d(-.) ou un résultat partiel provenant du calcul d(-) doivent être stockés. Le stockage de ces valeurs est identique indépendamment de si oui ou non une opération de filtrage particulière croise une couture. Les figures 3A à 3H représentent le résultat de chaque application du filtre de transformation TS pour une transformation à quatre niveaux sur une arborescence d'ondelette de la présente invention. Sur ces figures, la sortie du filtre passe-bas est indiquée par "s" pour le lissage. La sortie du filtre passe-haut est indiquée par "d" pour détail. "B" représente une valeur intermédiaire utilisée pour calculer un "d"; il s'agit d'une valeur x(2n)-x(2n+ 1). Les valeurs "B" sont utilisées pendant la transformation en sens direct; pour la transformation en sens inverse, une valeur "d" qui n'est pas utilisée dans de quelconques calculs est stockée à sa place. L'annotation "sd" indique qu'un coefficient est le résultat tout d'abord d'un filtre passe- bas horizontal puis d'un filtre passe-haut vertical. Les significations de "ds", "dd", "ss", "db" et "sb" sont similaires. Le carré en trait gras correspond aux 256 pixels d'entrée. Les valeurs "s", "ds" et "ss" ombrées sont calculées avec une arborescence d'ondelette précédente et sont stockées pour une utilisation dans l'arborescence d'ondelette courante. Pour la transformation en sens direct, les entrées sur les niveaux 2, 3 et 4 de la transformation sont les coefficients "ss" provenant du niveau précédent. Les coefficients "sd", "ds" et "dd" sont finis de telle sorte qu'ils peuvent être émis en sortie lorsqu'ils sont calculés. La transformation en sens inverse réalise tous les calculs selon l'ordre inverse en relation avec le niveau (le quatrième niveau en premier puis les troisième et deuxième niveaux et pour finir le niveau 1) et en relation avec la verticale (en premier) et l'horizontale (en second). Dansune passe de la transformation, le flux de données du sens direct et du sens inverse sont identiques et seul le calcul est différent. Composant matériel de la transformation TS La figure 4A est un schéma fonctionnel d'un mode de réalisation d'une unité de filtre en sens direct/sens inverse destinée à être utilisée lors de la mise en oeuvre des filtres monodimentionnels. Seulement des unités de mémoire et de calcul sont représentées, des décalages par composants câblés ne sont pas représentés. Par report à la figure 4A, une unité de filtre 4000 manipule à la fois les transformations en sens direct et en sens inverse. D'autres modes de réalisation peuvent utiliser des unités séparées pour les transformations en sens direct et en sens inverse. Pour la transformation en sens direct, les entrées de dimension "n" sont utilisées et les sorties "s" et "d" sont générées. Pour la transformation en sens inverse, les entrées "s" et "d" sont utilisées et les autres sorties sont générées. Un additionneur 4001 est couplé pour recevoir les entrées de n bits et pour les additionner ensemble afin de produire une sortie x(2n+2)+x(2n+ 3). Un additionneur 4002 soustrait une entrée de n bits de l'autre et émet en sortie une quantité x(2n+2)-x(2n+3). Les sorties des additionneurs 4001 et 4002 sont respectivement couplées à une entrée de multiplexeur 4003 et 40004. Les autres entrées des multiplexeurs 4003 et 4004 sont couplées pour recevoir respectivement les entrées s et d. Selon un mode de réalisation, l'entrée s est de n bits tandis que l'entrée d est supérieure à n bits. La sortie des multiplexeurs 4003 et 4004 est commandée par un signal de commande en sens direct/sens inverse indicatif de si le filtre est dans le mode sens direct ou sens inverse. Quelque soit le mode, c'est-à- dire que ce soit le mode sens direct ou le mode sens inverse, la sortie du multiplexeur 4003 est égale à s(n+l 1). Par ailleurs, la sortie du multiplexeur 4004 est égale à p(n+ 1) dans le mode sens direct et à d(n+ 1) dans le mode sens inverse. Les sorties des multiplexeurs 4003 et 4004 en association avec un retour de s(n) émis en sortie depuis le multiplexeur 4006 sont couplées aux entrées d'un fichier de registre 4005. Le fichier de registre 4005 contient les entrées pour chaque composante pour la longueur d'une arborescence d'ondelette. Les données traversent typiquement le fichier de registre 4005. Sur la base de la localisation spatiale, les entrées sur le registre 4005 sont retardées par rapport à la sortie. Une entrée d'adresse commande les sorties du fichier de registre 4005. Selon un mode de réalisation, le fichier de registre 4005 comprend deux groupes de mémoires avec un port par groupe et est utilisé selon des accès du style ping pong en va et vient entre les deux groupes de mémoire. La sortie du multiplexeur 4003 est également la sortie s de l'unité de filtre. Les sorties du fichier de registre 4005 sont couplées à des entrées du multiplexeur 4006 en association avec des données tamponnées de façon externe au niveau d'un tampon de couture en 4020. La sortie 4006A comprend s(n- 1) qui est une version retardée deux fois de la sortie du multiplexeur 4003. La sortie 4006B comprend s(n) qui est une version retardée de s(n+ 1). La sortie 4006C comprend p(n) pour le mode en sens direct et d(n) pour le mode en sens inverse. Le multiplexeur 4006 est également commandé pour produire des données de couture destinées à être tamponnées de façon externe au niveau d'une sortie de tampon de couture 4021. La sortie 4006C est couplée à une entrée d'additionneurs 4008 et 4009. L'autre entrée des additionneurs 4008 et 4009 est la sortie du multiplexeur 4015. Le multiplexeur 4015 manipule des conditions de frontière. Sur une frontière, le multiplexeur 4015 émet en sortie un zéro qui est cablé par composant sur l'une de ces entrées. Le zéro cablé par composant peut être modifié afin d'utiliser d'autres valeurs dans certains modes de réalisation. Dans une condition de non frontière, le multiplexeur 4015 émet en sortie t(n) qui est émis en sortie depuis un additionneur 4007 qui est couplé pour additionner s(n+l) sur une entrée à s(n-1) sur une autre entrée en soustrayant s(n-1) de s(n+l). Un additionneur 4008 additionne à la sortie 4006C du multiplexeur 4006 à la sortie du multiplexeur 4015 afin de générer la sortie d de l'unité de filtre. Un additionneur 4009 soustrait la sortie 4006C du multiplexeur 4006 de la sortie du multiplexeur 4015. La sortie de l'additionneur 4009 est additionnée à s(n) sur la sortie 4006B du multiplexeur 4006 par un additionneur 4010 afin de générer une sortie de n bits de l'unité de filtre. La sortie de l'additionneur 4009 est également soustraite de s(n) de la sortie de 4006B du multiplexeur 4006 par un additionneur 4011, lequel additionneur émet en sortie l'autre sortie de n bits de l'unité de filtre suivant le sens inverse. Pour des coutures plus longues qu'une arborescence d'ondelette, des données de couture peuvent être stockées dans une RAM statique (SRAM) sur puce ou dans une mémoire externe en lieu et place du fichier de registre 4005. Le multiplexeur 4006 assure un accès à cette mémoire de couture additionnelle. Les plus grandes parts du coût des composants de matériel de l'unité de filtre 4000 sont dues au fichier de registre 4005. La quantité * totale de mémoire requise dépend du nombre des unités de filtre. Selon un mode de réalisation, un total de 60 emplacements pour stocker trois valeurs (s, s, d ou ss, ss, sd) est requis. Lorsque davantage d'unités de filtre sont utilisées, la mémoire requise pour chacune et moindre. Par conséquent, le coût des composants lorsque l'on utilise de multiples unités de filtre est faible. Une transformation inverse rapide permet une latence moindre entre la fin du décodage et le début de l'opération de sortie de données telle qu'une impression. Ceci réduit la mémoire d'espace de travail requise pour la décompression et permet des unités de codage plus importantes. Une transformation en sens direct rapide permet au filtre de manipuler les salves de données lorsqu'une largeur de bande plus importante est disponible, ce qui permet à son tour à la transformation d'appliquer davantage de données sur le modèle de contexte lorsqu'une prédiction permet au modèle de contexte de traiter des données rapidement. Si la transformation en sens direct ne peut pas conserver le modèle de contexte pendant le codage, la bande passante de disque pendant le codage est gaspillée, ce qui retarde l'instant du démarrage de l'impression. Par ailleurs, la commande et le flux des données peuvent être simplifiés en disposant de multiples filtres. La figure 4B est un schéma fonctionnel d'un mode de réalisation d'une transformation en sens direct de premier niveau selon la présente invention. Par report à la figure 4B, deux unités de filtre 401 et 402 telles que celles décrites sur la figure 4A réalisent le premier niveau de la transformation. L'unité de filtre 401 réalise une transformation horizontale de niveau 1 tandis que l'unité de filtre 402 réalise une transformation verticale de niveau 1. Selon un mode de réalisation, le premier niveau de la transformation opère sur des blocs 2x2 d'entrée. Quatre registres 403 et 406 fonctionnent en tant qu'unités de retard pour retarder des sorties de l'unité de filtre 401. Ceci est appelé "ordre basé sur les enfants". Un registre 403 reçoit la sortie S de l'unité de filtre 401 tandis que les registres 404 et 405 reçoivent la sortie d. La sortie du registre 404 est couplée à l'entrée de registre 406. Les sorties des registres 403 et 406 sont couplées à des entrées de multiplexeur 407 tandis que la sortie s de l'unité de filtre 401 et de la sortie du registre 405 sont couplées aux entrées d'un multiplexeur 408. Les deux multiplexeurs 407 et 408 sélectionnent des entrées pour l'unité de filtre 402 à partir de celles des coefficients retardés émis en sortie depuis l'unité de filtre 401. L'unité de filtre 401 opère consécutivement sur deux paires adjacentes verticalement d'entrée. Ceci crée quatre coefficients qui peuvent, avec le retard approprié produit par le registre 403 à 406 pour chaque composante, être entrés sur l'unité de filtre 402. Trois des quatre résultats peuvent être émis en sortie immédiatement, la sortie "ss" étant traitée ultérieurement. Le transfert en sens direct de premier niveau opère sur des groupes de quatre pixels qui sont des groupages 2 x 2. Dans le contexte de la discussion, la première rangée doit contenir des pixels a et b tandis que la seconde rangée contient des pixels c et d. L'opération de la transformation de premier niveau 4 de la figure 4B est comme suit. Pendant le premier cycle, la transformation horizontale est appliquée à des pixels a et b qui sont traités par l'unité de filtre 401. L'unité de filtre 401 génère Sab qui est stocké dans le registre 403 et Dab qui est stocké dans les registres 404 et 405. Lors du cycle suivant, les pixels c et d sont codés par l'unité de filtre 401 afin de réaliser la transformation horizontale. Les résultats de l'application de l'unité de filtre 4001 consistent à générer Scd qui est stocké dans le registre 403 et Dcd qui est stocké dans les registres 404 et 405. Au niveau de ce cycle, Sab provenant du registre 403 et Scd provenant du registre 405 sont traités par l'unité de filtre 402 qui réalise une passe verticale de la transformation et qui génère SS et SD. Par ailleurs, pendant le second cycle, la valeur Dab se déplace du registre 404 au registre 406. Lors du cycle suivant, la valeur Dab provenant du registre 406 et la valeur Dcd provenant du registre 405 sont traitées par l'unité de filtre 402, laquelle unité de filtre génère les sorties DS et DD. Lors du même cycle, l'unité de filtre 401 traite les pixels a et b provenant du bloc 2 x 2 suivants. La figure 5 est un schéma fonctionnel d'un mode de réalisation d'une transformation en sens direct selon la présente invention. Par report à la figure 5, une transformation de niveau 1 502 réalise la transformation de niveau 1. Selon un mode de réalisation, la transformation de niveau 1 comprend la transformation de niveau 1 de la figure 4B. Une unité de filtre 505 manipule les niveaux 2, 3 et 4 de la transformation. Une mémoire 503 stocke des coefficients "ss" jusqu'à ce que les coefficients suffisants soient disponibles pour réaliser la transformation. Le nombre de coefficients qui doit être stocké est présenté dans le tableau qui suit. (Chaque emplacement stocke un coefficient pour chaque composante). Tableau 2 - mémoire de retard "ss" Entre niveaux Mémoire nécessaire i et 2 9 emplacements 2 et 3 8 emplacements 3 et 4 4 emplacements Une unité d'ordre 504 multiplexe les entrées appropriées dans une unité de filtre 505. Un tampon d'entrée 501 et un tampon de sortie 506 peuvent être requis pour réaliser une correspondance entre l'ordre de transfert requis par la transformation et l'ordre requis par le tampon de bande ou le modèle de contexte. Pour la transformation en sens inverse, le flux de données est inversé, la transformation inverse de niveau 4 étant réalisée en étant suivie par les transformations de niveau 3, de niveau 2 et de niveau 1 dans l'ordre. La sortie de la transformation de niveau 2 est appliquée dans le composant matériel de transformation de premier niveau de la transformation de niveau i 502. Par ailleurs, un filtrage vertical est réalisé avant un filtrage horizontal. Du fait que le filtrage horizontal et le filtrage vertical sont identiques à ceci près qu'une direction nécessite d'accéder à une mémoire additionnée pour des coutures, l'inversion du flux de données peut être réalisée avec une faible quantité de multiplexage. Avant la transformation en sens inverse, les coefficients de deux octets doivent être convertis de la forme noyée avec deux bits de signalisation selon des nombres en complément à deux normaux. Les éléments décrits sur les figures 4B et 5 peuvent également être utilisés pour les transformations TT. Cadencement de transformation Le cadencement de transformation de la transformation en sens direct de la figure 5 est basé sur le cadencement des unités de filtre individuelles. La première unité de filtre, soit l'unité de filtre 401, calcule des transformations de niveau 1 horizontales tandis que la seconde unité de filtre, soit l'unité de filtre 402, calcule des transformations de niveau haut verticales. La troisième unité de filtre, soit l'unité de filtre 505, calcule des transformations pour des niveaux 2 à 4 ou est au repos. Selon un mode de réalisation, la troisième unité de filtre (505), lorsqu'elle n'est pas au repos, calcule des transformations horizontales pendant des cycles d'horloge pairs et des transformations verticales pendant des cycles d'horloge impairs. Le cadencement pour la transformation inverse est similaire (mais il est inversé). Dans l'exemple qui suit, des blocs 2 x 2 dans une arborescence d'ondelette sont traités selon la transposition d'un ordre de tramage. Il est à noter que moins de tamponnage d'entrée/sortie (I/O) peut être requis pour supporter une DRAM de sortie de données (EDO) de mode page rapide/étendu si 2 x 2 blocs dans une arborescence d'ondelette sont traités en lieu et place selon un ordre de tramage. La figure 6 est un schéma de cadencement et lorsque des coefficients sont émis en sortie. Le cadencement qui suit est pour chaque pixel. Il y a quatre composantes par pixel. En partant à l'instant 0, faire: pour (x=O;x réaliser un effet de miroir au niveau des frontières de transformation. Pour une mise en oeuvre de l'effet de miroir, la mise à zéro de l'entrée "d" et le multiplexage de l'entrée s(n+2) de l'unité de chevauchement sont également requis. Par report à la figure 8, des additionneurs 801 et 802 sont couplés pour recevoir les entrées de 2 n bits pendant la passe en sens direct de l'unité de filtre. L'additionneur 801 additionne les entrées de 2 n bits et émet en sortie une valeur couplée à une entrée d'un multiplexeur 803. L'additionneur 802 soustrait une entrée de l'autre et il applique sa sortie sur une entrée d'un multiplexeur 804. Les multiplexeurs 803 et 804 sont également couplés pour recevoir respectivement les entrées s et d pour l'opération de mode en sens inverse de l'unité de filtre. La sortie du multiplexeur 803 est une entrée de n bits égale à s(n+2) tandis que la sortie du multiplexeur 804 est une entrée de n+1 bits qui vaut p (n+2) pour la passe en sens directe et p(n+2) pour la passe en sens inverse. Les deux sorties des multiplexeurs 803 et 804 sont couplées à des entrées d'une mémoire 805. Les sorties 806A et 806D-F émises en sortie depuis un multiplexeur 806 sont également couplées aux entrées de la mémoire 805. La mémoire 805 retarde les entrées sur ses sorties sur la base d'une position spatiale. Selon un mode de réalisation, la mémoire 805 comprend un fichier de registre ou une RAM statique (SRAM) qui est activée en ping pong avec deux groupes et un port par groupe. Une adresse est couplée à une entrée de mémoire pour commander les sorties qui sont générées sur le multiplexeur 806. Selon un mode de réalisation, l'adresse stocke 16 ou 28 emplacements par composant. Les sorties de la mémoire 805 sont couplées à des entrées du multiplexeur 806 en association avec des données de tampon externe reçues depuis le tampon de couture en 820. La sortie 806A du multiplexeur 806 comprend s(n+l) qui est une version retardée une fois de s(n+2) au niveau de la sortie provenant du multiplexeur 803. La sortie 806B du multiplexeur 806 comprend s(n) qui est une version retardée deux fois de la sortie du multiplexeur 803. La sortie 806C du multiplexeur 806 comprend p(n) pour la passe en sens direct qui est une version retardée deux fois de la sortie du multiplexeur 806 et d(n) lors de la passe en sens inverse qui est une version retardée de fois de la sortie du multiplexeur 804. La sortie 806D comprend s(n-2) qui est une version retardée quatre fois de la sortie du multiplexeur 803. La sortie 806E du multiplexeur 806 comprend s(n-1) qui est une version retardée trois fois de la sortie du multiplexeur 803. Pour finir, la sortie 806F comprend p(n+l 1) lors de la passe en sens direct qui est une version retardée une fois de la sortie du multiplexeur 804 et d(n+ 1) pour la passe en sens inverse qui est une version retardée une fois de la sortie du multiplexeur 804. Une unité de chevauchement 807 est couplée pour recevoir la sortie du multiplexeur 803 en association avec les sorties 806A, D et E provenant du multiplexeur 806. En réponse à ces entrées, l'unité de chevauchement 807 génère t(n). Un mode de réalisation de l'unité de chevauchement est représenté sur la figure 9. La sortie de l'unité de chevauchement 807, soit t(n), est couplée à une entrée des additionneurs 808 et 809. L'additionneur 808 additionne t(n) à la sortie 806C du multiplexeur 806 afin de générer la sortie D de l'unité de filtre. L'additionneur 809 soustrait la sortie 806C du multiplexeur 806 de t(n). La sortie de l'additionneur 809 est couplée à une entrée de chacun des additionneurs 810 et 811. L'additionneur 810 additionne la sortie de l'additionneur 809 à la sortie 806B du multiplexeur 806 afin de produire l'une des sorties de n bits du filtre lorsque celui-ci fonctionne en tant qu'unité de filtre en sens inverse. L'additionneur 811 soustrait la sortie de l'additionneur 809 de la sortie 806B du multiplexeur 806 afin de générer l'autre sortie de l'unité de filtre lorsque celle-ci fonctionne en tant que filtre en sens inverse. La figure 9 est un schéma fonctionnel d'un mode de réalisation de l'unité de chevauchement pour le filtre sens direct/sens inverse de la figure 8. Par report à la figure 9, l'unité de chevauchement comprend des additionneurs 901 à 906, des multiplicateurs 907 à 909 et un diviseur 910. Des multiplicateurs et des diviseurs peuvent être des décaleurs sous forme de composants câblés. L'unité de chevauchement de la figure 9 calcule t(n) pour la transformation TT décrite ci-avant. Par report à la figure 9, l'additionneur 901 est couplé pour recevoir l'entrée s(n+2) et pour la soustraire de l'entrée s(n-2) et il génère une sortie qui est couplée à une entrée de l'additionneur 903. L'additionneur 902 est couplé pour recevoir l'entrée s(n- 1) et pour soustraire de celle-ci l'entrée s(n+l 1). La sortie de l'additionneur 902 est couplée à l'entrée du multiplicateur 902 et du multiplicateur 908. Le multiplicateur 907 multiplie son entrée par deux. Selon un mode de réalisation, la multiplication est réalisée en décalant les bits de l'entrée vers la gauche d'une position. La sortie du multiplicateur 907 est couplée à l'autre entrée de l'additionneur 903. Le multiplicateur 908 multiplie la sortie de l'additionneur 902 par seize. Selon un mode de réalisation, la multiplication est réalisée en décalant les bits qui sont émis en sortie depuis l'additionneur 902 vers la gauche de quatre positions de bit. La sortie du multiplexeur 908 est couplée à une entrée de l'additionneur 905. La sortie de l'additionneur 903 est couplée à une entrée de l'additionneur 904 et également à l'entrée du multiplexeur 909. Le multiplicateur 909 multiplie la sortie de l'additionneur 903 par deux. Selon un mode de réalisation, cette multiplication est réalisée en décalant les bits qui sont émis en sortie depuis l'additionneur 903 vers la gauche d'une position de bit. La sortie du multiplicateur 909 est couplée à l'autre entrée de l'additionneur 904. La sortie de l'additionneur 904 est couplée à l'autre entrée de l'additionneur 905. La sortie de l'additionneur 905 est couplée à une entrée de l'additionneur 906 qui l'additionne à 32, qui est une entrée câblée. La sortie de l'additionneur 906 est couplée à l'entrée du diviseur 910. Le diviseur 910 divise l'entrée par 64. Selon un mode de réalisation, cette division est réalisée en décalant les bits de l'entrée vers la droite de six positions de bit. La sortie du diviseur 910 comprend la sortie t(n). Il est à noter également que la figure 9 represente chacune des sorties avec la valeur courante sur les lignes. Il est à noter que dans la transformation TS et la transformation TT réversibles tout comme dans la transformation S, le filtre passe-bas est dans les deux cas mis en oeuvre de telle sorte que la plage du signal d'entrée x(n) est la même que celle du signal de sortie s(n). C'est-à-dire qu'il n'y a pas de croissance au niveau de la sortie lissée. Si le signal d'entrée est d'une profondeur de b bits, alors la sortie de lissage est également de b bits. Par exemple, si le signal est une image de 8 bits, la sortie du filtre passe-bas est également de 8 bits. Ceci est une propriété importante pour un système pyramidal dans lequel la sortie de lissage est décomprimée encore par exemple en appliquant successivement le filtre passe-bas. Dans les systèmes de l'art antérieur, la plage du signal de sortie est supérieure à celle du signal d'entrée, ce qui rend difficiles des applications successives du filtre. Par ailleurs, il n'y a pas d'erreur systémique du fait de l'arrondi au niveau de la mise en oeuvre par entiers de la transformation de telle sorte que toute l'erreur dans un système avec perte peut être contrôlée au moyen d'une quantification. En outre, le filtre passe-bas comporte seulement deux connexions intermédiaires qui le constituent en tant que filtre de non chevauchement. Cette propriété est importante pour la mise en oeuvre par composants câblés. Ordonnancement noyé Selon la présente invention, les coefficients générés en tant que résultat des compositions en ondelette sont codés par entropie. Selon la présente invention, les coefficients subissent initialement un ordonnancement noyé selon lequel les coefficients sont ordonnés selon un ordre visuellement significatif ou plus généralement, sont ordonnés en relation avec une certaine mesure d'erreur (par exemple une mesure de distorsion). Les mesures d'erreur ou de distorsion incluent par exemple une erreur de crête et une erreur quadratique moyenne (MSE). Additionnellement, l'ordonnancement peut être réalisé afin de donner la préférence à l'emplacement spatial en signification binaire pertinent pour une interrogation de base de données et à la directionnalité (verticale, horizontale, en diagonale, etc.). L'ordonnancement des données est réalisé afin de créer la quantification noyée du train de code. Selon la présente invention, deux systèmes d'ordonnancement sont utilisés: un premier pour ordonnancer les coefficients et un second pour ordonnancer les valeurs binaires dans un coefficient. L'ordonnancement de la présente invention produit un train de bits qui est ensuite codé à l'aide d'un codeur à entropie binaire. Représentation de signification binaire La plupart des coefficients de transformation sont des nombres signés même lorsque les composantes originales sont non signées (de quelconques coefficients émis en sortie depuis au moins un filtre de détail sont signés). Selon un mode de réalisation, l'ordre noyé utilisé pour les valeurs binaires dans un coefficient est obtenu au moyen d'un plan mémoire binaire. Les coefficients sont exprimés selon une représentation de signification binaire avant le codage. La signification binaire est une représentation par amplitude et signe dans laquelle le bit de signe, au lieu d'être le bit de poids fort ou le plus significatif (MSB), est codé avec le premier bit d'amplitude non nul. C'est-à-dire que le bit de signe suit le premier bit d'amplitude non nulle au lieu de précéder tous les bits d'amplitude. Par ailleurs, le bit de signe est considéré comme étant dans le même plan mémoire binaire que le bit d'amplitude non nulle le plus significatif ou de poids fort. Le format signification binaire représente un nombre qui utilise trois jeux de bits: tête, queue et signe. Les bits de tête sont tous les bits à zéro depuis le MSB jusqu'au premier bit d'amplitude non nulle et y compris celui-ci. Le plan mémoire binaire dans lequel le premier bit d'amplitude non nulle survient définit la signification du coefficient. Le jeux de bits de queue comprend les bits d'amplitude après le premier bit d'amplitude non nulle jusqu'au LSB. Le bit de signe représente simplement le signe, o un 0 représente un signe positif et un 1 peut représenter un signe négatif. Un nombre tel que 2n avec un bit non nul tel que le MSB comporte seulement un bit de tête. Un coefficient de zéro ne comporte ni bit de queue, ni bit de signe. Le tableau 3 représente toutes les valeurs possibles pour des coefficients allant de -7 à 8. Tableau 3 Représentation de signification binaire pour des valeurs de 4 bits Décimal Complément à 2 Amplitude de signe Signification binaire -8 1000 -7 1001 1111 11 i 1 -6 1010 1110 11 1 0 -5 1011 1101 11 0 1 -4 1100 1100 1 1 0 0 -3 1101 1011 0 11 1 -2 1110 1010 0 11 0 -1 1111 1001 0 0 1 0 0000 0000 0 0 0 1 0001 0001 0 0 10 2 0010 0010 0 10 0 3 001 001 0 10 1 4 0100 0100 10 0 0 0101 0101 10 0 1 6 0110 0110 10 1 0 7 0111 0111 10 1 1 Dans le tableau 3, la représentation par signification binaire représentée dans chaque colonne inclut un ou deux bits. Dans le cas de deux bits, le premier bit est le premier bit un et il est suivi par le bit de signe. Dans le cas o les valeurs sont des entiers non négatifs tels qu'il se produit en relation avec l'intensité de pixels, l'ordre qui peut être utilisé est l'ordre du plan mémoire binaire (par exemple depuis le plan mémoire binaire le plus significatif jusqu'au plan mémoire binaire le moins significatif ou de poids faible). Dans les modes de réalisation o des entiers négatifs de complément à deux sont également autorisés, l'ordre noyé du bit de signe est le même que le premier bit non nul de la valeur absolue de l'entier. Par conséquent, le bit de signe n'est pas considéré jusqu'à ce qu'un bit non nul soit codé. Par exemple, en utilisant une notation d'amplitude signée, le nombre de 16 bits -7 est comme suit: Sur une base par plan mémoire binaire, les douze premières décisions seront "sans signification" ou zéro. Le premier bit 1 survient à la treizième décision. Puis le bit de signe "négatif' sera codé. Après que le bit de signe est codé, les bits de queue sont traités. Les quinzième et seizième décisions sont toutes deux "1". Puisque les coefficients sont codés depuis le plan mémoire binaire le plus significatif ou de poids fort jusqu'au plan mémoire binaire le moins significatif ou de poids faible, le nombre de plans mémoire binaires dans les données doit être déterminé. Selon la présente invention, ceci est réalisé en trouvant une frontière supérieure sur les amplitudes des valeurs de coefficient calculées à partir des données ou dérivées à partir de la profondeur de l'image et des positions de filtre. Par exemple, si la frontière supérieure vaut 149, alors il y a 8 bits de signification ou 8 plans mémoire binaires. Pour accélérer un logiciel, un codage de plan mémoire binaire peut ne pas être utilisé. Selon un autre mode de réalisation, un plan mémoire binaire est codé seulement lorsqu'un coefficient devient significatif en tant que nombre binaire. Alignement des coefficients La présente invention aligne les coefficients les uns par rapport aux autres avant le codage par plan mémoire binaire. Ceci est dû au fait que les coefficients dans les différentes sous-bandes de fréquences représentent différentes fréquences similaires à celles de la FFT (transformation de Fourier rapide) ou de la DCT (transformation cosinus discrète). En alignant les coefficients, la présente invention contrôle la quantification. Les coefficients quantifiés moins lourdement seront alignés en direction des plans mémoire binaires plus précoces (par exemple seront décalés vers la gauche). Par conséquent, si le train est tronqué, ces coefficients comporteront davantage de bits qui les définissent que les coefficients quantifiés davantage lourdement. Selon un mode de réalisation, les coefficients sont alignés pour la meilleure performance débit-distorsion en termes de SNR ou MSE. Il y a de nombreux alignements possibles y compris celui qui est pratiquement optimum en termes de mesure d'erreur statistique telle que MSE. Selon une variante, l'alignement pourrait permettre une quantification psychovisuelle des données de coefficient. L'alignement a un impact significatif sur l'évolution de la qualité de l'image (ou en d'autres termes, sur la courbe débit-distorsion) mais à un impact négligeable sur le taux de compression final du système sans perte. D'autres alignements pourraient correspondre à une quantification de coefficient spécifique, à un codage en zones d'intérêt ou à un alignement progressif en résolution. L'alignement peut être signalé dans l'en-tête des données comprimées ou il peut être fixé pour une application particulière (c'est-à-dire que le système comporte seulement un alignement). L'alignement des coefficients de différentes dimensions est connu à la fois du codeur et du décodeur et n'a pas d'impact sur l'efficacité du codeur par entropie. Les profondeurs de bits des divers coefficients lors d'une décomposition par transformation TS et par transformation TT à deux niveaux à partir d'une image d'entrée comprenant d bits par pixel sont représentées sur la figure 11. La figure 12 est un mode de réalisation des multiplicateurs pour la bande de fréquence utilisée pour un alignement de coefficient selon la présente invention. Afin d'aligner les coefficients, la dimension de coefficient 1-DD est utilisée en tant que référence et des décalages sont conférés en relation avec cette dimension. Un décalage de n est une multiplication par 2n. Selon un mode de réalisation, les coefficients sont décalés par rapport à l'amplitude du coefficient le plus important afin de créer un alignement de tous les coefficients dans l'image. Les coefficients alignés sont ensuite manipulés dans des plans mémoire binaires appelés niveaux d'importance depuis le niveau d'importance le plus significatif ou de poids fort jusqu'au niveau d'importance le moins significatif ou de poids faible. Le signe est codé avec le dernier bit de tête de chaque coefficient. Le bit de signe, quelque soit le niveau d'importance, est, pour n'importe quel niveau d'importance, le dernier bit de tête qui est dedans. Il est important de noter que l'alignement commande simplement l'ordre selon lequel les bits sont envoyés sur le codeur par entropie, un décalage, un stockage ou un codage réel de bits supplémentaires à zéro ne sont pas réalisés. Le tableau 4 représente un mode de réalisation de nombres d'alignement pour des coefficients d'alignement. Tableau 4 - Alignement des coefficients 1-DD 1-DS,1-SD 2-DD 2-DS,2-SD 3-DD 3-DS,3-SD 4-DD 4-DS,4-SD Réf. Gauche 1 Gauche 1 Gauche 2 Gauche 2 Gauche 3 Gauche 3 Gauche 4 L'alignement des coefficients de dimensions différentes est connu à la fois par le codeur et par le décodeur et n'a pas d'impact sur l'efficacité du codeur par entropie. Il est à noter que des unités de codage du même jeu de données peuvent présenter des alignements différents. Ordonnancement du train de code et du modèle de contexte La figure 10 représente l'ordonnancement du train de code et l'ordonnancement dans une unité de codage. Par report à la figure 10, l'en-tête 1001 est suivie par les unités de codage 1002 selon l'ordre qui va du sommet au fond. (L'en-tête 1001 est optionnel dans les applications conçues pour un unique type d'image). Chaque unité de codage inclut des données les plus importantes 1003, des données moins importantes 1004 et des données les moins importantes 1005. Le modèle de contexte détermine à la fois l'ordre selon lequel des données sont codées et le conditionnement utilisé pour des bits spécifiques des données. L'ordonnancement sera considéré en premier. L'ordonnancement de niveau le plus élevé des données a déjà été décrit ci-avant. Les données sont divisées en "données les plus importantes" appelées ici de façon interchangeable "le groupage le plus important" (MIC) qui sont codés sans perte selon l'ordre de transformation et "les données moins importantes" qui sont appelées ici de façon interchangeable "le groupage le moins important" (LIC) et qui sont codées d'une manière sans perte/avec perte unifiées noyées. L'ordre selon lequel les coefficients durant chaque plan mémoire binaire sont traités va depuis la résolution faible jusqu'à la résolution élevée (depuis les basses fréquences jusqu'aux hautes fréquences). Le codeur à sous-bande de coefficient dans chaque plan mémoire binaire va du niveau haut (résolution faible, basse fréquence) jusqu'au niveau bas (haute résolution, haute fréquence). Dans chaque sous-bande de fréquence, le codage est selon un ordre défini. Selon un mode de réalisation, l'ordre peut être un ordre tramé, un ordre de bloc 2 x 2, un ordre en serpentin, un ordre de balayage de Peano, etc.. Dans le cas d'une décomposition à quatre niveaux utilisant le train de code de la figure 3, l'ordre est comme suit: 4-SS, 4-DS, 4-SD, 4-DD, 3-DS, 3-SD, 3-DD, 2-DS, 2-SD, 2-DD, 1-DS, 1-SD, 1-DD Un mode de réalisation du modèle de contexte utilisé selon la présente invention est décrit ci-après. Ce modèle utilise des bits dans une unité de codage sur la base des dépendances spatiales et spectrales des coefficients. Les valeurs binaires disponibles des coefficients voisins et des coefficients parents peuvent être utilisés pour créer des contextes. Cependant, les contextes sont en relation causale pour assurer la capacité de décodage et sont selon des petits nombres pour une adaptation efficiente. La présente invention propose un modèle de contexte afin de mobiliser le train de bit créé par des coefficients selon l'ordre de signification binaire noyé pour le codeur par entropie binaire. La figure 37 représente les coefficients voisins pour chaque coefficient d'une unité de codage. Par report à la figure 37, les coefficients voisins sont repérés à l'aide des notations géographiques évidentes (par exemple N = nord, NE = nord-est, etc.). Un coefficient étant donné, tel que P sur la figure 37, et un plan mémoire binaire courant étant donné, le modèle de contexte peut utiliser n'importe quelle information provenant de la totalité de l'unité de codage avant le plan mémoire binaire donné. Le coefficient parent du coefficient présent est également utilisé pour ce modèle de contexte. Les bits de tête sont les données les plus compressibles. Par conséquent, une valeur importante de contexte ou de conditionnement est utilisée pour améliorer la compression. Au lieu d'utiliser les valeurs de coefficients voisins ou parents afin de déterminer le contexte pour les bits courants du coefficient courant, l'information est réduite jusqu'à deux bits de signalisation décrits en conjonction avec la figure 13A. Cette information peut être stockée en mémoire ou peut être calculée dynamiquement à partir du coefficient voisin ou parent. Mise en oeuvre du noyage pour un stockage sur disque Un mode de réalisation du schéma de noyage pour la présente invention est basé sur le fait que, lors du démarrage du codage des données, la totalité de la mémoire tampon de bande est pleine de données de telle sorte qu'il n'existe pas d'espace supplémentaire disponible dans la bande pour une utilisation en tant que mémoire d'espace de travail. La présente invention écrit certaines des données moins importantes dans la mémoire pour qu'elles soient noyées ultérieurement. Selon la présente invention, les données qui doivent être noyées sont stockées en mémoire et ce sont les données moins importantes. Les données plus importantes sont codées directement. Les données les moins importantes comprennent un certain nombre des bits des poids les plus faibles. Selon un mode de réalisation, si une partie de chaque coefficient est écrite en retour en mémoire pour un codage ultérieur, les bits de tête et de queue doivent être connus de même que le fait de déterminer si le bit de signe a été produit afin d'assurer un codage approprié. Selon un mode de réalisation, deux bits de signalisation ou plus (par exemple 3, 4, 5, etc.) sont utilisés pour indiquer l'information de tête, de queue et de signe. Selon un mode de réalisation dans lequel des emplacements de mémoire de 8 bits sont utilisés, deux bits de signalisation indiquent l'information de tête, de queue et de signe. L'utilisation de deux bits de signalisation permet d'écrire en retour en mémoire les six niveaux d'importance les moins importants à l'aide des deux bits de signalisation. Un bit de signal indique si oui ou non le bit le plus important des six niveaux d'importance est un bit de tête ou de queue. Si le premier bit de signalisation indique qu'il s'agit d'un bit de tête, alors le second bit de signalisation est le signe pour le coefficient. Par ailleurs, si le premier bit de signalisation indique que le bit de poids fort des données écrites en retour en mémoire est un bit de queue, alors le second bit de signalisation est un bit de signalisation libre qui peut indiquer une information de queue additionnelle telle que par exemple si le bit de queue le plus important est le premier bit de queue ou un bit de queue ultérieur. La figure 13A représente un coefficient divisé selon des données les plus importantes 1301 appelées MIC et des données moins importantes 1302 appelées LIC. Selon un mode de réalisation, les données MIC comprennent les 6 bits d'ordre plus élevé de chaque coefficient tandis que les données LIC comprennent les 6 bits d'ordre plus faible. Les données les plus importantes 1301 sont envoyées sur le modèle de contexte pour être codées immédiatement selon un ordre de coefficient. Aucun tamponnage dans une mémoire externe n'est nécessaire pour ces données. Les données moins importantes 1302 sont écrites en mémoire (par exemple dans une RAM) pour être codées ultérieurement et noyées. En outre, les deux bits de signalisation sont dans les données en mémoire. Le bit de signalisation 1303 indique si le bit de poids le plus fort dans les données écrites en mémoire est un bit de tête. Le bit de signalisation 1304 donne le signe pour le coefficient ou indique si le premier bit de queue est contenu dans les données ou non. Il est à noter que les bits de signalisation peuvent être stockés d'une façon concaténée avec les données moins importantes 1302 ou peuvent être stockés dans une autre mémoire ou un autre emplacement mémoire qui est associé avec la mémoire qui stocke les données moins importantes 1302 de telle sorte que le bit de signalisation associé à chaque partie d'un coefficient puisse être identifié. Des exemples présentés au niveau du tableau 5 représentent l'utilisation de deux bits de signalisation. Les colonnes du corps du tableau 5 sont destinées à correspondre avec les types de données de la figure 13A. Les bits de signe sont indiqués par "S", les bits de queue sont indiqués par "T", des bits "ne pas prêter attention" sont indiqués par "x", la valeur du bit de queue est indiquée par "h" ou "t". Dans le tableau 5, h=0 et t=1 pour les bits de signalisation. Selon un autre mode de réalisation, les conventions peuvent être inversées. Selon un mode de réalisation, un bit de signe dans le tableau 5 de 0 indique un signe positif tandis qu'un bit de signe dans le tableau 5 de 1 indique un signe négatif. Une assignation opposée peut être utilisée. Il est à noter que le bit de signe est toujours maintenu avec le premier bit "actif' de telle sorte qu'il peut être codé en même temps pour le noyage. Tableau 5 Valeur Le plus important Le moins important Bits de signalisation (sans perte) (plan mémoire noyé) lxxxx x 0000000 01ITTTT h s lxxxxx x 0000000 1lT=lT h s lxxxxxx S 0000001 TTTTT= t 0 lxxxxxxx S 000001T TTT111TT t 1 lxxxxxxxx S 00001TT TT'TrTT t 1 lxxxxxxx S 000 lTTT TTTTTT t 1 Dans le tableau 5 présenté ci-avant, "T" se rapporte au bit correspondant dans le coefficient et peut être 0 ou 1. Selon un mode de réalisation, pendant le décodage, lorsque les données les plus importantes sont décodées, elles sont écrites en mémoire et dans le même temps, les deux bits de signalisation appropriés sont décrits en mémoire afin d'initialiser la mémoire pour stocker les données moins importantes. (En fonction de l'alignement des coefficients, certaines des données les plus importantes peuvent être stockées dans le second octet également). Avec cette initialisation, le décodage des données moins importantes à raison d'un plan mémoire binaire à la fois nécessite seulement la lecture puis l'écriture d'un octet (ou moins dans certains modes de réalisation) par coefficient. Lorsque les coefficients sont lus pour être entrés sur la transformation inverse, ils sont convertis selon une forme numérique normale (par exemple une forme de complément à deux). En plus des "données les plus importantes" et des "données moins importantes", il peut y avoir également des données qui sont écartées ou quantifiées pendant le codage. Les coefficients sont divisés par un facteur d'échelle de quantification 2Q-1. (La quantification des coefficients est décrite selon le standard JPEG). Selon la présente invention, la quantification est une puissance de deux puisqu'une division est réalisée en écartant des plans mémoire binaires. Par exemple, Q= 1 représente une division par 1 et par conséquent, les coefficients ne varient pas tandis que Q=2 représente une division par 2, ce qui signifie qu'un plan mémoire binaire est écarté. Ces divisions peuvent être mises en oeuvre en utilisant des décalages (par exemple un décalage d'une position de bit pour q=2). Les figures 13B et 13C représentent le format des données les plus importantes et des données moins importantes lorsque à la fois une quantification et un alignement de coefficient pour des sous-bandes différentes sont pris en compte. La figure 13B représente le cas sans perte selon lequel aucune données n'est écartée. Conformément à la convention du JPEG, ceci est appelé quantification Q=1 du fait que le coefficient réel est divisé par 1 (sans perte). Les données les plus importantes sont indiquées sans hachure tandis que les données les moins importantes sont hachurées. La figure 13C représente le cas selon lequel un plan mémoire binaire de données a été écarté (c'est-à-dire Q=2) du fait que la mise à l'écart d'un plan mémoire binaire est équivalent à une division par 2. Le plan mémoire binaire écarté est représenté en noir. Il est à noter qu'en plus de ce qui est représenté sur les figures 13B et 13C, les données les plus importantes incluent également les coefficients SS. Bien que des coefficients soient représentés pour des données de 8 bits, l'utilisation d'un espace couleur réversible nécessiterait des données de 9 bits, ce qui augmente la dimension des coefficients de chrominance d'un bit. Selon la présente invention, le modèle de contexte à bit de signe comprend le codage du signe après le dernier bit de tête. Il y a trois contextes pour le signe en fonction de si le coefficient N est positif, négatif ou de si le signe n'est pas encore codé. Selon une variante, un contexte peut être utilisé pour le signe ou le signe peut toujours être codé en tant 50 %. Ordre de codage pour les coefficients d'ondelette Un mode de réalisation de l'ordre de codage pour les coefficients d'ondelette est résumé selon le pseudo-code qui suit: - codage des données les plus importantes - codage de la position du premier plan mémoire binaire moins important avec des données pour chaque plan mémoire binaire de données moins importantes, faire: - codage d'un plan mémoire binaire de données moins importantes Lorsque les données les plus importantes sont codées, le premier plan mémoire binaire dans les données moins importantes qui ne sont pas constituées en totalité par des bits de tête à zéro est déterminé pour chaque coefficient. Ceci permet au codeur et au décodeur de prédire des plans mémoire binaires entiers de données moins importantes. Ceci est particulièrement utile pour coder des unités de données de noire et blanc o toute l'information est dans les coefficients K et o les coefficients CMY (cyan, magenta, jaune) sont tous à zéro. Le fait de ne pas coder des plans mémoire binaires individuellement contribue au taux de compression, plus particulièrement si R2(7) est le code RLL le plus long disponible. (Voir les brevets des États-Unis nos 5 381 145 et 5 583 500 pour une description des codes "R2"). Cependant, si les quatre noyaux de codages parallèles fonctionnent sur des composant de façon synchrone, la vitesse de traitement est déterminée par le composant avec le plus de plans memoire binaires; les noyaux assignés aux autres composant sont au repos pendant des plans mémoire binaires non codés. Un organigramme qui représente un mode de réalisation du fonctionnement du pseudo-code présenté ci-avant est représenté sur la figure 14. Par report à la figure 14, le modèle de contexte commence en codant le groupage le plus important (MIC) (bloc de traitement 1401). Après codage du MIC, la logique de traitement code la position du premier plan mémoire binaire de groupage le moins important (MIC) avec des données (bloc de traitement 1402). Ceci s'applique à la totalité de l'unité de codage. Soit 0, 1, 2, 3, 4, 5 ou 6 plans mémoire binaires contiendront des données si il y a 6 plans mémoire binaires dans LIC. Puis la logique de traitement établit une variable de plan mémoire binaire LIC courante pour le premier plan mémoire binaire LIC avec des données (bloc de traitement 1403). Puis un test détermine si tous les plans mémoire binaires LIC avec des données ont été codés (bloc de traitement 1404). S'il en est ainsi, le processus se termine; si ça n'est pas le cas, la logique de traitement code un plan mémoire binaire LIC (bloc de traitement 1405) et établit la variable de plan mémoire binaire LIC courante au plan mémoire binaire LIC suivant (bloc de traitement 1406). Ensuite, le traitement boucle en retour sur le bloc de traitement 1404. Ordre de codage pour les données les plus importantes Un mode de réalisation de l'ordre de codage pour les données les plus importantes est comme suit: pour chaque arborescence faire: codage du coefficient SS réalisation prédiction MIC (ou réalisation prédiction d'arborescence) pour chaque coefficient non SS: pour chaque bit (plan mémoire binaire) avec les données, faire: codage du bit de tête ou de queue si le coefficient est non nul: codage du bit de signe Les données les plus importantes sont traitées à raison d'une arborescence d'ondelette à la fois. Une prédiction de MIC détermine des plans mémoire binaires qui sont tous des bits de tête à zéro pour tous les coefficients non SS dans l'arborescence d'ondelette. Selon un mode de réalisation, un nombre de quatre bits suffit pour identifier le premier plan mémoire binaire à coder individuellement. Selon un autre mode de réalisation représenté sur la figure 15, un bit est utilisé pour indiquer que tous les coefficients non SS 1501 de la seconde décomposition (région hachurée) sont à zéro et un autre bit pour indiquer que tous les coefficients non SS 1503 de la première décomposition sont à zéro. Ces deux bits sont utilisés en plus des quatre bits utilisés pour spécifier le premier plan mémoire binaire. Selon un autre mode de réalisation, une prédiction d'arborescence peut être utilisée lorsque les coefficients SS sont codés puis pour la totalité de l'arborescence, le premier plan mémoire binaire avec des bits de tête non à zéro est codé. Afin de prendre en compte un retard de revisite de contexte si un conditionnement est utilisé pour le codage SS et de premier plan mémoire binaire, le codage/décodage réel des bits du coefficient SS (qui est de 9 bits si un espace couleur réversible est utilisé) et la valeur de prédiction peuvent être alternés. Si un conditionnement n'est pas utilisé, l'alternance n'est pas requise. Comme discuté préalablement, le modèle de contexte de la présente invention utilise une prédiction. Un mode de réalisation de prédiction peut être utilisé pour les données les plus importantes, c'est-à-dire le groupage le plus important (MIC). Selon un mode de réalisation, comme représenté sur la figure 15, pour chaque arborescence, 6 bits sont utilisés: 4 pour un plan mémoire binaire maximum, 1 pour tout à 0 de niveau zéro, 1 pour tout à zéro de niveau 1. Si le plan mémoire binaire maximum vaut zéro, alors les deux bits supplémentaires sont redondants mais ceci n'est pas important. Sinon, une décision de codage adaptatif est utilisée pour décider "zéro (isolé)/non à zéro". Pour des coefficients non à zéro, il peut être en outre spécifié que: - une opération M-aire pour déterminer la valeur et le signe du coefficient (total: 2 cycles par coefficient). - une décision de codage adaptatif est utilisée pour décider " 1/non 1". Un second cycle est utilisé pour obtenir que le signe avec l'amplitude est 1 et le signe et la valeur pour l'amplitude supérieure à 1. (Total: 3 cycles par coefficient) - de façon similaire, " l/non 1", "+2,3/non 2,3" etc. peut être réalisé pour un total de 4 cycles par coefficient. -et la procédure qui suit: si tous les plans mémoire binaires dans le MIC ne sont pas à zéro, alors codage adaptatif d'une décision "-1, 0, 1" ou "autre" si "-1, 0, 1" alors codage adaptatif d'une décision "O" ou "- 1, + 1" si "-1,+1" alors spécifier bit de signe sinon codage adaptatif d'une décision "-3, -2, 2, 3" ou "autres" si "-3, -2,2,3" alors spécifier "-2,2" ou "-3,3" avec un bit spécifier bit de signe sinon spécifier valeur avec le nombre maximum de bits qui a été déterminé pour l'arborescence spécifier bit de signe Il est à noter que "spécifier" un bit ou des bits peuvent être un codage adaptatif qui code à une probabilité de 50 % ou qui copie simplement des bits dans le train de données codé. Si tous les plans mémoire binaires ou la plupart d'entre eux doivent être codés individuellement, certains niveaux de la transformation peuvent comporter des plans mémoire binaires inutilisés du fait que des plans mémoire binaires "d'alignement- inutilisé" ne sont jamais codés. Il y a un certain nombre d'options pour manipuler un retard entre bit et contexte pour les bits de tête et des bits de queue. Un procédé consiste à établir trois coefficients en alternance: un DD, un SD et un DS. Le bit de signe pour des coefficients non à zéro peut être codé à la fin du coefficient - puisque toutes les données les plus importantes sont toujours sans perte, le fait de suivre exactement le premier bit "activé" n'est pas nécessaire. Un mode de réalisation d'un organigramme qui illustre le pseudo-code pour coder le groupage le plus important est représenté sur la figure 16. Par report à la figure 16, le processus commence par le fait que la logique de traitement établit l'arborescence courante à la première arborescence (bloc de traitement 1601). Puis la logique de traitement code le coefficient SS (bloc de traitement 1602). Après codage du coefficient SS, la logique de traitement code la position du premier plan mémoire binaire avec des données dans le MIC de l'arborescence (bloc de traitement 1603) ou réalise la prédiction de MIC. Puis la logique de traitement teste si le MIC de la totalité de l'arborescence est à zéro (bloc de traitement 1604). Si le MIC de la totalité de l'arborescence est à zéro, le traitement se poursuit au niveau d'un bloc de traitement 1614; sinon, le traitement réalise une transition sur un bloc de traitement 1605 au niveau duquel la logique de traitement établit le coefficient courant au premier coefficient non SS dans l'arborescence. Après établissement du coefficient courant au premier coefficient non SS dans l'arborescence, la logique de traitement établit le temps de bit courant au premier plan mémoire binaire avec les données (bloc de traitement 1606). Puis la logique de traitement code un bit du coefficient courant dans le plan mémoire binaire courant (bloc de traitement 1607). Ensuite, la logique de traitement réalise un test pour déterminer si oui ou non tous les plans mémoire binaires ont été codés (bloc de traitement 1608). Si tous les plans mémoire binaires n'ont pas été codés, la logique de traitement établit le plan mémoire binaire courant au plan mémoirebinaire suivant (bloc de traitement 1609) et réalise une transition sur un bloc de traitement 1607. Si tous les plans mémoire binaires ont été codés, la logique de traitement teste si le coefficient courant est à zéro (bloc de traitement 1610). Si le coefficient courant n'est pas à zéro, la logique de traitement code le bit de signe (bloc de traitement 1611) et le traitement réalise une transition sur le bloc de traitement 1613. Si le coefficient courant est à zéro, alors la logique de traitement réalise une transition sur le bloc de traitement 1613. Au niveau du bloc de traitement 1613, la logique de traitement teste si tous les coefficients de l'arborescence ont été codés. Si tous les coefficients dans l'arborescence n'ont pas été codés, alors la logique de traitement établi le coefficient courant au coefficient suivant dans l'arborescence (bloc de traitement 1612) et le traitement réalise une transition sur un bloc de traitement 1606. Si tous les coefficients de l'arborescence ont été codés, alors la logique de traitement teste si oui ou non toutes les arborescences ont été codées (bloc de traitement 1614). Si toutes les arborescences ont été codées, le traitement se termine; sinon, le traitement réalise une transition sur un bloc de traitement 1615 au niveau duquel la logique de traitement établit l'arborescence courante à l'arborescence suivante et le traitement réalise une transition sur un bloc de traitement 1602. La figure 17 est un schéma fonctionnel d'un mode de réalisation de l'unité de formatage et du modèle de contexte utilisé pendant la passe de codage des données les plus importantes. Par report à la figure 17, un décaleur en barillet 1701 est couplé pour recevoir l'amplitude du coefficient et un niveau de quantification qui a été utilisé pendant le codage pour empêcher que les données les plus importantes n'excèdent la largeur de bande de disque minimum, ce qui assure une décompression sans perte. Par conséquent, le niveau de quantification commande le décaleur en barillet 1701. Selon un mode de réalisation, le décaleur en barillet 1701 décale les bits d'amplitude de 0, 1, 2 ou 3 afin de supporter des quantifications de 1, 2, 4 ou 8. Selon un autre mode de réalisation, un nombre de quantifications plus faible ou plus élevé sont supportées, tel que seulement deux quantifications. La sortie du décaleur en barillet 1701 comprend les six plans mémoire binaires d'ordre plus faible qui sont les données moins importantes et le reste des bits d'ordre plus élevé qui sont les données les plus importantes. Selon un autre mode de réalisation, un mécanisme de séparation simple est utilisé pour produire ces deux sorties. Les deux sorties du décaleur en barillet 1701 sont entrées sur une première unité de plan mémoire binaire 1702 qui détermine quels plans mémoire binaires comportent des données. La première unité de plan mémoire binaire 1702 est utilisée pour trouver le plan mémoire binaire muni d'un premier bit "activé" pour la totalité de l'unité de codage (voir figure 10) en vue d'une utilisation lors du traitement des données moins importantes. Une autre unité de plan mémoire binaire 1706 est couplée pour recevoir les données les plus importantes émises en sortie depuis le décaleur en barillet 1701 également. La première unité de plan mémoire binaire 1706 est utilisée pour chaque arborescence lors du traitement des données plus importantes. Un mode de réalisation de la première unité de plan mémoire binaire est décrit ci-après par report à la figure 18. Le décaleur en barillet 1701 est également couplé à des unités de comparaison 1703 et 1704 qui réalisent deux comparaisons sur des données les plus importantes afin de générer l'information de signalisation de deux bits pour les données moins importantes. L'unité de comparaison 1703 détermine si les données les plus importantes sont égales à zéro, ce qui indique si oui ou non un bit de queue s'est déjà produit (c'est-à- dire si oui ou non le codage est encore au niveau de la queue). La sortie de l'unité de comparaison 1703 est le bit activé de queue. Une unité de comparaison 1704 détermine si les données les plus importantes sont égales à 1. Si les données les plus importantes sont égales à 1, alors au vu du tableau 5 présenté ci- avant, la sortie vaut 0. La sortie de l'unité de comparaison 1704 est couplée à une entrée du multiplexeur (MUX) 1705. L'autre entrée sur le multiplexeur 1705 est couplée pour recevoir le bit de signe. Une entrée de sélection du multiplexeur 1705 est commandée par la sortie de l'unité de comparaison 1703 de telle sorte que si la sortie de l'unité de comparaison 1703 indique que le bit est un bit de queue, alors la sortie du multiplexeur 1705 est un bit "de première queue" 1304. Cependant, si la sortie de l'unité de comparaison 1703 indique que le bit est le bit de tête, alors le multiplexeur 1705 est commandé pour émettre en sortie le signe. Selon un mode de réalisation, les unités de comparaison 1703 et 1704 peuvent être mises en oeuvre en utilisant des comparateurs de bits simples. Une mémoire 1707 est couplée pour recevoir des bits de signe, les données les plus importantes émises en sortie depuis le décaleur en barillet 1701 et la sortie de l'unité de plan mémoire binaire 1706. La mémoire 1707 est utilisée pour regarder les coefficients de telle sorte qu'une information de parent et voisine soit disponible pour le conditionnement. L'organisation de la mémoire 1707 fait l'objet d'une discussion ci-après. Des modèles du contexte (CM) 1710-1712 assurent le conditionnement pour les bits de signe, de tête, de queue ainsi que pour les autres bits. Chacun de ces modèles de contexte est décrit ci- après. La figure 18 représente un mode de réalisation d'une première unité de plan mémoire binaire. Par report à la figure 18, la première unité de plan mémoire binaire 1800 comprend une porte OU 1801 couplée pour recevoir un coefficient et un retour provenant de la sortie d'un registre 1802. La sortie de la porte OU 1801 est couplée à l'entrée du registre 1802. Le registre 1802 est commandé par un début d'une indication de remise à l'état initial d'unité d'arborescence/codage. La sortie du registre 1802 est couplée à un codeur de priorité 1803. La sortie de codeur de priorité 1803 est la sortie de la première unité de plan mémoire binaire 1800. Au début, le registre 1802 est mis à zéro. Chaque bit du registre 1802 est soumis à une logique OU avec chaque bit du coefficient d'entrée en utilisant la porte OU 1801. Pour chaque bit du coefficient qui vaut 0, la valeur du registre 1802 reste sa valeur courante, laquelle est émise en sortie sur le codeur de priorité. Pour chaque bit du coefficient qui vaut 1 (par exemple le premier), la sortie de la porte OU 1801 sur le registre 1802 vaut 1, qui est émis en sortie sur le codeur de priorité 1803. Le codeur de priorité 1803 localise alors le premier 1 qui est le premier plan mémoire binaire du coefficient qui vaut 1. Ordre de traitement pour les données moins importantes Chaque poids de bit pour les données les moins importantes est traité comme suit: pour chaque arborescence faire pour chaque coefficient faire si début d'intervalle de prédiction faire prédiction si prédiction non active coder bit de tête ou de queue si premier bit "activé" coder bit de signe Un mode de réalisation du processus de codage d'un plan mémoire binaire LIC est représenté au niveau de l'organigramme de la figure 19. Le processus de codage d'un plan mémoire binaire LIC commence par le fait que la logique de traitement établit la relation courante à la première arborescence (bloc de traitement 1901). Puis la logique de traitement établit le coefficient courant au premier coefficient non SS dans l'arborescence (bloc de traitement 1902). Après établissement du coefficient courant au premier coefficient non SS dans l'arborescence, la logique de traitement teste si le codage est au début d'un intervalle de prédiction (bloc de traitement 1903). Si le processus de codage est au début d'un intervalle de prédiction, la logique de traitement réalise une prédiction (traitement 1904) et le traitement se poursuit au niveau d'un bloc de traitement 1905. Si le processus de codage n'est pas au début d'un intervalle de prédiction, la logique de traitement réalise une transition directement sur le bloc de traitement 1905 et détermine si prédiction est active. Si prédiction est active, le traitement se poursuit au niveau d'un bloc de traitement 1909 au niveau duquel la logique de traitement détermine si tous les coefficients dans l'arborescence sont codés. Si tous les coefficients dans l'arborescence sont codés, le traitement se poursuit au niveau du bloc de traitement 1913; sinon, la logique de traitement établit le coefficient courant au coefficient suivant dans l'arborescence après l'intervalle de prédiction (bloc de traitement 1910) et le traitement réalise une transition sur le bloc de traitement 1903. Si la prédiction n'est pas active, la logique de traitement code le bit de tête ou de queue (bloc de traitement 1906) puis teste si le premier bit non à zéro a été reçu (bloc de traitement 1917). Si le premier bit non à zéro n'a pas été reçu, le traitement se poursuit au niveau d'un bloc de traitement 1911. Si le premier bit non à zéro à été reçu, le traitement se poursuit au niveau du bloc de traitement 1908 au niveau duquel la logique de traitement code le bit de signe et le traitement réalise ensuite une transition sur le bloc de traitement 1411. Au niveau du bloc de traitement 1911, la logique de traitement détermine si tous les coefficients dans l'arborescence ont été codés. Si tous les coefficients dans l'arborescence n'ont pas été codés, la logique de traitement établit le coefficient courant au nouveau coefficient dans l'arborescence (bloc de traitement 1912) et réalise une transition sur le bloc de traitement 1903. Si tous les coefficients dans l'arborescence ont été codés, le traitement réalise une transition sur le bloc de traitement 1913 au niveau duquel la logique de traitement teste si oui ou non toutes les arborescences ont été codées. Si toutes les arborescences n'ont pas été codées, la logique de traitement établit l'arborescence courante à l'arborescence suivante (bloc de traitement 1914) et le traitement se poursuit au niveau du bloc de traitement 1902. Si toutes les arborescences ont été codées, le traitement se termine. Le traitement de l'arborescence d'ondelette à un instant donné peut ne pas être important mais puisque la transformation a pour effet que des données sont lues et écrites selon cet ordre, ceci peut être commode. Si des données sont traitées au moyen d'arborescences d'ondelette, un retard entre bit et contexte peut être adapté en réalisant une alternance entre des coefficients DD, SD et DS (alternance entre des sous-arborescences). Sinon, une sous-bande à la fois peut être codée. Indépendamment de l'onde choisie, les bits de tête/queue inutilisés du fait de l'alignement de sous-bandes différentes ne sont jamais codés et ne nécessitent pas des cycles de repos. La figure 20 est un schéma fonctionnel d'un mode de réalisation des modèles de prédiction et de contexte pour des données moins importantes. Selon un mode de réalisation, les données les plus importantes et les données moins importantes utilisent les mêmes modèles de contexte (CM) qui assurent les conditionnements pour les bits de signe, de tête et de queue. Par report à la figure 20, les modèles de contexte 2001 à 2003 sont couplés aux données d'entrée. Un modèle de contexte de signe 2001 est couplé pour recevoir le bit de queue, un signal de bit de signe/premier bit de queue et les données. Le modèle de contexte de bit de tête 2002 est couplé pour recevoir le bit de queue et les données. Le modèle de contexte de bit de queue 2003 est couplé pour recevoir les bits de queue, un signal de bit de signe/premier bit de queue et les données. En réponse à leurs entrées, chacun des modèles de contexte 2001 à 2003 génère un contexte. Les contextes générés par les modèles de contexte 2001 à 2003 sont couplés à des entrées d'un multiplexeur 2004. Le multiplexeur 2004 est commandé par les bits précédants et par la représentation elle-même. Le modèle de contexte de tête 2002 est utilisé jusqu'à ce qu'un bit soit vu au niveau des entrées de données. Le modèle de contexte de signe 2001 est utilisé lorsque le dernier bit était le premier bit 1 de la tête. Ensuite, le modèle de contexte de queue 2003 est utilisé. La sortie du multiplexeur 2004 est couplée à une unité "= tête ?" 2005 et à un tampon premier entré/premier sorti (FIFO) 2006. L'unité "= tête ?" 2005 teste si le contexte courant est un contexte de bit de tête avec des bits de tête à zéro dans le voisin et le parent. Si tout le contexte est dans la tête, un signal provenant de l'unité "= tête ?" 2005 met à zéro le FIFO 2006. * Les contextes et les résultats sont tamponnés dans le FIFO 2006 ou dans toute autre mémoire pour l'intervalle de prédiction. A la fin de l'intervalle, si nécessaire, une décision de prédiction et/ou des décisions individuelles sont codées. Si les coefficients sont traités à raison d'une arborescence d'ondelette à la fois, le FIFO pour la prédiction peut être un unique FIFO utilisé pour toutes les secondes ou de multiples FIFO peuvent être utilisés à raison d'un pour chaque sousbande. Il est à noter que si il était commode de réduire le multiplexage, les données les plus importantes pourraient utiliser également aussi une prédiction. Cependant, il peut être quelque peu redondant d'utiliser à la fois une prédiction et un premier plan mémoire binaire pour chaque arborescence. Si un noyau assigné à une composante code un bit de signe, des noyaux assignés à de quelconques autres composantes qui ne codent pas un bit de signe au niveau du même plan mémoire binaire seront au repos. Par conséquent, jusqu'à quatre cycles d'horloge pouvaient être utilisés pour des bits de signe si chaque noyau code un bit de signe sur un plan mémoire binaire différent. Selon un mode de réalisation, il y a jusqu'à six bits de tête ou de queue par coefficient. Un problème de cadencement possible est constitué par le fait que le groupage le plus important comprime suffisamment bien quand le disque est au repos pendant le décodage d'une partie de ces données. S'il y a une largeur de bande de mémoire suffisante pour le tampon de bande, une prédiction peut être utilisée pour traiter les données les plus importantes plus rapidement. Puis les données moins importantes peuvent obtenir un début de tête. Par ailleurs, il serait bien si le disque disposait d'un débit de transfert par salve qui était plus élevé que le débit soutenu maximum. Les disques durs comportent normalement un tampon relativement grand et le fait de lire éventuellement dans ce tampon éliminerait le temps de repos. Conditionnement d'une partie du modèle de contexte Le conditionnement utilisé dans le modèle de contexte dépend de compromis entre le coût des composants et la compression. Par conséquent, dans les sections qui suivent, de nombreuses options pour le conditionnement sont présentées pour que des concepteurs les considèrent. Modèle de contexte pour les coefficients SS Selon un mode de réalisation du modèle de contexte, les coefficients SS ne sont pas codés. Puisqu'ils constituent seulement 1/256-ième des données originales, il y a peu de gain à attendre du fait de les coder. Si leur codage est souhaité, ils pourraient être manipulés au moyen d'un codage de Gray, d'un conditionnement sur un bit précédent dans le même coefficient et/ou sur un bit correspondant dans le coefficient précédent. Modèle de contexte pour l'information de premier plan mémoire binaire Les quatre bits de l'information de premier plan mémoire binaire pour les données les plus importantes dans chaque arborescence d'ondelette peuvent être traités d'une façon similaire aux coefficients SS. L'augmentation de la taille des données originales est de seulement 1/512-ième. Selon un mode de réalisation, ces bits peuvent être codés du fait de leur petite taille par comparaison avec les données originales ou peuvent subir un codage de gray ou un quelconque conditionnement. De façon similaire, si six bits sont utilisés conformément à la figure 15, ils peuvent être traités tout comme des coefficients SS. Modèle de contexte pour les bits de tête La figure 21 est un schéma fonctionnel d'un mode de réalisation du modèle de contexte qui assure le conditionnement pour les bits de tête. Par report à la figure 21, le modèle de contexte 2100 contient des registres à décalage tels que ceux trouvés dans un modèle de contexte de plan mémoire binaire. Une différence importante est constituée par le fait qu'au lieu d'utiliser des bits de coefficient précédents par rapport au plan mémoire binaire courant, le conditionnement est basé sur une information de queue qui utilise tout les plans mémoire binaires précédents et une information codée préalablement dans le plan mémoire binaire courant. Par ailleurs, certains bits pour identifier le plan mémoire binaire codé ou le groupe de plans mémoire binaires codés et la sous-bande ou le groupe de sous- bandes codés sont générés par le niveau d'importance et par le groupage de sous- bandes. Par report à la figure 21, le modèle de contexte comprend deux entrées, soit le niveau significatif courant 2110 et les coefficients en provenance de la mémoire 2111. Le niveau significatif courant 2110 est couplé sur des entrées du bloc de générateur(s) d'information de queue/de bit 2101 et du bloc de groupage de niveau d'importance et de sous-bande 2102. Les coefficients provenant de la mémoire sont également couplés au bloc 2101 et aux registres 2103 à2106. Le bloc 2101 reçoit les coefficients et détermine s'il s'agit d'un bit 1 ou non. Selon un mode de réalisation, le bloc 2101 détermine également d'o provient le bit 1. La sortie du bloc 2101 est constituée par un ou deux bits sur la base de l'information de queue. Selon un mode de réalisation, l'information de queue se rapporte à si oui ou non le premier bit d'amplitude non à zéro a été observé (par exemple si oui ou non le premier "bit activé" a été observé) et s'il en est ainsi, elle se rapporte à combien de plans mémoire binaires antérieur il se trouve. Le tableau 6 décrit les bits d'information de queue. Tableau 6 - Définition de l'information de queue Queue Définition 0 Aucun bit activé n'est encore observé 1 Le premier bit activé se trouvait dans le dernier plan mémoire binaire 2 Le premier bit activé se trouvait deux ou trois plans mémoire binaires avant 3 Le premier bit activé se trouvait au- delà de trois plans mémoire binaires avant Au vu de l'information de queue de 2 bits, une valeur "de queue" de 1 bit est synthétisée pour indiquer si l'information de queue est à zéro ou non. Selon un mode de réalisation, l'information de queue et les bits de queue sont mis à jour immédiatement après que le coefficient a été codé. Selon un autre mode de réalisation, une mise à jour se produit ultérieurement afin de permettre une génération de contexte parallèle. En outre, les deux bits peuvent être utilisés pour indiquer le niveau d'importance qui est codé. Les deux premiers plans mémoire binaires utilisent la valeur 0, les deux seconds 1, les deux troisièmes 2, et les plans mémoire binaires restants 3. En outre, il y a un codage RLL des bits qui sont tous des bits de tête à zéro. Les 10 bits de contexte pour les bits de tête incluent les 2 bits d'information dont chacun provient du parent et les coefficients ouest, 1 bit d'information provenant de chacun des coefficients nord, est, sud-ouest et sud et 2 bits d'information de niveau d'importance. Selon un mode de réalisation, l'information de queue n'est pas utilisée pour une certaine bande de fréquence voir pour toutes les bandes de fréquence. Ceci permet le décodage d'une bande de fréquence sans décoder préalablement son parent. Selon un autre mode de réalisation, l'assignation des plans mémoire binaires de chaque bande de fréquence à des niveaux d'importance utilise un seul alignement. La détermination de l'information de queue du parent utilise un second alignement qui utilise moins de plans mémoire binaires du parent qu'il n'en a été réellement codés. Ceci permet à un certain plan mémoire binaire d'une bande de fréquence d'être décodé sans décoder les plans mémoire binaires correspondants du parent dans le même niveau d'importance (voir figure 38). Par exemple, une image peut être codée avec un alignement pyramidal mais avec une information de queue de parent basée sur un alignement MSE (voir figure 39). Ceci permet au décodeur de décoder selon un alignement pyramidal afin de simuler un alignement MSE ou afin de simuler un quelconque alignement entre pyramidal et MSE. Par retour à la figure 21, les sorties du bloc 2101 sont couplées aux entrées des registres 2103 à 2106. Les registres 2103 à 2106 accumulent les données voisines. Par exemple, le registre à haut/gauche maintient des bits pendant la ligne qui est immédiatement au-dessus du coefficient courant. Le registre à décalage courant contient des bits dans la ligne courante de coefficients tandis que le registre à décalage au-dessous/droite 2105 contient les lignes provenant de la ligne immédiatement au-dessous du registre à décalage au-dessous. Pour finir, le registre de parent 2106 maintient les données de parent. Les sorties de registre à décalage forment le contexte. La sortie du bloc de niveau d'importance et de groupage 2102 peut également être utilisée pour un contexte. Cette sortie constituerait une partie du contexte lorsque les sous-bandes et les différents niveaux doivent être codés sur le même contexte. Si c'est le cas, la sortie du bloc 2102 est combinée avec les sorties des registres 2103 à 2106 afin de former le contexte. Si cela n'est pas le cas, le contexte comprend seulement les sorties de registre 2103 à 2106. La sortie provenant du modèle de contexte 2100 est un bit. Un codage peut être effectué en réalisant une alternance entre des coefficients DD, SD et DS pour permettre un retard entre bit et contexte des données provenant du plan mémoire binaire courant (alternance entre des sous-arborescences). Il est à noter qu'une mémoire est nécessaire pour stocker des coefficients nécessaires pour le positionnement (voir figure 17). L'utilisation de la mémoire pour un mode de réalisation des modèles de contexte avec un conditionnement sur tous les voisins et parents est représentée sur la figure 22. Un ordre de transformation de couture courte est supposé. (Une mémoire externe pourrait être utilisée pour supporter un ordre de transformation de couture longue. Ceci nécessiterait à la fois un stockage de mémoire supplémentaire et une largeur de bande supplémentaire). Le conditionnement sur des parents de niveau haut est particulièrement coûteux. Le coefficient DD de niveau 4 pour une arborescence donnée n'est pas calculé tant que 16 arborescences des coefficients DD de niveau 1 pour cette arborescence ne sont pas atteintes. Par ailleurs, le stockage de la totalité des coefficients destinés à être codés ultérieurement (non ombrés sur la figure 22) est beaucoup plus coûteux que le stockage de seulement une information de queue en vue d'une utilisation ultérieure lors d'un conditionnement (en hachurée sur la figure 22). Le conditionnement de seulement une information "ouest" qui est dans la même arborescence et sur des parents qui sont générés sans données provenant des arborescences "ouest" réduirait fortement la quantité de mémoire requise. Lorsqu'une information de parent ou ouest n'est pas disponible, la copie de l'information depuis le nord ou l'est est utile. Modèle de contexte pour les bits de signe Le modèle de contexte qui assure le conditionnement pour les bits de signe est simple. Si le signe du pixel mentionné ci-avant est connu, il est utilisé pour le conditionnement. Si le bit de signe pour le pixel mentionné ci-avant est inconnu, alors le bit est non codé (R2(0) est utilisé. Selon une variante, pas de codage (R2(0)) peut être utilisé pour tous les bits de signe). La figure 23 est un schéma fonctionnel d'un mode de réalisation du modèle de contexte pour des bits de signe. Par report à la figure 23, un multiplexeur 2301 reçoit un bit de signe de nord 2303 et un bit 0 2304 (câblé par composé) et il commandé par un bit de queue nord 2302 afin d'émettre en sortie le bit de signe nord 2303 si le bit de queue nord 2302 vaut 1; sinon, le multiplexeur 2301 émet en sortie un 0. Par conséquent, le pixel nord applique le bit de queue de nord 2302 et le bit de signe de nord 2303 afin d'assurer un contexte pour le pixel au sud du pixel nord. Modèle de contexte pour les bits de queue Aucun conditionnement n'est utilisé pour les bits de queue. Selon un mode de réalisation, un état de probabilité fixe est utilisé et aucune mise à jour de probabilité n'est utilisée. Le tableau 7 représente trois options pour des codes à utiliser pour des bits de queue. La seconde option qui utilise R2(1) et R2(O) constitue un bon choix. Tableau 7 Etats de probabilité (codes) utilisés pour les bits de queue Bit de queue 1 2,3 4,... Option 1 R2(1) Code de rapport 2(0) de nombre d'or Option 2 R2(1) 2(0) 2(0) Option 3 2(0) 2(0) 2(0) Selon un mode de réalisation; le code de rapport de nombre d'or qui est bon pour des probabilités de M-60 %, L40 % vaut: Entrée Mot de code MMM 00 MML 110 ML 01 LM 10 SS 111 Résumé de case de contexte Le nombre minimum de cases de contexte qui pourrait être utilisées dans le système est comme suit. SS, premier plan mémoire binaire pour chaque arborescence, des bits de signe et de queue ne sont pas codés (le code R2(0) est utilisé). Bien qu'aucun état PEM ou qu'un bit de symbole le plus probable (MPS) n'a besoin d'être stocké, il doit être logique de sélectionner le code R2(0). Par conséquent, en fonction de comment ceci est compté, le coût des composants est de zéro ou de caser de contexte. Un codage adaptatif devrait être utilisé pour les bits de tête. Pour des données moins importantes, puisqu'un plan mémoire binaire à la fois est codé, le conditionnement sur le plan mémoire binaire n'est pas important. Pour les données les plus importantes, le premier plan mémoire binaire pour chaque arborescence d'ondelette peut réduire le nombre de plans mémoire binaires suffisamment au point que le conditionnement sur le plan mémoire binaire ne soit pas important. Il est moins clair de déterminer l'utilité du conditionnement sur la sous-bande mais celle-ci sera également ignorée dans cet exemple de contexte minimum. Les bits de queue de trois voisins et d'un parent pourraient être utilisés pour un total de quatre bits (16 cases de contexte). Une case de contexte supplémentaire peut être utilisée pour la prédiction. (Il peut être davantage commode de cartographier deux cases de contexte de tête ensemble afin de constituer de l'espace pour la prédiction de telle sorte que la dimension de mémoire soit toujours une puissance de 2). Avec quatre noyaux (nécessitant des contextes dupliqués quatre fois) et deux groupes de mémoires de contexte. par noyau, le nombre minimum decases de contexte à utiliser serait entre 128 et 144, en fonction de comment des contextes "non connus" sont comptés et de si oui ou non deux cartes de contexte de tête ont été cartographiées ensemble. Un système présentant une quantité généreuse de conditionnement est comme suit. Pour SS (9 bits) et premier plan mémoire binaire (4 Bits), utiliser 4 cases de contexte par bit, pour un total de 52 cases de contexte. (Ces cases pourraient être divisées en groupes, elles n'auraient pas à être dupliquées. Les bits de queue ne sont pas codés mais à la fois R2(0) et R2(1) sont utilisés. En fonction de comment ceci est compté, ceci coûte 0,1 ou 2 cases de contexte. Deux contextes adaptatifs et un contexte "pas de code" sont utilisés pour les bits de signe. Les bits de tête pourraient utiliser 8 bits provenant des voisins/des parents et 2 bits pour une information de sous- bande/plan mémoire binaire (1024 cases de contexte). Un contexte est utilisé pour la prédiction Un autre mode de réalisation d'un modèle de contexte incluant un mode de réalisation d'une unité de signe/amplitude qui convertit les coefficients d'entrée selon un format de signe/amplitude est décrit dans la demande de brevet des Etats-Unis de numéro de série 08/498 695 déposée le 30 juin 1995 et intitulée "Method and Apparatus For Compression Using Reversible Wavelet Transforms and an Embedded Codestream" ainsi que dans la demande de brevet des Etats-Unis de numéro de série 08/498 036 déposée le 30 juin 1995 et intitulée "Reversible Wavelet Transform and Embedded Codestream Manipulation" ainsi que dans la demande de brevet des Etats-Unis de numéro de série 08/645 518 déposée le 3 Mai 1996 et intitulée "Compression/Decompression Using Reversible Embedded Wavelets". Le modèle de contexte procure des contextes pour un codage par entropie des données. Selon un mode de réalisation, tous les codages par entropie réalisés par la présente invention est réalisé au moyen de codeurs par entropie binaires. Un unique codeur peut être utilisé pour produire un unique train de code de sortie. Selon une variante, de multiples codeurs (physiques ou virtuels) peuvent être utilisés pour produire de multiples trains de données (physiques ou virtuels). Codage M-arie pour LIC La figure 24 représente l'utilisation d'un codage M-arie pour LIC. L'utilisation du codage M-arie pour un codage réduit fonctionne en tant que prédiction (comme représenté). Tout d'abord, l'état des huit coefficients suivants est examiné. S'il y a quelque chose dans la tête, un codage par entropie est réalisé sur les bits de tête de telle sorte que tous les bits de tête sur une entropie codée soient codés à raison d'un par cycle jusqu'à ce que tous les bits de tête dans les 8 soient codés. Par retour à la figure 24, des bits de tête qui valent 1 sont codés dans les premier et troisième cycles tandis que des bits de tête qui valent 0 sont codés dans les second et quatrième cycles. Une fois que tous les bits de tête sont codés par entropie, les bits de signe et de queue sont codés lors du même cycle. Par exemple, sur la figure 24, tous les bits de signe et de queue qui suivent un bit de tête qui vaut i sont codés lors du cinquième cycle. De cette manière, le nombre global de cycles est réduit. Application de la présente invention à des systèmes d'impression La figure 25 est un schéma fonctionnel d'un mode de réalisation de zone d'entrée d'une imprimante. Par report à la figure 25, un dispositif de rendu 2501 reçoit des données sous la forme d'un langage de description de page ou d'une liste d'affichages. Le dispositif de rendu 2501 peut comprendre un traitement d'image par tramage. Pour chaque emplacement (par exemple pour chaque point), le dispositif de rendu 2501 détermine sa couleur (par exemple noir/blanc, des valeurs RGB de 8 bits, des valeurs CMYK de 8 bits en fonction de l'application). La sortie du dispositif de rendu 2501 est un jeu de pixels formatés selon des bandes et stockés dans un tampon de bande (une mémoire) 2503. Selon un autre mode de réalisation, les données provenant d'un langage de description de page (PDL) tel que le GDI Adobe Postscript (marque déposée) ou Microsoft Windows (marque déposée) sont redues selon une liste d'affichage. La liste d'affichage est utilisée pour générer des bandes de pixels. Selon ce mode de réalisation, il est supposé que des pixels représentent des valeurs en teinte continue et qu'un quelconque effet de demi-teinte ou effet de tremblement requis par le moteur d'impression sera réalisé après décompression; Selon la présente invention, la mémoire utilisée pour le tampon de bande 2503 est également utilisée pour l'espace de travail pour la compression (sans augmenter la mémoire requise). Cette double utilisation est décrite de manière davantage détaillée ci-après. Un compresseur 2504 comprime chaque bande de pixels. Si l'entrée sur le compresseur 2504 est constituée par des pixels en demi-teinte ou tremblés, le compresseur 2504 fonctionne encore mais la compression réalisée sera susceptible d'être médiocre avec des processus à ondelette. Un modèle de contexte binaire peut être utilisé sur des pixels en demi-teinte ou tremblés. Le compresseur 2504 écrit les données comprimées sur un disque 2505. Le disque 2505 peut être un disque dur. Selon un autre mode de réalisation, le disque 2505 peut être une mémoire vive (RAM), une mémoire flash, un disque optique, une bande, n'importe quel type de moyen de stockage, n'importe quel type de canal de communication. La figure 26 est un schéma fonctionnel d'un mode de réalisation de la zone de sortie de l'imprimante. Par report à la figure 26, la zone de sortie de l'imprimante 2500 comprend un décompresseur 2602 couplé au disque 2505, un tampon de bande (une mémoire) 2603 et un moteur d'impression 2604. Le décompresseur 2602 lit les données comprimées sur le disque dur 2605 et les décomprime. Les données décomprimées sont stockées dans un tampon de bande (une mémoire 2603) sous la forme de pixels. Le tampon de bande 2603 peut être la même mémoire que le tampon de bande 2503 afin de fonctionner en tant qu'espace de travail pour le compresseur 2504. Le décompresseur 2602 maintient le tampon de bande 2603 suffisamment plein de telle sorte que des pixels puissent être envoyés sur le moteur d'impression 2604 en temps réel. La figure 27 est un autre mode de réalisation qui inclut une amélioration optionnelle. Par report à la figure 27, des pixels provenant du décompresseur 2602 vont jusqu'au tampon de bande 2603 via le bloc d'amélioration 2705 tandis qu'une autre information qui est l'information consistant en ce qu'il n'y a pas encore de pixel (coefficients partiels) est envoyée directement sur le tampon de bande 2603. Le bloc d'amélioration 2705 peut réaliser des fonctions telles qu'une interpolation, un message, une diffusion d'erreur, un effet de demi-teinte et/ou un effet de tremblement. La largeur de bande nécessaire entre le décompresseur 2602 et le tampon de bande 2603 permet au décompresseur 2602 d'écrire tout d'abord des coefficients de transformation dans le tampon de bande 2603, d'accéder au tampon de bande 2603 pour obtenir certains coefficients et de réaliser la transformation inverse sur ces coefficients puis de les écrire en retour dans le tampon de bande 2603. Il est à noter que le tampon 2603 ainsi que la mémoire d'espace de travail peuvent être petits. Par exemple, si une image pleine page est constituée par 64 méga-octets et que le tampon de bande 2603 est constitué par 16 méga-octets, ceci serait encore considéré comme étant une petite mémoire d'espace de travail. Selon un mode de réalisation, des images A4 à 400 dpi (dpi= éléments numériques par pouce) avec 32 bits/pixel (quatre composantes de 8 bits CMYK), environ 8 pages/minutes nécessitent un débit de données d'approximativement 8 méga-octets/secondes depuis le tampon de bande 2603 sur le moteur d'impression 2604. Le débit de transfert d'un disque dur typique est d'environ 2 méga-octets par seconde (par exemple de 1,7 à 3,5 méga-octets/secondes). Par conséquent, un taux de compression typique d'environ 4:1 est requis pour réaliser une adaptation entre la largeur de bande du disque 2601 et la largeur de bande de l'imprimante. Selon un mode de réalisation, le compresseur 2504 sur la figure 25 et le décompresseur 2602 sur les figures 26 ou 27 sont contenus sur une unique puce de circuit intégré. La figure 28 est un schéma fonctionnel d'un mode de réalisation d'une puce de circuit intégré (IC) contenant la compression/ décompression d'imprimante. Par report à la figure 28 un interface de données de pixel est couplé au tampon de bande (non représenté). L'interface de données de pixel 2801 génère des adresses pour respectivement lire et écrire des pixels dans le tampon de bande. Un espace couleur réversible optionnel 2802 peut être inclus pour réaliser une conversion d'espace couleur réversible. Un interface de données de coefficient 2804 génère des adresses pour lire et écrire des coefficients et assemble de manière appropriée des coefficients de deux octets. L'interface de données de coefficient 2804 en association avec l'interface de données de pixel 2801 manipule un quelconque tamponnage de ligne ou tamponnage de coefficients qui doit être dans une mémoire externe. L'interface de données de coefficient 2804 et l'utilisation d'un espace couleur réversible font l'objet d'une discussion de manière davantage détaillée ci-après. Il est à noter que les flèches doubles impliquent que les données peuvent circuler dans les deux sens. Par exemple, lors de la compression des données, les données se déplacent de la gauche vers la droite par l'intermédiaire de différents composants de la puce IC. Par ailleurs, lors de la décompression des données, les données se déplacent de la droite vers la gauche, de façon générale. Lors du codage des données, les données de pixel provenant d'un interface de données de pixel 2801 ou de l'espace couleur réversible 2802 (s'il est inclus) sont reçues par un bloc de transformation d'ondelette 2803 qui réalise la transformation d'ondelette sur les données de pixel. Selon un mode de réalisation, la transformation réalisée par le bloc de transformation d'ondelette 2803 est une transformation d'ondelette par chevauchement. Elle assure une compaction d'énergie pour à la fois une compression d'image sans perte et avec perte. Pour la compression avec perte, les artefacts de frontières de blocs qui sont nuisibles JPEG sont évités. Les coefficients de filtre, lorsqu'ils sont alignés de manière appropriée, sont normalisés de telle sorte qu'une quantification scalaire assure de bons résultats de compression avec perte. Selon un mode de réalisation, le bloc de transformation d'ondelette 2803 réalise une transformation 2, 6. Selon un autre mode de réalisation, le bloc de transformation d'ondelette 2803 réalise une transformation 2,10. Le bloc de transformation d'ondelette 2803 peut réaliser d'autres transformations bien connues. Diverses mises en oeuvre du bloc de transformation d'ondelette 2803 font l'objet d'une discussion davantage détaillée ci-après. Les coefficients émis en sortie depuis le bloc de transformation d'ondelette 2803 peuvent être écrits en retour dans la mémoire (par exemple le tampon de bande) via l'interface de données de coefficient 2804 pour un codage ultérieur. Selon un mode de réalisation, les données qui sont écrites en retour dans la mémoire sont des données moins importantes et elle seront décrites en détail ci-après. Ces données sont ensuite relues dans la puce IC et codées. Les coefficients émis en sortie depuis le bloc de transformation d'ondelette 2803 ou reçus via l'interface de données de coefficient 2084 sont appliqués sur le modèle de contexte 2805. Le modèle de contexte 2805 constitue le contexte permettant de coder (et de décoder) des données en utilisant le codeur/décodeur 2806. Selon un mode de réalisation, le modèle de contexte 2805 supporte l'envoi de données directement pour le codage. De cette façon, le modèle de contexte 2805 fonctionne en tant que modèle de contexte le plus important. Une architecture pour la mise en oeuvre de divers modèles de contexte a été décrite ci-avant. Selon un mode de réalisation, le codeur/décodeur 2806 comprend un codeur parallèle haute vitesse. Le codeur parallèle haute vitesse manipule plusieurs bits en parallèle. Selon un mode de réalisation, le codeur parallèle haute vitesse est mis en oeuvre selon un composant VLSI ou des ordinateurs à multiples processeurs sans sacrifier la performance de compression. Un mode de réalisation d'un codeur parallèle haute vitesse qui peut être utilisé selon la présente invention est décrit dans le brevet des Etats-Unis n 5 381 145 intitulé "Method and Apparatus for Parallel Decoding and Encoding of Data", délivré le 10 Janvier 1995. Selon d'autres modes de réalisation, le codeur par entropie binaire comprend soit un codeur Q, soit un codeur QM, soit un codeur à machine à états finis, etc. Les codeurs Q et QM sont des codeurs par entropie binaires efficaces bien connus. Le codeur par machine à états finis (FSM) assure la conversion simple à partir d'une probabilité et aboutit à un train de bits comprimé. Selon un mode de réalisation, un codeur par machine à états finis est mis en oeuvre en utilisant des consultations en table pour à la fois le décodeur et le codeur. Une certaine variété de procédés d'estimation de probabilité peuvent être utilisés avec un tel codeur par machine à états finis. Selon un mode de réalisation, le codeur par machine à états finis de la présente invention comprend un codeur B défini dans le brevet des Etats-Unis n 5 272 478 intitulé "Method and Apparatus for Entropy Coding", délivré le 21 décembre 1993. La sortie du codeur/décodeur 2806 est couplée à une interface de données codées 2807 qui constitue une interface vis-à-vis du disque ou de tout autre support d'information de stockage ou même d'un autre canal. L'interface de données codées 2807 envoie et reçoit des données codées depuis le disque. Selon un mode de réalisation, si le contrôleur SCSI est inclus dans la puce, il peut être mis en oeuvre à ce niveau. Selon un autre mode de réalisation, l'interface de données codées 2807 communique avec un contrôleur SCSI externe. Un stockage ou une communication non SCSI peut être utilisée. Pendant la décompression, les données codées sont reçues par le codeur/décodeur 2806 à partir du disque (ou de tout autre stockage mémoire ou canal) via l'interface de données codées 2807 et sont décomprimées dedans en utilisant des contextes provenant du modèle de contexte 2805. Les coefficients qui résultent de la décompression sont transformés de façon inverse par le bloc de transformation d'ondelette 2803. (Il est à noter que bien que le bloc de transformation d'ondelette 2083 réalise à la fois des transformations en sens direct et en sens inverse selon un mode de réalisation, dans d'autres modes de réalisation, les deux transformations peuvent être réalisées par des blocs séparés). La sortie du bloc de transformation 2803 comprend des pixels qui subissent une quelconque conversion d'espace couleur optionnel et qui sont émis en sortie sur le tampon de bande via l'interface de données de pixel 2081. Le cadencement de base du système pendant l'impression est représenté sur la figure 29. Par report à la figure 29, les données codées pour chaque unité de codage sont lues à partir du disque. Autant de données que possible sont lues et après un court retard, les coefficients sont décodés. Après que le décodage est terminé, la transformation d'ondelette inverse est calculée. Après que la transformation est terminée, des pixels peuvent être envoyés sur le moteur d'impression. Il est à noter que les hachures sur la figure 29 indiquent lorsque des actions différentes surviennent pour une unité de codage spécifique. Noyage des coefficients pour le stockage sur disque La figure 10 représente l'organisation des données codées selon la présente invention. Par report à la figure 10, les données les plus importantes 1003 sont codées selon l'ordre des coefficients (non noyés) immédiatement après avoir été transformées. Par conséquent, ces données n'ont pas à être tamponnées. Selon un mode de réalisation, la quantité des données les plus importantes 1003 est limitée de telle sorte qu'elles puissent toujours être lues à partir du disque. Une certaine quantité des données moins importantes 1004 sont tamponnées, noyées et écrites sur le disque selon l'ordre d'importance. La quantité de données qui peuvent être tamponnées, noyées et écrites est déterminée par le temps de transfert. C'est-à-dire que le système lit les données jusqu'à ce que le temps de transfert depuis le disque ait expiré. Le débit de transfert du disque détermine combien de données sont maintenues. Ces débits sont connus et dépendent des caractéristiques physiques d'un transfert particulier. Pour des images difficiles à comprimer, certaines données peuvent être écartées pendant le temps de codage. Les données sont représentées en tant que données les moins importantes 1005. Dans le cas o il n'est pas possible que les données les moins importantes puissent être lues même dans le cas du débit de transfert de disque le meilleur, il n'y a pas de raison de stocker ces données sur disque. Pour bon nombre d'images et peut être pour la plupart des images, aucune donnée ne sera écartée. L'ordonnancement des données codée et la façon dont celui-ci est réalisé sont décrits de manière davantage détaillée ci-avant. Dans ce qui suit, la gestion du tampon de bande pendant la compression et la décompression fait l'objet d'une discussion, cette discussion étant suivie par une description d'un schéma de noyage pour les données codées. Les mises en oeuvre par composants de la transformation, du modèle de contexte et le parallélisme avec le codeur/décodeur sont également décrits. Interfaces de pixels et de coefficients La figure 30 représente un mode de réalisation possible de la façon dont des données de pixel sont organisées. Par report à la figure , une page (une image) 3000 est divisée selon des bandes 3001 à 3004. Selon un mode de réalisation, la page 3000 peut comprendre un langage de description de page ou une description de liste d'affichage d'une page qui est utilisée pour générer des pixels pour les bandes individuelles. Selon un mode de réalisation, chacune des bandes 3001 à 3004 est soumise à un tramage de façon individuelle en utilisant une technologie de liste d'affichage. Chacune des bandes 3001 à 3004 est en outre divisée selon des unités de codage (par exemple 3001A à 3001 D). Un avantage de l'utilisation de multiples unités de codage par bande réside dans le fait que des parties du tampon de bande peuvent être utilisées selon une rotation en tant qu'espace de travail pendant la décompression (de façon similaire à un tamponnage en ping-pong). En d'autres termes, une partie des pixels peuvent être décomprimées, stockées dans le tampon de bande et envoyées sur l'imprimante tandis qu'une seconde partie du tampon de bande peut être utilisée en tant qu'espace de travail afin de stocker des coefficients pendant le décodage, une troisième partie du tampon étant utilisée pour stocker les pixels qui correspondent aux coefficients. La figure 31 représente un tampon de bande 3101 de la page 3100. Le tampon de bande 3101 comprend des unités de codage 3101A à 3101D. Les unités de codage 3101A et 3101B jouent le rôle d'espace de travail pour le décompresseur en stockant les coefficients. L'unité de codage 3101C stocke des pixels destinés à être émis en sortie sur l'imprimante (ou le canal) tandis que l'unité de codage 3101D joue le rôle d'espace de travail pour le décompresseur en stockant les pixels suivants. Les parties du tampon de bande 3101 peuvent être utilisées selon une rotation lorsque la totalité de la page 3100 est imprimée. Par exemple, pour l'unité de codage suivante, les pixels dans l'unité de codage 3101D sont les pixels destinés à être émis en sortie sur l'imprimante. Lorsque ceci se produit, les unités de codage 3101lB et 3101C seront utilisées en tant qu'espace de travail pour le décompresseur afin de stocker des coefficients. Egalement à cet instant, l'unité de codage 3101A sera utilisée en tant qu'espace de travail pour que le décompresseur stocke les pixels suivants destinés à être émis en sortie sur l'imprimante. Selon la présente invention, les coefficients sont plus gros que les pixels. Par conséquent, une mémoire selon une quantité qui va jusqu'au double est allouée à la mémoire d'espace de travail. Selon un autre mode de réalisation, les bandes peuvent être divisées selon des unités de codage en un nombre plus ou moins important. Par exemple, selon un mode de réalisation, les bandes peuvent être divisées chacune selon huit unités de codage. Largeur de bande de mémoire En association, l'interface de données de pixel et l'interface de données de coefficient peuvent gérer efficacement la mémoire de tampon de bande. Si une DRAM (RAM dynamique) de mode page rapide, une DRAM à sortie de données étendues (EDO) ou d'autres mémoires qui favorisent des accès consécutifs sont utilisées, alors ces interfaces transfèrent les données depuis des adresses consécutives selon des salves suffisamment longues afin de réaliser une utilisation efficace de la largeur de bande potentielle de la mémoire. Certains petits tampons peuvent être nécessaires pour supporter des accès par salves sur des adresses consécutives. La figure 32 représente un schéma de cadencement ou diagramme temporel de décodage qui représente des exigences d'accès mémoire concurrentes. Par report à la figure 32, la largeur de bande requise pour le décodage est comme suit. Rappelons-nous que selon un mode de réalisation, une horloge de pixel à 2 MHz, une horloge de composante à 8 MHz et une horloge de décodeur à 32 MHz sont utilisées et le moteur d'impression a besoin d'une horloge d'octet/composante, que la transformation lit deux octets par coefficient et écrit un octet par composante. Si la transformation était réalisée pendant la moitié du temps unitaire de codage, ceci nécessiterait une horloge de 6 octets/composante. La vitesse de transformation est limitée par la largeur de bande de la mémoire et non pas par le temps de calcul. Si une largeur de bande d'une horloge de 24 octets/composante est disponible, la transformation peut être calculée en un huitième du temps unitaire de codage. La transformation peut nécessiter une largeur de bande supplémentaire si une mémoire externe est utilisée pour des coutures. Selon un mode de réalisation, le décodage des coefficients nécessite l'écriture de deux octets par horloge de composante pour la partie la plus importante des données codées. Le décodage nécessite une lecture et une écriture d'un octet par horloge de composante pour chaque plan mémoire binaire de la partie moins importante des données codées. Il est à noter que ce peut être moins dans certains modes de réalisation. Les largeurs de bande de 4 octets par horloge de composante et de 24 octets par horloge de composante seraient respectivement nécessaire si les deux opérations consommaient la moitié du temps unitaire de codage. Une largeur de bande supplémentaire peut être requise si une mémoire externe est utilisée pour une information de couture de contexte. Selon un mode de réalisation, le débit de transfert en mode salve maximum est de 4 accès mémoire par horloge de composante (un accès par horloge de codeur). Par conséquent, avec un bus de données de 32 bits, le débit de transfert maximum est quelque peu inférieur à une horloge de 16 octets/composant. Avec un bus de données de 64 bits, le débit de transfert maximum est quelque peu inférieure à une horloge de 32 octets/composant. Réduction des exigences en terme de largeur de bande de la mémoire de LIC Chaque bit de chaque coefficient dans LIC nécessite une lecture et une écriture de mémoire externe pendant le décodage. (Le codage nécessite seulement une lecture). Ces accès mémoire comptent pour la majorité de la largeur de bande de mémoire requise. Selon un mode de réalisation, au lieu de stocker chaque coefficient LIC sur 8 bits, la présente invention stocke les coefficients en utilisant moins de 8 bits lorsque c'est possible afin de réduire les exigences en terme de largeur de bande. Le tableau 8 représente combien de mémoire est requise pour stocker des coefficients LIC pour le décodage de chaque plan mémoire binaire. Par report à la figure 8, lors de la réalisation du LIC, un bit par coefficient est écrit, lequel est le bit de queue. Ce qui est écrit pour le plan mémoire binaire 5 est relu pour le plan mémoire binaire 4: 2-3 bits qui incluent le bit de queue, ce que le bit 5 était et si le bit 5 était un 1, alors un bit de signe. Le pourcentage indique pour chacun des plans mémoire binaires quel pourcentage de coefficient participe. Ceci peut être rendu plus clair en observant la figure 13B. Par report à la figure 13B, le plan mémoire binaire 5 comporte des coefficients provenant de toutes les sous-bandes qui participent du fait que tous les coefficients à partir de DD1 jusqu'aux sous-bandes DS4 et SD4 comportent des données dans le plan mémoire binaire 5 (comme indiqué par un ombrage). Le plan mémoire binaire 0 comporte des coefficients provenant seulement de la sous-bande DD1. Comme représenté au niveau du tableau 8, les deux plans mémoire binaires 4 et 5 comportent des coefficients provenant de toutes les sous-bandes de telle sorte que le pourcentage est de 100 % tandis que le plan mémoire binaire 0 comporte seulement 25 % des coefficients (dans la sous-bande DD1). Lorsque davantage de décodage est réalisé, certains plans mémoire binaires sont terminés avant que le plan mémoire binaire 0 ne soit atteint. Tableau 8 - Bits requis pour stocker des coefficients LIC pendant le décodage Pourcentage de Plan mémoire binaire coefficients dans Ecriture Lecture Bits/ Contenu l'alignement MSE coefficient (Ecriture/lecture) -* 5 1 de queue -/100 % 5 4 2--3 de queue, bit 5, signe ? 100 %/100% 4 3 3--4 de queue, bits 4...5, signe ?100 %/99 % 3 2 4--5 de queue, bits 3. 5, signe ?99 %/96 % 2 1 5--6 de queue, bits 2...5, signe ?96 %/82 % 1 0 6--7 de queue, bits 1...5, signe ?82 %/25 %..DTD: O -+ 7--8 de queue, bits 0...5, signe ?25 %/-- * Ecrit pendant le traitement du groupage le plus important (MIC) + Lu pendant la transformation inverse. Dans le tableau 8, au début du décodage, aucun décodage de plans mémoire binaires ne s'est produit; par conséquent, seulement un bit (bit/coefficient) de chaque coefficient est lu pour déterminer s'il s'agit d'un bit de tête ou de queue. Lorsque le décodage se poursuit, le nombre de bits par coefficient augmente. La figure 33 représente comment un adressage circulaire peut être utilisé pour manipuler une écriture de données qui est plus importante que la lecture de données. Ceci se produit du fait que les résultats du traitement produisent davantage debits à écrire qu'il n'en a été lus originellement. Par report à la figure 33, le processus commence par l'écriture d'un bit par coefficient, ce qui constitue 1/8- ième de l'espace mémoire. Ensuite, un bit par coefficient est lu tandis que 2 à 3 bits par coefficient sont écrits. Puis les 2 à 3 bits par coefficient sont lus tandis que 3 à 4 bits par coefficient sont écrits. Ceci se poursuit jusqu'à ce que toutes les données soient traitées. Il y a certaines options pour simplifier la mise en oeuvre par composant matériel ou câblé. Au lieu de toujours utiliser le nombre minimum de bits, éventuellement seulement 1, 2, 4, 6 ou 8 bits seraient utilisés, ce qui aurait pour effet qu'un bit serait gaspillé pour certaines dimensions. L'espace pour le bit de signe pourrait toujours être utilisé même si le bit de signe n'était pas codé dans le LIC ou n'était pas encore connu. Une option qui permettrait d'encore réduire la largeur de bande de mémoire consisterait à ne pas stocker de bit de queue activé lorsqu'il est non nécessaire. Par exemple, lors de l'écriture du plan mémoire binaire 0, il y a 6 bits qui sont des bits de tête, soit des bits de queue. Si l'un quelconque de ces 6 bits n'est pas à zéro, le bit de queue activé doit être vrai et s'il n'est pas nécessaire de stocker la valeur de bit de queue activé, le bit de signe peut être stocké en tant que septième bit. La large de bande de mémoire pour le groupage le plus important (MIC) peut également être réduite au moyen de procédé de stockage en longueur variable. Le fait d'utiliser juste le nombre minimum de bits au lieu de toujours utiliser 8 bits par coefficient aboutirait à des économies. Le stockage des valeurs de prédiction de 6 bits (comme sur la figure 15) en lieu et place de bits de coefficient à zéro aboutirait à une utilisation plus efficace de la mémoire. Espace couleur réversible La présente invention propose de réaliser optionnellement une conversion d'espace couleur réversible qui permet de réaliser une conversion entre deux espaces couleur de manière à ce qu'elle soit complètement réversible et qu'elle puisse être mise en oeuvre selon une arithmétique par entiers. C'est-à-dire que les données d'espace couleur qui sont converties peuvent être inversées afin d'obtenir toutes les données existantes indépendamment d'un quelconque arrondi ou d'une quelconque troncature qui s'est produite pendant le processus de conversion en sens direct. Les espaces couleurs réversibles sont dans la demande de brevet des Etats-Unis de numéro de série 08/436 662 intitulée "Method and Apparatus for Reversible Color Conversion" déposé le 8 Mai 1995 et dont le déposant est le même que celui de la présente invention. Les conversions d'espaces couleurs permettent les avantages d'un espace de couleur opposée sans sacrifier la capacité à assurer des résultats sans perte. Pour le cas sans perte, un espace de couleur opposée assure une décorrelation qui améliore la compression. Pour le code avec perte, un espace de couleur opposée permet de quantifier une information de luminance moins qu'une information de chrominance, ce qui assure une qualité visuelle plus élevée. Lorsqu'un espace couleur réversible est utilisé avec la transformation de la présente invention, un noyage approprié des coefficients de luminance et de chrominance est supérieur au sous-échantillonnage pour la compression avec perte tout en permettant encore une compression sans perte. Si un espace couleur réversible est utilisé, il est souhaitable d'aligner les coefficients de telle sorte que le bit le plus significatif ou de poids fort des composantes de luminance de 8 bits et des composantes de chrominance de 9 bits présentent le même alignement. Pour une compression avec perte, cet alignement a pour effet que les données de chrominance sont quantifiées deux fois plus que pour les données de luminances et permet également la possibilité d'une compression sans perte pour la luminance et d'une compression avec perte (mais très haute qualité) pour la chrominance. Ces deux résultats prennent davantage en compte les caractéristiques du système de la vision humaine. Autres opérations sur le pixel Souvent, une imprimante dispose de documents qui sont pour la plus grande part ou en totalité non continus. Par exemple, des images de textes en noir et blanc seulement (des valeurs 0 et 255 seulement) peuvent être classiques. Selon un mode de réalisation, l'histogramme de bandes est réalisé. Par exemple, des images seulement en noir et blanc 0,255 (la composante K) peuvent être recartographiées selon des images 0,1. Des compactions similaires peuvent être réalisées pour des images à points en couleur. Il est à noter que si une contraction est utilisée, la compression doit être sans perte. Cependant, la compression sans perte réalisée est améliorée de manière significative lorsque la compaction est réalisée. Selon une variante, au lieu d'utiliser des transformations par ondelettes en chevauchement décrites ici, des images binaires et de spots couleurs peuvent être manipulées au moyen d'un modèle de contexte sans perte basé sur plan mémoire binaire similaire à JBIG. Selon un autre mode réalisation, le système peut être conçu pour inclure un mode binaire. La figure 35 représente un mode de réalisation d'un modèle de contexte binaire qui est similaire au gabarit de modèle de contexte du style JBIG. Par report à la figure 35, des registres à décalage 3501 à 3503 produisent de multiples bits pour le standard GBIJ. Les registres à décalage 3501 et 3502 reçoivent des seconde et première lignes au-dessus provenant du tampon de ligne 3501. Les lignes "audessus" constituent des bits correspondant à des pixels aux positions nord-ouest (NW), nord (N) et nord-est (NE) du gabarit, tel que représenté sur la figure 37. Les sorties des registres à décalage 3501 et 3502 sont appliquées directement sur le modèle de contexte 3505. La sortie du registre à décalage 3503 est appliquée sur un multiplexeur optionnel 3504 qui permet de mettre en oeuvre le gabarit adaptatif du standard JBIG. Le modèle de contexte 3505 est couplé à une machine d'estimation de probabilité 3506 qui à son tour est couplée à un générateur de bits (BG) 3507. Le modèle de contexte 3505, la machine d'estimation de probabilité 3506 et le générateur de bit 3507 opèrent d'une manière bien connue de l'art les uns par rapport aux autres. La sortie du multiplexeur 3504 en conjonction avec les sorties des registres à décalage 3501 et 3502 et avec un retour provenant du générateur de bit forment l'adresse de case de contexte utilisé pour adresser la mémoire de contexte. Selon un mode de réalisation, la mémoire de contexte 3505 inclut 1024 contextes avec 6 bits pour décrire chaque état de probabilité. Ceci nécessite une mémoire de contexte de 1024 fois six bits. Du fait que le générateur de bit produit un bit décodé à partir de la ligne courante en tant que partie de l'adresse de contexte, il y a un retard important "bit à contexte" qui inclut le temps d'accès à la mémoire de contexte. La figure 36 représente un autre mode de réalisation qui utilise le bit décodé provenant de la ligne courante pour accéder à la machine d'estimation de probabilité en conjonction avec un bloc de même adresse 3601 qui reçoit les sorties des registres à décalage 3501 et 3502 ainsi que la sortie du multiplexeur 3504. La PEM (machine d'estimation de probabilité) 3506 reçoit le bit précédent et l'utilise pour sélectionner le contexte approprié à partir des deux contextes utilisés. Le contexte sélectionné est mis à jour et les deux contextes sont réécrits dans la mémoire. Le bloc de même adresse 3601 détecte des adresses qui ont déjà état lues de telle sorte que les données soient toujours dans la machine d'estimation de probabilité. Le bloc de même adresse 3801 envoie également le signal pour utiliser les données déjà dans la PEM (qui peuvent être des données mises à jour) au lieu de l'information obsolète en mémoire. Selon un mode de réalisation, le décodeur 1024 inclut des cases de contexte de six bits pour décrire chaque état de probabilité. Ceci nécessite que la mémoire de contexte soit d'une capacité de 512 fois 12 bits. Les sorties des registres à décalage 3501 et 3502 en association avec la sortie du multiplexeur 3504 constituent une adresse de case de contexte partielle à laquelle il manque seulement l'utilisation du bit précédent. Ceci conduit à une sélection de deux cases de contexte dans la mémoire de contexte 3505. Plus qu'un bit d'une case de contexte peut être exclus du contexte partiel. Chaque emplacement mémoire contient 2n états de probabilité o n est le nombre de bits exclus. Il est à noter que le retard "bit à contexte" est réduit. L'accès à la mémoire de contexte peut se produire avant que le bit précédent ne soit décodé. Le traitement de l'état de PEM pour les deux états d'une paire peut commencer en parallèle avant que le bit précédent ne soit décodé. Un fonctionnement haute vitesse peut être réalisé. Commande du débit du codeur En plus de disposer de la capacité de quantifier des données, la réalisation d'une commande de débit dans le codeur nécessite également la mesure du débit de telle sorte que les décisions concernant la quantification puissent être prises. Si le débit indique qu'une compression n'est pas bonne (c'est-à-dire qu'elle n'est pas à un niveau souhaité), la quantification peut être augmentée. Par ailleurs, si le débit indique que la compression est trop élevée, la quantification peut être diminuée. Les décisions de commande de débit doivent être réalisées de façon identique dans le codeur et dans le décodeur. Un procédé permettant d'assurer que le codeur et le décodeur réalisent les mêmes décisions consiste à utiliser une signalisation. Le codeur mesure le débit selon des intervalles prédéterminés et stocke la quantification, soit Q, en mémoire en vue d'une utilisation future lors de l'intervalle suivant. Le décodeur rappelle simplement la quantification dans la mémoire pour chaque intervalle. Ceci nécessite une mémoire supplémentaire. Par exemple, une SRAM (RAM statique) sur puce comportant 256 emplacements de deux bits (pour indiquer une modification dans Q de +2, +1, 0, -1 ou pour stocker Q en tant que 1, 2, 3, 4) suffirait pour modifier la quantification Q pour chaque jeu de 16 lignes pour une image de 4096 lignes. Il y a de nombreuses options pour la mesure du débit. La figure 34 représente une paire constituée par un codeur et un décodeur. Par report à la figure 34, une paire codeur/décodeur est représentée comme contenant des modèles de contexte (CM), des modèles/machines d'estimation de probabilité (PEM) et des générateurs de bits (BG) en association avec une unité de réordonnancement de codage courant, une unité de réordonnancement de mots entrelacés et un décaleur. Chacun de ces éléments est bien connu de l'art. Pour une description, consulter les brevets des Etats-Unis nos 5 381 145 et 5 583 500 dont le déposant est le même que celui de la présente invention et qui sont incorporés ici à titre de référence. La mesure du débit doit être explicite si le décodeur ne peut pas la mesurer au même endroit. Par exemple, la mesure du débit est appliquée sur le décodeur en tant que partie du train de code comprimé par exemple. Une autre option pour la gestion du débit représentée en tant que cercle plus petit (position 2 sur la figure 34) consiste à compter le début de mots entrelacés dans le codeur. Selon un autre mode de réalisation, ceci est réalisé après l'étage de génération de bits (position 4 sur la figure 34). Du fait que le codeur et le décodeur démarrent un mot de code en même temps, une signalisation implicite du débit peut être utilisée. Le comptage peut être réalisé avec un composant câblé de comptage qui comprend un registre et un additionneur qui additionne les longueurs de mots de code et qui détermine la longueur de mot de code moyenne. Les composants pour réaliser le comptage et la détermination des nombreux moyens binaires sont bien connus de l'art et sont représentés sur la figure 34 en tant que bloc 3401. Il apparaîtra que ce bloc peut être utilisé pour prendre des mesures similaires au niveau d'autres emplacements dans le système (par exemple aux positions 1, 2, 3, 4 à la fois au niveau du codeur et du décodeur). D'autres options consisteraient à compter la dimension de mots de code complétés après le générateur de bit et avant l'unité de réordonnancement de mot entrelacé (position 3 sur la figure 34) ou à déterminer la quantité de données réellement écrites sur le disque (position 1 sur la figure 34). La mesure de débit peut être implicite: le codeur et le décodeur réalisent tous deux le même calcul de détermination de débit. Par exemple, le codeur et le décodeur pourraient accumuler la dimension moyenne d'un mot de code chaque fois qu'un nouveau mot de code est démarré. Ceci est représenté par la position 4 sur la figure 34. (La dimension aux tailles réelles ne peut pas être utilisée puisque le codeur ne connaît pas la dimension tant que le mot de code n'est pas terminé). Si les codes R utilisés dans le code ont une dimension qui varie depuis R2(0) à R2(7), la dimension de mot de code moyenne varie de 1 à 4,5 bits. Si l'estimation de probabilité fonctionne bien, le fait d'utiliser la moyenne serait très précis. Dans d'autres cas; les différences entre les longueurs de mot de code minimum et maximum en rapport avec la moyenne ne sont typiquement pas très grandes de telle sorte que l'estimation doit encore être utile. La dimension moyenne d'un mot de code Rz(k) vaut k/2 + 1 bits. Le but peut être que, dans pratiquement tous les cas, les données les plus importantes soient bien comprimées et qu'aucune quantification (Q=1) ne soit requise. Seulement les images "pathologiques" nécessiteront une quantification (Q> 1). Le fait d'inclure la caractéristique de quantification permet cependant de garantir que le système ne réalisera pas une rupture sur des images pathologiques. Un autre bénéfice de la commande du débit du codeur est constitué par le fait que le codage de données moins importantes peut être arrêté lorsque la largeur de bande maximum est excédée. Ceci augmente la vitesse de codage et diminue le temps total pour émettre en sortie des données (par exemple diminue le temps total pour l'impression). Le fait de garder une trace des effets des modifications de quantification (de la valeur de Q) est important. Par exemple, la définition du coefficient le plus important dans un groupe de coefficients doit être cohérente avec les modifications de quantification. Par ailleurs, la reconstruction de coefficients quantifiés (lorsque des plans mémoire binaires sont écartés) a besoin de prendre en compte le nombre de plans mémoire binaires écartés pour assurer les meilleurs résultats. Codage parallèle haute vitesse et modèle de contexte La partie de codage par entropie de la présente invention comprend deux parties. Tout d'abord, des noyaux de codage haute vitesse qui fonctionnent en parallèle assurent une estimation de probabilité et une génération de bits. En second lieu, un modèle de contexte procure les contextes utilisés pour le codage. Le nombre de noyaux requis pour réaliser la vitesse souhaitée dépend de l'application; L'autre partie du système de codage par entropie est constituée par le modèle de contexte pour les coefficients de la présente invention. Il y a un nombre important de compromis possibles lors de la mise en oeuvre du modèle de contexte. Selon un mode de réalisation, la présente invention prévoit un modèle de contexte présentant un coût de composant matériel faible qui assure un parallélisme pour supporter l'utilisation des codeurs parallèles haute vitesse de la présente invention. Des modes de réalisation du modèle de contexte sont décrits ci-avant. Bien que seulement le modèle de contexte pour des coefficients d'ondelette soit décrit ici, la présente invention n'est pas limitée à des modèles de contexte qui supportent seulement des coefficients d'ondelettes. Par exemple, si un mode de codage de plan mémoire binaire est souhaité pour les images binaires ou à spots de couleurs, un modèle de contexte additionnel tel que décrit dans la demande de brevet des Etats-Unis de numéro de série 08/642 518 déposée le 3 mai 1996 et intitulée "Compression and Decompression with Wavelet Style and Binary Style Including Quantization by Device-Dependant Parser" ainsi que dans la demande de brevet des Etats-Unis de numéro de série 08/643 263 déposée le 3 mai 1996 et intitulée" Compression and Decompression Using Reversible Embedded Wavelets" peut être utilisé. * Parallélisme Selon un mode de réalisation, quatre noyaux de codage haute vitesse sont utilisés pour coder/décoder huit bits par coefficient o des coefficients s'inscrivent dans la plage qui va de 8 à 12 bits (13 si un espace couleur réversible est utilisé). Selon un mode de réalisation, un noyau est assigné à chacune des quatre composantes, ce qui simplifie le parallélisme et le flux de données. Chaque coefficient peut utiliser jusqu'à 16 cycles pour coder/décoder des bits (y compris des décisions pour une prédiction, etc...) La présente invention maintient les noyaux pour chaque composant en synchronisation même si certains noyaux sont au repos du fait que leur prédiction couronnée de succès ou qu'un autre noyau est en train de manipuler un bit de signe après un premier bit "activé". Le temps total pour défiler le modèle de contexte peut varier en fonction des données, plus spécifiquement de l'efficacité de prédiction, et à un degré moindre, des emplacements des premiers bits "activés". Bien que de nombreuses variantes et modifications de la présente invention apparaitront sans aucun doute à l'homme de l'art après lecture de la description qui précède, il est bien entendu que le mode de réalisation particulier présenté et décrit au moyen de l'illustration n'est en aucune façon destiné à être considéré comme étant limitatif. Par conséquent, les références aux détails des divers modes de réalisation ne sont pas destinées à limiter le cadre des revendications qui reprennent en elles-mêmes seulement les caractéristiques considérées comme étant essentielles pour l'invention. REVENDICATIONS 1. Système caractérisé en ce qu'il comprend: un tampon (2603); une unité de transformation d'ondelette (2803) comportant une entrée couplée au tampon pour réaliser une transformation d'ondelette réversible sur des pixels stockés dans le tampon et afin de générer des coefficients au niveau d'une sortie; un codeur (2806) couplé à l'unité de transformation d'ondelette pour coder des plans mémoire binaires de pixels transformés en ondelette provenant de l'unité de transformation d'ondelette et des plans mémoire binaires stockés de pixels transformés en ondelette reçus depuis le tampon. 2. Système selon la revendication 1, caractérisé en ce que le tampon comprend un tampon de bande (2603) pour stocker au moins une bande de pixels. 3. Système selon la revendication 1, caractérisé en ce que le codeur (2806) comprend: un modèle de contexte (1710, 1712; 2805; 3505); et un codeur par codage d'entropie parallèle; dans lequel les données les plus importantes ne sont pas noyées et sont codées selon un ordre de coefficient sans tamponnage, les données d'une partie de données moins importantes sont tamponnées, noyées et écrites dans une mémoire selon un ordre d'importance. 4. Système selon la revendication 1, caractérisé en ce que le codeur comprend un codeur parallèle passe-haut (2806). 5. Système selon la revendication 1, caractérisé en ce que le codeur comprend un codeur QM. 6. Système selon la revendication 1, caractérisé en ce que le codeur comprend un codeur à machine à états finis. 7. Système selon la revendication 1, caractérisé en ce qu'il comprend en outre une interface de données codées (2807). 8. Procédé de compression d'information caractérisé en ce qu'il comprend les étapes de: transformation d'ondelette d'une information de pixel reçue depuis un tampon, dans lequel au moins un plan mémoire binaire de coefficients représente les pixels transformés de façon réversible en ondelette; remplacement des pixels dans le tampon par des plans mémoire binaires codés; et codage des plans mémoire binaires stockés dans le tampon. 9. Système de décompression caractérisé en ce qu'il comprend: un tampon de bande (2603); une pluralité d'unités de codage (2806) pour que des coefficients subissent une opération de transformation inverse; au moins une unité de codage (2806) pour stocker des pixels destinés à être émis en sortie sur un dispositif de sortie; au moins une unité de codage (2806) pour que des pixels correspondant à des coefficients transformés de façon inverse préalablement soient envoyés sur le dispositif de sortie; un décompresseur (2602) couplé au tampon de bande (2603), dans lequel le décompresseur (2602) décomprime des données comprimées selon des coefficients transformés, écrit les coefficients transformés dans le tampon de bande (2603), relit les coefficients transformés dans le tampon de bande, réalise une transformation inverse sur des coefficients transformés relus dans le tampon de bande (2603) afin de générer des valeurs de pixel et écrit les valeurs de pixels dans le tampon de bande (2603). 10. Système de décompression selon la revendication 9, caractérisé en ce que le décompresseur (2602) lit des données comprimées dans une zone de stockage (2505). 11. Système de décompression selon la revendication 10, caractérisé en ce que la zone de stockage (2505) comprend un disque dur. 12. Système de décompression selon la revendication 9, caractérisé en ce qu'il comprend en outre un moteur d'impression (2604) couplé au tampon de bande (2603). 13. Procédé caractérisé en ce qu'il comprend les étapes de: division d'un coefficient en données les plus importantes et en données moins importantes; envoi des données les plus importantes sur un modèle de contexte (2805) pour un codage immédiatement selon un ordre de coefficient; stockage de données moins importantes et d'une pluralité de bits de signalisation dans une mémoire (2603); et après codage des données les plus importantes de tous les coefficients dans le jeu de coefficients, codage des données moins importantes et noyage selon un ordre sur la base, en partie, de la pluralité de bits de signalisation. 14. Procédé selon la revendication 13, caractérisé en ce que les bits de signalisation comprennent un premier bit et un second bit. 15. Procédé selon la revendication 13, caractérisé en ce qu'un premier des bits de signalisation indique si le premier bit des données moins importantes du coefficient est un bit de tête ou un bit de queue et un second des bits de signalisation indique le bit de signe si le premier des bits de signalisation indique que le premier bit des données moins importantes du coefficient est un bit de tête. 16. Procédé selon la revendication 13, caractérisé en ce que les bits de signalisation sont stockés de manière adjacente aux données moins importantes. 17. Transformation en sens direct caractérisée en ce qu'elle comprend: un tampon d'entrée (2603) comportant une entrée couplée pour recevoir des données d'entrées et des première et seconde sorties pour transférer des échantillons pairs et impairs; une unité de transformation de premier niveau (401; 502) couplée pour recevoir les échantillons pairs et impairs et pour générer des coefficients, dans laquelle des coefficients passe-bas horizontaux et passe-haut verticaux sont émis en sortie depuis la transformation en sens direct; une mémoire (503) comportant une première entrée couplée pour recevoir des coefficients ss générés par l'unité de transformation de premier niveau (401; 502) et une second entrée pour recevoir des coefficients ss provenant d'un filtrage de transformation de niveau plus élevé; une unité d'ordre (504) comportant une première entrée couplée à la mémoire afin d'ordonner des coefficients ss pour des niveaux plus élevés de filtrage; et une première unité de filtre (505) couplée à l'unité d'ordre pour appliquer une pluralité de niveaux de transformation, dans laquelle l'unité de filtre (505) réalise une transformation de niveau plus élevé de coefficients SS reçus depuis l'unité d'ordre (504), dans laquelle l'unité de filtre génère des valeurs de coefficient ss qui sont appliquées en retour sur la seconde entrée de la mémoire (503) et sur la seconde entrée de l'unité d'ordre. 18. Transformation en sens direct selon la revendication 17, caractérisée en ce que la transformation de premier niveau opère sur des blocs 2x2 de données d'entrées. 19. Transformation en sens direct selon la revendication 17, caractérisée en ce que la transformation de premier niveau comprend: une seconde unité de filtre (402) pour réaliser une transformation horizontale de premier niveau, dans laquelle la seconde unité de filtre comporte une première sortie et une seconde sortie; un premier retard unique (403) couplé à la première sortie du second filtre; un second retard unique (404) couplé à la seconde sortie du second filtre; un retard double couplé à la seconde sortie du second filtre (402); un premier multiplexeur (MUX) (407; 4003) couplé pour recevoir les sorties du premier retard unique et du retard double; un second multiplexeur (408; 4004) couplé pour recevoir une sortie de la première unité de filtre et une sortie du second retard unique; et une troisième unité de filtre (505) couplée pour recevoir des sortie provenant des premier et second multiplexeurs et pour réaliser une transformation verticale de premier niveau. 20. Appareil de compression d'une image, ledit appareil étant caractérisé en ce qu'il comprend: un compresseur (2504); une mémoire d'espace de travail (2603) couplée au compresseur, dans lequel la mémoire d'espace de travail est de la même dimension que l'image et le compresseur utilise la mémoire d'espace de travail pour coder l'image en utilisant des coefficients qui sont plus grands que les pixels dans l'image. 21. Procédé de codage d'information caractérisé en ce qu'il comprend des données les plus importantes et des données moins importantes, ledit procédé étant caractérisé en ce qu'il comprend les étapes de: codage des données les plus importantes; codage de la position du premier plan mémoire binaire dans les données moins importantes pour chaque coefficient qui ne sont pas constituées par des bits de tête en totalité à zéro; codage de chaque plan mémoire binaire des données moins importantes qui ne sont pas constituées par des bits de tête en totalité à zéro. 22. Procédé selon la revendication 21, caractérisé en ce que l'information comprend des coefficients d'ondelette. 23. Procédé selon la revendication 21, caractérisé en ce que l'étape de codage de la position du premier plan mémoire binaire moins important comprend la réalisation d'une prédiction sur la totalité des plans mémoire binaires de données moins importantes. 24. Procédé selon la revendication 21, caractérisé en ce que l'étape de codage des données les importantes comprend les étapes de: pour chaque arborescence, codage du coefficient ss; réalisation d'une prédiction pour les données les plus importantes; et pour chaque coefficient non ss, codage d'un bit de tête ou d'un bit de queue pour chaque plan mémoire binaire avec des données; et codage d'un bit de signe si le coefficient n'est pas à zéro. 25. Procédé selon la revendication 24, caractérisé en ce que la prédiction comprend une prédiction d'arborescence et l'étape de réalisation de la prédiction comprend le codage des coefficients ss et le codage du premier plan mémoire binaire à zéro avec des bits de tête non à zéro pour la totalité de l'arborescence. 26. Procédé selon la revendication 24, caractérisé en ce que les données les plus importantes sont traitées à raison d'une arborescence d'ondelette à la fois. 27. Procédé selon la revendication 21, caractérisé en ce que la prédiction détermine des plans mémoire binaires qui comprennent des bits de tête tous à zéro pour tous les coefficients non ss dans l'arborescence d'ondelette. 28. Procédé selon la revendication 27, caractérisé en ce qu'il comprend en outre l'étape d'identification du premier plan mémoire binaire pour un codage individuel. 29. Procédé selon la revendication 28, caractérisé en ce que l'étape d'identification du premier plan mémoire binaire pour un codage individuel comprend l'indication du fait que tous les coefficients non ss de la seconde décomposition sont à zéro en utilisant un premier bit et l'indication du fait que tous les coefficients non ss de la première décomposition sont à zéro en utilisant un second bit. 30. Procédé selon la revendication 21, caractérisé en ce que l'étape de codage des données les plus importantes comprend les étapes qui suivent: pour chaque arborescence, codage du coefficient ss; réalisation d'une prédiction afin de déterminer des plans mémoire binaires qui sont des bits de tête tous à zéro pour tous les coefficients non ss dans chaque dite arborescence; détermination de si les données les plus importantes de la totalité de l'arborescence sont à zéro; si les données les plus importantes pour la totalité de l'arborescence ne sont pas à zéro, alors pour tous les coefficients dans l'arborescence, codage des bits du coefficient courant pour tous les plans mémoire binaires, dans lequel le coefficient courant est le premier coefficient non ss dans l'arborescence, et démarrage avec le premier plan mémoire binaire qui contient des données; codage du bit de signe si le coefficient courant n'est pas à zéro. 31. Procédé selon la revendication 21, caractérisé en ce l'étape de codage des données moins importantes comprend les étapes de: pour chaque arborescence, pour chaque coefficient; réalisation d'une prédiction si l'on est au début d'un intervalle de prédiction; codage d'un bit de tête ou d'un bit de queue si la prédiction n'est pas active; et codage d'un bit de signe si le premier bit activé est survenu et que la prédiction n'est pas active. 32. Appareil de codage d'information caractérisé en ce qu'il comprend des données les plus importantes et des données moins importantes, ledit appareil étant caractérisé en ce qu'il comprend: un moyen (figure 17) pour coder les données les plus importantes; un moyen (figure 17) pour coder la position du premier plan mémoire binaire dans les données moins importantes pour chaque coefficient qui n'est pas constitué en totalité par des bits de tête à zéro; et un moyen (figure 17) pour coder chaque plan mémoire binaire de données moins importantes qui n'est pas constitué en totalité par des bits de tête à zéro; 33. Appareil selon la revendication 32, caractérisé en ce l'information comprend des coefficients d'ondelette. 34. Appareil selon la revendication 32, caractérisé en ce le moyen (figure 17) permettant de coder la position du premier plan mémoire binaire moins important comprend un moyen pour réaliser une prédiction sur la totalité des plans mémoire binaires de données moins importantes. 35. Appareil selon la revendication 32, caractérisé en ce le moyen permettant de coder les données les plus importantes comprend: un moyen (figure 19) pour coder le coefficient ss pour chaque arborescence; un moyen (figure 19, 1904) pour réaliser une prédiction pour les données les plus importantes pour chaque arborescence; un moyen (figure 16, 1906) pour coder un bit de tête ou un bit de queue pour chaque plan mémoire binaire avec des données pour chaque coefficient non ss pour chaque arborescence; et un moyen (figure 16, 1908) pour coder un bit de signe si le coefficient n'est pas à zéro pour chaque coefficient non ss pour chaque arborescence. 36. Appareil selon la revendication 35, caractérisé en ce que la prédiction comprend une prédiction d'arborescence et le moyen permettant de réaliser la prédiction comprend un moyen pour coder les coefficients ss et un moyen pour coder le premier plan mémoire binaire à zéro avec des bits de tête non à zéro pour la totalité de l'arborescence. 37. Appareil selon la revendication 35, caractérisé en ce que les données les plus importantes sont traitées à raison d'une arborescence d'ondelette à la fois. 38. Appareil selon la revendication 32, caractérisé en ce le moyen permettant de réaliser la prédiction détermine des plans mémoire binaires qui comprennent tous les bits de tête à zéro pour tous les coefficients non ss dans l'arborescence d'ondelette. 39. Appareil selon la revendication 38, caractérisé en ce qu'il comprend en outre un moyen pour identifier le premier plan mémoire binaire pour son codage individuel. 40. Appareil selon la revendication 39, caractérisé en ce que le moyen pour identifier le premier plan mémoire binaire pour son codage individuel comprend un moyen pour indiquer le fait que tous les coefficients non SS de la seconde décomposition sont à zéro en utilisant un premier bit et un moyen pour indiquer le fait que tous les coefficients non SS de la première décomposition sont à zéro en utilisant un second bit. 41. Appareil selon la revendication 32, caractérisé en ce que le moyen permettant de coder les données les plus importantes comprend: un moyen (figure 19) pour coder le coefficient ss pour chaque arborescencet; un moyen pour réaliser une prédiction afin de déterminer des plans mémoire binaires qui sont tous des bits de tete à zéro pour tous les coefficients non ss dans chaque dite arborescence; un moyen pour déterminer si les données les plus importantes de la totalité de l'arborescence sont à zéro pour chaque arborescence; un moyen pour coder des bits du coefficient courant pour tous les plans mémoire binaires pour tous les coefficients dans l'arborescence si les données les plus importantes pour la totalité de l'arborescence ne sont pas à zéro, dans lequel le coefficient courant est le premier coefficient non ss dans l'arborescence, et pour démarrer avec le premier plan mémoire binaire qui contient des données; un moyen pour coder le bit de signe si le coefficient courant n'est pas à zéro pour tous les coefficients dans l'arborescence si les données les plus importantes pour la totalité de l'arborescence ne sont pas à zéro. 42. Appareil selon la revendication 32, caractérisé en ce que le moyen permettant de coder des données moins importantes comprend: un moyen (figure 19, 1903) pour réaliser une prédiction pour chaque coefficient pour chaque arborescence si l'on est au début d'un intervalle de prédiction; un moyen pour coder un bit de tête ou un bit de queue pour chaque coefficient pour chaque arborescence si la prédiction n'est pas active; et un moyen pour coder un bit de signe pour chaque coefficient pour chaque arborescence si le premier bit activé est survenu et que la prédiction n'est pas active. 43. Procédé pour un codage m-aire d'information, ledit procédé étant caractérisé en ce qu'il comprend les étapes de: examen d'un nombre prédéterminé de coefficients; codage par entropies de tous les bits de tête à raison d'un par cycle jusqu'à ce que tous les bits de tête dans le nombre prédéterminé de coefficients soient codés; codage des bits de signe et de queue du nombre prédéterminé de coefficients dans le même cycle. 44. Puce de circuit intégre (IC) caractérisée en ce qu'elle comprend: une interface de données de pixel (2801) pour transférer des données de pixel entre la puce IC et une mémoire; une transformation d'ondelette réversible (2803) couplée à une interface de données de pixel pour transférer une information sur et depuis la mémoire via l'interface de données de pixel; un modèle de contexte (2805) couplé à la transformation réversible en ondelette afin de produire des contextes pour coder les données produites depuis; un codeur (2806) pour coder des coefficients générés par la transformation réversible en ondelette sur la base de contextes produits par le modèle de contexte. 45. IC défini selon la revendication 44, caractérisé en ce qu'il comprend en outre une interface de données de coefficient (2804) couplée pour transférer des coefficients depuis la transformation à la mémoire sans codage. 46. IC défini selon la revendication 44, caractérisé en ce que l'interface de données de coefficient (2804) transfert des coefficients depuis la mémoire sur le modèle de contexte (2805) pour le codage. 47. IC défini selon la revendication 44, caractérisé en ce qu'il comprend en outre une interface de données codée (2807) pour appliquer les données codées par entropie sur une mémoire. 48. IC défini selon la revendication 47, caractérisé en ce qu'il comprend en outre un décodeur (2806) pour décoder des données codées. 49. IC défini selon la revendication 46, caractérisé en ce qu'il comprend en outre une interface de données codées (2807) pour appliquer sur le décodeur des données codées par entropie pour un décodage. 50. IC défini selon la revendication 44, caractérisé en ce qu'il comprend en outre un convertisseur d'espace couleur réversible (2802) couplé entre l'interface de données de pixel et la transformation réversible en ondelette afin de réaliser une conversion réversible d'espace couleur. 51. Décodeur pour décoder des données codées, ledit décodeur étant caractérisé en ce qu'il comprend: au moins un générateur de bit (3507) couplé pour recevoir des données codées et pour décoder des données codées sur la base d'une estimation de probabilité, dans lequel ledit au moins un générateur de bit génère un bit décodé à partir d'une ligne courante; une machine d'estimation de probabilité (3506) couplée audit au moins un générateur de bit pour produire l'estimation de probabilité sur la base du bit décodé à partir de la ligne courante; un modèle de contexte (3505) couplé à la machine d'estimation de probabilité pour appliquer une pluralité de contextes sur la machine d'estimation de probabilité sur la base d'une adresse de contexte partiel, dans lequel la machine d'estimation de probabilité (3506) réalise une sélection parmi la pluralité de contextes sur la base du bit décodé. 52. Décodeur selon la revendication 51, caractérisé en ce qu'il comprend en outre un indicateur de même adresse (3601) couplé à la machine d'estimation de probabilité (3506) pour détecter des adresses qui ont déjà été lues indiquant que les données sont déjà disponibles dans la machine d'estimation de probabilité, dans lequel l'indicateur de même adresse (3601) génère une indication pour la machine d'estimation de probabilité indiquant que les données sont déjà dans une machine d'estimation de probabilité sur la base du contexte partiel qui est adressé. 53. Décodeur selon la revendication 51, caractérisé en ce qu'il comprend en outre une pluralité de registres à décalage (3501, 3502, 3503) couplés au modèle de contexte afin de produire l'adresse de contexte partiel. 54. Décodeur selon la revendication 51, caractérisé en ce qu'il comprend en outre un tampon de ligne (3500) couplé pour produire une pluralité de lignes au-dessus. 55. Modèle de contexte caractérisé en ce qu'il comprend: une première unité de plan mémoire binaire (1702, 1706) couplée pour recevoir des données moins importantes et des données les plus importantes pour déterminer quels plans mémoire binaires comportent des données en leur sein, dans lequel la première unité de plan mémoire binaire génère une indication du plan mémoire binaire avec le premier bit activé pour la totalité de l'unité de codage en vue d'une utilisation lors du traitement des données moins importantes; un mécanisme de comparaison (1703, 1704) couplé pour recevoir les données moins importantes et les données les plus importantes afin de générer une information de signalisation pour les données moins importantes; une mémoire (1707) couplée pour recevoir le bit de signe, les données les plus importantes et une indication du premier plan mémoire binaire comportant les données, dans lequel la mémoire (1707) retarde des coefficients pour produire une information de conditionnement; un premier modèle de contexte (1710) couplé à la mémoire pour produire des contextes pour des bits de signe; un second modèle de contexte (1711) couplé à la mémoire et aux données les plus importantes pour produire les contextes pour des bits de têtes; et un troisième modèle de contexte (1712) couplé à la mémoire et aux données les plus importantes pour produire des contextes pour des bits de queue. 56. Modèle de contexte selon la revendication 55, caractérisé en ce qu'il comprend un mécanisme de séparation (1701) pour séparer les données d'entrée selon les données plus importantes et les données moins importantes. 57. Modèle de contexte selon la revendication 56, caractérisé en ce que le mécanisme de séparation comprend un décaleur à barillet (1701). 58. Modèle de contexte selon la revendication 57, caractérisé en ce que le décaleur en barillet (1701) décale les données sur la base d'un niveau de quantification. 59. Modèle de contexte selon la revendication 55, caractérisé en ce que le mécanisme de comparaison comprend: une première unité de comparaison (1703) pour déterminer si les données les plus importantes sont égales à zéro afin d'indiquer qu'un bit de queue est déjà survenu, dans laquelle la sortie de la première unité de comparaison est un bit de queue activée; une seconde unité de comparaison (1704) pour déterminer si oui ou non les données les plus importantes sont égales à l'unité, dans laquelle une sortie de la seconde unité de comparaison est égale à zéro lorsque les données les plus importantes sont égales à l'unité; et un multiplexeur (1705) couplé pour recevoir la sortie de la seconde unité de comparaison (1704) et le bit de signe afin d'émettre en sortie un premier bit de queue si l'entrée de sélection est dans un premier état et afin d'émettre en sortie de signe si l'entrée de sélection est dans un second état. 60. Modèle de contexte selon la revendication 58, caractérisé en ce que l'entrée de sélection comprend la sortie de queue activée de la première unité de comparaison (1703). 61. Modèle de contexte selon la revendication 58, caractérisé en ce qu'au moins l'une des prpremière et seconde unités de comparaison (1703, 1704) comprend un comparateur binaire. 62. Modèle de contexte selon la revendication 55, caractérisé en ce que la première unité de plan mémoire binaire comprend: une porte OU (1801) couplée pour recevoir un coefficient et un retour; un registre (1802) couplé pour recevoir la sortie de la porte OU; et un codeur de priorité (1803) couplé pour recevoir la sortie du registre afin d'enregistrer le premier plan mémoire binaire du coefficient qui comporte un 1. 63. Modèle de contexte selon la revendication 62, caractérisé en ce que le registre (1802) inclut une entrée de remise à l'état initial afin de remettre à l'état initial le contenu du registre au démarrage de l'unité de codage. 64. Modèle de contexte selon la revendication 62, caractérisé en ce que l'entrée de remise à l'état initial remet également à l'état initial le contenu du registre au démarrage de chaque arborescence. 65. Procédé de réalisation de compression, caractérisé en ce qu'il comprend les étapes de: détermination de la longueur moyenne de mots de code afin d'identifier un débit de codage; et réglage d'un débit de compression sur la base d'un niveau souhaité de compression. 66. Procédé selon la revendication 65, caractérisé en ce qu'il comprend en outre les étapes de: augmentation d'une valeur de niveau de quantification si le débit de codage indique que la compression est au- dessous d'un premier niveau souhaitable; et diminution de la valeur de quantification si le débit de codage indique qu'une compression est au- dessus du second niveau souhaité. 67. Procédé selon la revendication 66, caractérisé en ce que les premier et second niveaux souhaitables ne sont pas les mêmes. 68. Procédé selon la revendication 65, caractérisé en ce que l'étape de détermination de la longueur moyenne de mots de code est réalisée après une génération de bits. 69. Procédé selon la revendication 65, caractérisé en ce qu'il comprend en outre l'étape de signalisation d'un nouveau niveau de compression à un décodeur. 70. Procédé selon la revendication 69, caractérisé en ce que la signalisation est explicite. 71. Procédé selon la revendication 69, caractérisé en ce que la signalisation est implicite. 72. Système caractérisé en ce qu'il comprend: un modèle de contexte (3505); une machine d'estimation de probabilité (3506) couplée au modèle de contexte; un générateur de bits (3507) couplé à la machine d'estimation de probabilité; et une commande de débit de codeur couplée à une sortie du générateur de bit afin de commander le débit de codage en déterminant une longueur de mot de code moyenne. 73. Système selon la revendication 72, caractérisé en ce qu'une commande de débit de codeur règle la quantification. 74. Système selon la revendication 72, caractérisé en ce qu'il comprend un bloc de signalisation pour signaler à un décodeur un nouveau niveau de quantification. 75. Système selon la revendication 72, caractérisé en ce qu'il comprend enoutre un bloc de signalisation pour générer des données d'en-tête pour une sortie de train de données comprimé du codeur qui est concaténée sur le train de bits comprimé afin d'indiquer au décodeur un nouveau niveau de quantification. 76. Système selon la revendication 72, caractérisé en ce que la commande de débit de codeur stocke une indication du niveau de quantification qui est nécessaire pour une utilisation ultérieur pour le décodeur. 77. Procédé de traitement d'une partie la moins importante de plans mémoire binaires de données pour un jeu de coefficients transformés, caractérisé en ce qu'il comprend les étapes de: lecture d'une première quantité de données dans une mémoire et écriture d'une seconde quantité de données supérieure à la première dans une mémoire tout en lisant la première quantité de données afin de compenser des plans mémoire binaires transformés avec moins de données dans les plans mémoire binaires d'ordre inférieur du jeux de coefficients transformés. 78. Procédé selon la revendication 77, caractérisé en ce que les bits requis pour stocker les coefficients de groupage les moins importants augmentent lorsque le nombre de plans mémoire binaires diminue.