FR2767999A1 - Procedes et dispositifs de traitement de donnees et notamment de compression et de decompression d'images - Google Patents

Procedes et dispositifs de traitement de donnees et notamment de compression et de decompression d'images Download PDF

Info

Publication number
FR2767999A1
FR2767999A1 FR9710826A FR9710826A FR2767999A1 FR 2767999 A1 FR2767999 A1 FR 2767999A1 FR 9710826 A FR9710826 A FR 9710826A FR 9710826 A FR9710826 A FR 9710826A FR 2767999 A1 FR2767999 A1 FR 2767999A1
Authority
FR
France
Prior art keywords
data
elementary
parameters
image
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9710826A
Other languages
English (en)
Other versions
FR2767999B1 (fr
Inventor
Maryline Charrier
Claude Dierieck
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR9710826A priority Critical patent/FR2767999B1/fr
Priority to US09/138,646 priority patent/US6498866B2/en
Publication of FR2767999A1 publication Critical patent/FR2767999A1/fr
Application granted granted Critical
Publication of FR2767999B1 publication Critical patent/FR2767999B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/99Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals involving fractal coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/98Adaptive-dynamic-range coding [ADRC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)

Abstract

Selon l'invention, le procédé de traitement primaire d'au moins deux ensembles de données primaires dits " premiers ensembles de données ", comporte :- pour chaque premier ensemble de données, une étape de " construction " (205 à 209) d'une application contractive globale dite " de premier type ", pour ledit premier ensemble de données, dont le point fixe constitue une approximation de tout ou partie de cet ensemble, en déterminant des paramètres (ai , b) de l'application contractive globale de façon à permettre la mise en oeuvre, sur un deuxième ensemble de données, d'une méthode d'approximations successives convergeant vers ledit point fixe;- une étape d'organisation d'un fichier informatique comportant des données représentatives de chaque ensemble de paramètres provenant d'une étape de construction appliquée à chaque premier ensemble de données, les paramètres (ai , b) ainsi organisés en fichier constituant une représentation primaire desdits premiers ensembles de données.

Description

1i 2767999 La présente invention concerne, d'une manière générale, un
procédé et un dispositif pour le traitement de données, notamment la représentation, la génération, la restitution, la régénération ou le traitement
itératif de données.
Plus particulièrement, la présente invention vise la transmission (c'est-à-dire la représentation à distance) et/ou le stockage (c'est-àdire la représentation dans une mémoire) de données, avec ou sans compression de celles-ci. Ces données peuvent avantageusement être constituées par les données numériques ou analogiques d'une image ou séquence d'images, et/ou les données numériques ou analogiques relatives à du son (musique, parole, etc.), et/ou les données numériques ou analogiques relatives à un signal mono
ou multidimensionnel quelconque.
Avant d'exposer les objectifs et moyens de l'invention, on se propose ciaprès de donner les définitions suivantes: "Ensemble de données": ensemble de données quelconques représentant des grandeurs physiques (le plus souvent des niveaux de tension) pouvant représenter elles- mêmes d'autres grandeurs physiquement perceptibles ou mesurables. Dans des applications privilégiées, les ensembles de données concernés sont des images, du son ou des signaux mono ou multidimensionnels, etc... Dans l'application concernant le traitement d'images, on visera parfois l"'image" en lieu et place de l"ensemble de données" relatives à l'image. Ce qui sera exposé ci-après à propos des "images" ou "sous- images"
2 2767999
est respectivement applicable aux "ensembles de données" ou "sous-
ensembles de données" et vice versa.
"Représentation de données": tout "traitement" d'un ensemble de données d'un type donné, résultant dans la transformation parfaite ou imparfaite dudit ensemble de données, dans un autre type. Exemple: les données pourront être constituées par les 256 niveaux de gris des pixels d'une image, leur représentation consistant en une série de mots binaires aptes à être stockés ou transmis; réciproquement, la représentation des données constituées par lesdits mots binaires pourra consister en leur transformation
pour retrouver des données du même type que les données initiales.
"Représentation primaire": par convention, tout traitement résultant dans la transformation des données d'un premier type vers des données d'un second type. On parlera dans ce cas d'un "traitement primaire" des données "Représentation secondaire": par convention, la transformation de données du second type résultant d'un traitement primaire. On parlera dans
ce cas de "traitement secondaire".
"Restitution de données": cas particulier d'une représentation secondaire dans lequel les données du second type sont transformées dans
des données du premier type. Cette restitution peut être parfaite ou imparfaite.
Un "espace métrique" est un ensemble d'éléments muni d'une fonctionnelle distance qui est symétrique, positive et satisfait l'inégalité triangulaire. Cet espace est "complet" lorsqu'il contient tous les points limites de
toutes les suites convergentes.
Une "application Lipschitzienne": une application qui transforme les points d'un espace métrique dans le même espace et pour laquelle l'ensemble des rapports de la distance de deux éléments transformés par ladite
application, sur la distance des deux dits éléments, est borné.
Une "application contractive" ou "contraction": une application Lipschitzienne pour laquelle le plus petit des majorants (facteur de contraction) dudit ensemble de rapports est inférieur à l'unité. Toutefois, au sens de la
3 2767999
présente invention, sont contractives toutes les applications convergentes, c'est-à-dire possédant un point fixe (permettant ainsi la mise en oeuvre
d'approximations successives) dans un sous-ensemble de l'espace métrique.
Une "similarité" est une application Lipschitzienne pour laquelle le rapport de la distance de deux éléments transformés sur la distance desdits
éléments est une quantité fixe. Une similarité linéaire est une "similitude".
Une "similarité contractive" est une application Lipschitzienne pour laquelle le rapport de la distance de deux éléments transformés sur la distance
desdits éléments est une quantité fixe strictement inférieure à l'unité.
Le "point fixe" d'une contraction d'un espace métrique complet dans le même espace (ou d'un sous-ensemble de cet espace dans lui-même)
est l'unique élément qui est laissé invariant par ladite application contractive.
La "construction" d'une application contractive sur un ensemble de données consiste à constituer une famille de contractions susceptibles de transformer les données et à sélectionner les paramètres de l'une desdites
contractions afin de satisfaire une ou plusieurs conditions prédéterminées.
La "méthode des approximations successives" permet d'approcher de façon itérative aussi près que l'on le souhaite, le point fixe d'une contraction. En partant d'un élément arbitraire, on applique sur ce dernier ladite contraction. On applique ensuite la même contraction sur la transformée préalablement obtenue. En réitérant ce processus on s'approche
successivement et inéluctablement du point fixe de la contraction.
"Une meilleure approximation" d'un élément dans un espace métrique est un point d'un sous-ensemble de candidats, qui sont eux-mêmes
des points dudit espace, qui minimise la distance audit élément.
"Une bonne approximation" d'un élément dans un espace métrique est un point d'un sous-ensemble dudit espace qui est proche avec
une erreur prédéterminée d'une meilleure approximation prédéterminée.
On connaît, dans l'état de la technique, divers procédés de
représentation d'image, avec compression, utilisant la technique dite "fractale".
4 2767999
Par le document US-A-5.065.447, on connaît un procédé et un dispositif permettant le traitement ou le stockage d'image avec compression des données relatives à l'image initiale. Dans ce procédé, les données relatives à l'image initiale sont divisées, c'est-à-dire que l'image est découpée en une pluralité de sous images élémentaires (appelées "domain blocks"). Ce procédé consiste ensuite à générer un dictionnaire ordonné d'un ensemble de sous images de référence (appelées "range blocks") constituées à partir de portions d'image de taille prédéterminée ayant subi un certain nombre d'opérations prédéterminées telles que rotation et retournement selon divers axes de symétrie. Ensuite, pour chaque sous-image élémentaire, on procède à une comparaison avec l'ensemble des sous images de référence du dictionnaire et on sélectionne dans le dictionnaire la sous image de référence la plus similaire de la sous image élémentaire considérée. Enfin, le procédé consiste à traiter ou à stocker des informations paramétriques relatives aux adresses des sous images de référence sélectionnées dans le dictionnaire, pour représenter
chacune des sous images élémentaires d'origine.
C'est par cet ensemble d'opérations que le procédé décrit dans ce document permet d'obtenir une première représentation de l'image avec
compression des données.
Pour réaliser, à partir desdites informations paramétriques, la restitution de l'image initiale, le procédé et le dispositif décrits dans ce document, effectuent les opérations suivantes: à partir d'une image arbitraire de départ, on procède à des étapes similaires à celles ci-dessus, c'est-à-dire que l'on partitionne l'image arbitraire de départ et que l'on constitue un dictionnaire à partir des sous-images élémentaires de celle-ci. Toutefois, le dictionnaire n'est constitué que de façon partielle en n'effectuant pour chaque sous image que l'opération prédéterminée correspondant à l'adresse
concernée du dictionnaire pour la position de la sous-image considérée.
Les données ainsi obtenues sont utilisées pour réitérer ce processus jusqu'à ce que la différence entre deux images consécutivement
2767999
obtenues soit inférieure à un seuil prédéterminé. L'image obtenue en dernier
lieu est alors une approximation de l'image initiale.
Cette méthode, intéressante au plan théorique, présente pour inconvénient majeur qu'elle est parfois difficilement praticable au plan industriel avec les moyens connus à ce jour. En effet, chaque image doit donner lieu à une longue analyse avec constitution d'un dictionnaire particulièrement important, les sous images élémentaires de l'image à stocker ou à transmettre étant toutes comparées à chacune des sous images de référence présentes dans le dictionnaire. Les inventeurs, qui ont procédé à des simulations, ont ainsi constaté que pour certaines images de taille et de résolution moyennes (512 x 512 pixels à 3 x 256 niveaux de couleur) le temps de traitement pour la compression était de l'ordre de 1000 à 2000 secondes sur une station de travail, soit de l'ordre d'une demi-heure. Un tel temps de traitement est
évidemment prohibitif pour quasiment toute application industrielle.
On connaît par le document WO-A-93/17519, un autre procédé et dispositif permettant le traitement d'images avec compression des données relatives à l'image initiale. Dans ce procédé les données relatives à l'image initiale sont également partitionnées, c'est-à-dire que l'image est divisée en une pluralité de sous images élémentaires (appelées "domains"). Dans ce procédé on détermine ensuite un ensemble de transformées fractales liant les sous images à l'ensemble des données initiales, c'est-à-dire que l'on recherche dans l'image initiale une portion d'image semblable à l'image élémentaire considérée, de façon à minimiser l'erreur entre les données initiales et la donnée approximée ainsi obtenue. Les coefficients de l'ensemble de transformations fractales ainsi réalisées constituent la première représentation de l'image initiale. Pour réaliser la restitution de l'image, le procédé et le dispositif décrits dans ce document procèdent à la recherche des points fixes des transformations fractales élémentaires dont les coefficients ont été reçus sans toutefois expliquer comment cette recherche est effectuée. L'image initiale est
ainsi restituée en procédant à une réunion des sous-images restituées.
6 2767999
Cette méthode est également intéressante au plan théorique.
Toutefois, les inventeurs ont constaté des dégradations importantes de la
qualité de l'image restituée.
Les inventeurs ont cherché à développer un procédé de traitement de données du même genre que les procédés de l'état de la technique analysé ci-dessus, mais présentant de meilleures performances tant au plan de la qualité des données restituées qu'au plan de la vitesse de traitement. Au cours de leur recherche, les inventeurs ont découvert que la
raison pour laquelle les procédés décrits dans US-A-5.065.447 et WO-A-
93/17519 ont les défauts susmentionnés tient au fait que les deux procédés font intervenir des transformations géométriques de portions d'images constituées essentiellement par des similarités contractives (construction du
dictionnaire dans US-A-5.065.447 et transformation fractale dans WO-A-
93/17519). Ils ont en fait pu mettre en évidence qu'il s'agit dans les deux cas de la mise en oeuvre d'une idée largement partagée par l'homme du métier concerné par la compression fractale au moment du dépôt de la présente demande, idée selon laquelle les images seraient, quelle que soit leur origine, constituées essentiellement d'éléments ou de parties présentant entre-eux
d'importants degrés de ressemblance.
Or en fait, les performances de WO-A-93/17519 sont très faibles sur le plan de la qualité de l'image restituée car les inventeurs ont découvert que les capacités de restitution de similitudes contractives sont très limitées contrairement à la croyance desdits hommes de l'art à la date du dépôt de la
présente demande.
De même les performances de US-A-5.065.447 sont très limitées sur le plan du temps de traitement. Comme les capacités de restitution des
similitudes contractives sont intrinsèquement limitées, I'auteur de US-A-
5.065.447 est amené à la réalisation d'un important dictionnaire qui est construit sur la base de nombreuses transformations de sous-images dans le procédé selon US-A-5.065.447: il s'agit en effet de multiplier artificiellement les
7 2767999
éléments de ressemblance, ce qui permet certes d'améliorer sensiblement la
qualité de l'image restituée, mais aux dépens du temps de calcul.
Les inventeurs ont donc cherché à réaliser un procédé et un dispositif pour le traitement de données, notamment d'images, permettant d'obtenir de meilleures performances que l'état de la technique précité tant sur le plan de la qualité des données ou de l'image restituée que sur celui de la rapidité de calcul, et susceptible d'aboutir à une compression significative des
données à transmettre ou à stocker.
Dans le cas o plusieurs images doivent être décomprimées et affichées simultanément, les dispositifs connus dans l'art antérieur, imposent l'ouverture d'autant de fichiers qu'il y a d'images à décomprimer, ce qui rend
l'opération de décompression lente.
Grâce aux dispositions du procédé de traitement primaire et du dispositif de traitement primaire visés par la présente invention telle qu'elle ressort de la présente demande, puisqu'un fichier est organisé avec des paramètres relatifs à plusieurs ensembles de données, lorsque l'on souhaite accéder simultanément à des paramètres relatifs à différents ensembles de données, par exemple pour afficher sur un écran des données dépendant de ces paramètres, on évite l'ouverture de plusieurs fichiers informatiques. Le
procédé selon l'invention permet alors un gain de temps important.
Par exemple, lorsque les paramètres constituent des données compressées relatives à des images, un affichage rapide de plusieurs images
décompressées est possible.
Conformément à l'invention, pour traiter, et notamment représenter, un ensemble de données initiales représentatives de grandeurs physiques, notamment avec compression desdites données initiales, il suffit de construire, par des moyens appropriés, une application contractive globale,
agissant sur lesdites données.
8 2767999
Une autre caractéristique importante de l'invention réside dans le fait que pour construire ladite application contractive globale il y a lieu de mettre en oeuvre au moins une application appartenant au groupe des applications constitué des applications multidimensionnelles et des applications non linéaires. Ce faisant, on exclut tout recours à des transformations mathématiques appartenant à la classe des similarités contractives, ce qui
permet d'éviter les inconvénients relevés plus haut.
Toutefois, pour construire ladite application contractive globale agissant sur les données, l'homme du métier a à sa disposition un très large éventail d'outils mathématiques dans lequel il peut puiser. Il peut par conséquent choisir parmi ces outils ceux qui sont le plus favorables aux performances, par exemple en conjonction avec le type de données à représenter ou l'application particulière visée. Une telle possibilité n'existe pas dans l'état de la technique analysé plus haut et s'avère très avantageuse. Ainsi, par exemple, dans le cas d'un traitement local de l'image, par partition de cette dernière en sous- images élémentaires, I'homme du métier pourra choisir, pour le traitement local, des applications qui ne soient pas forcément contractives, ce qui lui donne un important choix dans les possibilités de traitement local de l'image et lui laisse ainsi une grande liberté. En particulier, il pourra choisir au niveau local des applications Lipschitziennes qui lui permettront de faciliter la
mise en oeuvre du caractère contractif de l'application globale.
Par ailleurs, la mise en oeuvre d'une méthode d'approximations successives, laisse à l'homme du métier, la liberté de choisir l'écart final entre
ledit point fixe et les données ainsi restituées ou générées.
En évitant la constitution d'un dictionnaire et la longue analyse décrite dans le document US-A-5.065.447, et grâce aux caractéristiques de la présente invention, le traitement d'une image est notablement accéléré par rapport au document US précité. En mettant en oeuvre leur mode préféré de réalisation, les inventeurs ont pu constater que pour une image de 512 x 512 pixels à 3 x 256 niveaux de couleur, le temps de traitement, était de l'ordre de moins de 100 secondes sur une station de travail ils ont en outre tout lieu de
9 2767999
croire que des perfectionnements apportés au procédé et dispositif succinctement définis plus haut, permettront d'obtenir des performances en
matière de vitesse.
On notera en outre que comme les applications élémentaires construites appartiennent au groupe d'applications constitué des applications multidimensionnelles et des applications non linéaires, on évite les applications
appartenant à la classe des similitudes, avec les avantages observés plus haut.
Le procédé de traitement secondaire et le dispositif de traitement secondaire visés par l'invention, telle qu'elle ressort de la présente demande, présentent les mêmes avantages que ceux exposés ci-dessus. Ils ne sont donc
pas rappelés ici.
En outre, la méthode d'approximations successives utilisée pour le traitement secondaire est mise en oeuvre de façon particulièrement simple à partir des paramètres obtenus à l'issue du traitement primaire, parce que ces paramètres sont indépendants des dimensions du sous- ensemble élémentaire auquel ils sont associés. Les inventeurs ont pu constater, dans le domaine de traitement d'images avec compression, de bonnes performances tant sur le plan de la qualité de l'image restituée que sur celui de la vitesse de traitement
rappelée supra.
L'invention vise aussi une imprimante, un photocopieur, un appareil photographique et un dispositif de télécopie comportant un dispositif
de traitement tel que succinctement exposé ci-dessus.
L'invention vise encore une mémoire qui conserve: - des paramètres et des informations de partition issues d'un traitement primaire tel que succinctement exposé ci-dessus et - des instructions pour un logiciel permettant la mise en oeuvre d'un procédé de
traitement secondaire tel que succinctement exposé ci-dessus.
Les avantages de ces dispositifs et mémoire étant identiques à
ceux qui sont exposés ci-dessus, ils ne sont pas rappelés ici.
Les avantages de ces dispositifs et mémoire étant identiques à
ceux qui sont exposés ci-dessus, ils ne sont pas rappelés ici.
2767999
Les avantages de ces dispositifs et mémoire étant identiques à
ceux qui sont exposés ci-dessus, ils ne sont pas rappelés ici.
Les caractéristiques, avantages et autres objets de l'invention
ressortiront d'ailleurs lors de la description des dessins annexés sur lesquels:
- la figure 1 illustre de façon schématique une partition d'une image de 512 x 512 pixels en sous ensembles élémentaires, constitués de carrés de 32 x 32 pixels, - la figure 2 illustre de façon schématique une division d'une image de 512 x 512 pixels en un recouvrement par ardoises, constituées par des carrés de 32 x 32 pixels, décalés horizontalement et verticalement de 16 pixels,
- la figure 3 illustre de façon schématique l'agencement d'un sous-
ensemble élémentaire Ki et de ses quatre sous-ensembles de travail L,, L2, L3 et L4, qui, dans un premier mode de réalisation de l'invention, sont de taille identique à- celle du sous-ensemble élémentaire Ki et décalés dans les deux directions, par rapport audit sous-ensemble élémentaire, de manière prédéterminée, - la figure 3A est similaire à la figure 3 et illustre de façon schématique, un deuxième mode, préféré, de réalisation de l'invention, dans
lequel l'agencement d'un sous-ensemble élémentaire Ki et de ses quatre sous-
ensembles de travail LI, L2, L3 et L4, dont chaque dimension est double de celle du sous-ensemble élémentaire Ki associé, et qui est décalée dans les deux directions, par rapport audit sous-ensemble élémentaire, de manière prédéterminée, - la figure 4 est un schéma bloc simplifié d'un mode particulier de réalisation du dispositif de traitement primaire d'un ensemble de données, - la figure 5 est un schéma de principe d'un dispositif mettant en oeuvre le dispositif de la figure 4, - la figure 6 est un schéma bloc simplifié d'un mode particulier de réalisation du dispositif de traitement secondaire d'un ensemble de données, il 2767999 la figure 7 est un schéma de principe d'un dispositif mettant en oeuvre le dispositif de la figure 6, - la figure 8 est un schéma de principe d'un dispositif de traitement primaire et de traitement secondaire, - la figure 9 est un schéma de principe d'un autre dispositif de traitement primaire et de traitement secondaire, - la figure 9A est un schéma bloc simplifié d'un mode particulier de réalisation du dispositif de traitement de la figure 9, - la figure 10 est un organigramme simplifié de compression d'une image couleur de 512 x 512 pixels mis en oeuvre dans le dispositif des figures 4, 9 et 9A, - les figures 11, 12, 12A, 12B, 13, 14 et 15 sont des organigrammes illustrant certaines opérations de l'organigramme de la figure , - la figure 16 est un organigramme simplifié de décompression d'une image couleur mis en oeuvre dans le dispositif des figures 6, 9 et 9A, - la figure 16A est un organigramme illustrant une opération de l'organigramme de la figure 16 - les figures 17, 17A et 17B sont des organigrammes illustrant une opération de l'organigramme de la figure 16, - la figure 18 est un organigramme d'un programme de configuration mis en oeuvre dans le dispositif de la figure 9A, - les figures 19 et 20 sont des organigrammes illustrant certaines opérations de l'organigramme de la figure 10 et d'une première de ses variantes, - la figure 21A est une représentation d'une succession de partitions de sous-ensembles élémentaires, - la figure 21B est une représentation de structure d'informations de partition et de paramètres représentant cette succession de partitions,
12 2767999
- la figure 21C est une représentation de l'organisation des paramètres et des informations de partition résultant du traitement primaire d'une seule image, - la figure 21D est une représentation d'une deuxième variante de I'organisation des paramètres et des informations de partition résultant du traitement primaire d'une seule image, - la figure 21E est une représentation des paramètres et des informations de partition résultant du traitement primaire et effectivement utilisés au cours d'un traitement secondaire, selon la deuxième variante illustrée en figure 21D, et - la figure 22 est une représentation d'une organisation des paramètres et des informations de partition résultant de traitements primaires
de plusieurs images.
La présente description est divisée en cinq parties:
- la première partie a trait à la description générale du procédé.
Cette partie est divisée en trois sections: ò la première section a trait à la théorie générale à la base de l'invention. Il y est exposé les concepts mathématiques qui sous-tendent, d'une manière générale, I'invention telle qu'elle peut être comprise dans ses termes les plus généraux; * la seconde section, expose, notamment à l'appui des figures 1 à 3, certaines caractéristiques particulières du premier mode de mise en oeuvre du procédé permettant le traitement primaire des données d'une image de 512 x 512 pixels aboutissant à la compression de celle-ci. Cette section explique plus particulièrement la structure de l'application multidimensionnelle choisie dans ce mode particulier de mise en oeuvre et les moyens permettant de
calculer les coefficients de cette application.
la troisième section expose les caractéristiques particulières du premier mode de mise en oeuvre du procédé de représentation secondaire des données de l'image, et notamment la restitution des données de celle-ci à
partir des données compressées obtenues à l'issue d'un traitement primaire.
13 2767999
Cette section expose plus particulièrement la méthode d'approximations
successives mise en oeuvre ici pour ce faire.
- la seconde partie a trait à la description d'un premier mode de
réalisation d'un dispositif de traitement et elle est divisée en six sections:
5. la première section a trait à la description d'un dispositif de traitement
primaire d'un ensemble de données, la seconde section a trait à un dispositif de traitement secondaire d'un ensemble de paramètres résultant du traitement primaire de données initiales. Un tel dispositif permet, par exemple, de restituer l'image compressée par le dispositif de traitement primaire,
la troisième section a trait à la description d'un dispositif incorporant à la fois
un dispositif de traitement primaire et un dispositif de traitement secondaire,
la quatrième section a trait à la description d'un organigramme particulier de
compression d'une image en couleurs de 512 x 512 pixels mis en oeuvre dans les moyens logiques que comporte le dispositif de traitement primaire,
ò la cinquième section a trait à la description de deux modes de réalisation
d'un organigramme de décompression mis en oeuvre dans les moyens logiques que comporte le dispositif de traitement secondaire, et
À la sixième section a trait à la description de l'organigramme du programme
de configuration du dispositif incorporant un dispositif de traitement primaire
et un dispositif de traitement secondaire.
- la troisième partie a trait à la description du mode de
réalisation préféré, mettant en oeuvre des sous-ensembles de travail présentant une taille différente de celle du sous-ensemble élémentaire correspondant. Dans cette partie, il est uniquement décrit les modifications qui sont apportées au mode de réalisation décrit dans la deuxième partie; - dans la quatrième partie il est décrit une troisième variante de réalisation qui met en oeuvre une application contractive globale composée d'applications non linéaires. Dans cette quatrième partie seuls sont exposés les éléments modifiés par rapport à ceux du mode de réalisation décrit dans la seconde partie; et
14 2767999
- dans la cinquième partie, il est décrit la deuxième variante de réalisation mettant en oeuvre un critère de qualité mesuré à l'aide de
l'application contractive globale.
1. Description générale du procédé
On va maintenant décrire à l'appui des figures 1 à 3, le procédé tel qu'il est mis en oeuvre dans le premier mode de réalisation de la présente
invention. Cette description va être faite à l'appui des figures précitées et d'un
certain nombre de concepts mathématiques appartenant d'une manière générale à la théorie de l'analyse et plus particulièrement à celles de la
topologie et de l'analyse fonctionnelle.
Dans ce mode particulier de réalisation, on se propose de compresser les données relatives à une image, pour aboutir à une "représentation primaire" de celle-ci, puis de restituer les données initiales, c'est-à-dire de réaliser une "représentation secondaire" des données compressées pour obtenir un ensemble de données du même type que les données initiales avec un écart maximum prédéterminé entre les données ainsi
restituées et les données initiales.
Pour fixer les idées, il est ici considéré une image couleur de 512 x 512 pixels à trois composantes, I'une de luminance et deux de chrominance, possédant chacune 256 niveaux. En général, une telle image couleur est captée sous forme de trois composantes relatives aux trois couleurs fondamentales, rouge, verte et bleue, puis convertie, en mettant en oeuvre des matrices de conversion bien connues de l'homme du métier, en composantes
de luminance et de chrominance.
Cette image numérique nécessite 512 x 512 x 24 bits à stocker soit, sans compression de données, 6 Mbit. Afin de mesurer l'écart entre l'image initiale et l'image restituée, il est considéré la racine carrée de l'écart quadratique moyen, moyenné sur tous les pixels et tous les composants (noté classiquement RMSE). L'efficacité d'un algorithme de compression est exprimée par le lien entre le taux de compression obtenu pour un écart (RMSE)
2767999
donné. Le mode particulier de réalisation décrit ici permet d'obtenir l'efficacité suivante:
Tableau 1
Nombre itérations à RMSE bits/pixel la décompression
- 7 7 - 15 0.75
- 8 5 -10 1.50
6-8 4 - 8 2.25
7 - 9 3 - 7 3.00
7- 10 2 - 5 4.50
Théorie générale à la base de l'invention
La représentation d'un ensemble de données, représentant elles-
mêmes des grandeurs physiques, telles que les données afférentes à l'image décrite ci-dessus, surtout lorsque l'on souhaite comprimer ces données à l'occasion de ladite représentation, peut s'analyser comme une approximation
de l'ensemble des données.
L'invention procède de la mise en évidence, par les inventeurs, du fait que la théorie du point fixe peut être mise en oeuvre pour réaliser une telle
approximation.
On considère que l'approximation d'un ensemble de données initiales est une opération consistant à rechercher dans une famille de candidats à la représentation, le (ou les) candidat(s) qui minimise(nt) un critère prédéterminé. Le plus souvent, le critère s'exprime par une distance entre deux éléments d'un espace métrique, ce qui peut s'exprimer par l'équation suivante: d: (g,h) E x E --> d(g,h) E R+ (1) oU:
16 2767999
- d est la fonction distance, - E est un espace métrique,
- R+ est l'ensemble des réel positifs ou zéro.
- g, h sont des éléments de l'espace métrique E, c'est-à-dire de I'espace qui contient toutes les applications d'un domaine de définition donné
Q c R. dans un domaine d'application Rd.
Les données à traiter sont des applications de Q c Rq dans Rd: g: (x, y) E n c Rq - g(x, y) e Rd o Rq et Rd sont des espaces produits de R d'un nombre (n ou d) donné de
dimensions. L'ensemble de données à traiter est un espace métrique E donné.
On notera que par exemple dans le cadre d'une image couleur 512 x 512 à 3 x 256 niveaux de chacune des trois composantes, les données de l'image initiale sont constituées par un tableau de correspondance qui à chaque position (xy) de pixel dans le domaine de définition [0,511] x [0,511] associe trois valeurs positives de niveaux des composantes de luminance, Y, de chrominance rouge, Cr, et de chrominance bleue, Cb, comprises entre 0 et 255. On observe que ces données de l'image initiale constituent en réalité une application f cE d'un domaine de l'espace R2 dans un domaine de l'espace R3 g:(x,y) E [0,511] x [0, 511]cR2 -> [0,255]3 c R3 Le problème de l'approximation d'un ensemble de données à traiter f e E consiste donc à rechercher dans une famille de candidats à la représentation G c E le ou les candidats g* dans G qui minimisent la distance (1). Ceci s'exprime par l'équation suivante:
?g e G:d(f,g)= inf {(f,g)j g eG}.
Lesdits candidats appartiennent à l'ensemble:
17 2767999
PG{(f)= g*e Gj d(f,g*)=inf Q(f,g)JgeG4, (2) o: - PG est l'opérateur de projection métrique,
- inf {...} est le plus grand des minorants de l'ensemble considéré {... }.
Dans la suite, on suppose que l'espace métrique est complet, ce qui garantit l'existence d'un point fixe unique pour chaque contraction de
I'espace métrique dans lui-même.
Les inventeurs ont mis en évidence que des candidats à la représentation peuvent être définis comme étant des points fixes relatifs à des contractions, une famille de contractions étant conjointement déterminée. Dans ces conditions, la recherche de la meilleure approximation revient à déterminer le point fixe relatif à la contraction minimisant ledit critère prédéterminé d'erreur
dans cette famille de contractions.
Ces conditions peuvent être exprimées ainsi: ?a *e (X):d(f,a) < d(f,a), Va et(X) (3) o (X) est l'extension à un sous-ensemble de contractions X,(X c CON(E)) du lien existant entre une contraction et son point fixe. Ce lien mathématique peut être exprimé de la façon suivante: :T CON(E)>t EE (4) o t est le point fixe de la contraction T ( T (t) = t), CON(E) I'ensemble des contractions de E. Le problème d'approximation peut, dans ces conditions, être reformulé ainsi qu'il suit: il s'agit de rechercher la contraction dont le point fixe
est la meilleure approximation des données initiales.
18 2767999
On observera que ce faisant les inventeurs ont déplacé le problème à résoudre puisqu'il ne s'agit plus maintenant de chercher un candidat constituant en lui-même une meilleure approximation mais une
contraction dont le point fixe constitue la meilleure approximation.
Ceci peut être exprimé par l'inéquation: ?T* eX:d(f, (T*))< d(f,a(T)) V TGX (5)
o X est un sous-ensemble de contractions de E (X c CON(E)).
Les inventeurs ont ainsi mis en évidence que, conformément au procédé général découvert par eux, I'étape essentielle pour aboutir à une représentation de données à traiter, notamment dans le cadre d'une compression des données, consiste: - à constituer une famille de contractions susceptibles de transformer les données, et - à sélectionner les paramètres de l'une desdites contractions afin de satisfaire une ou plusieurs conditions prédéterminées, en l'espèce minimiser la distance entre les données initiales et le point fixe constituant la meilleure
approximation desdites données initiales.
Il s'agit là, conformément à l'invention, d'une étape de
"construction" de l'application contractive globale.
Ensuite, conformément à l'invention, les paramètres ainsi déterminés doivent permettre, pour la restitution de l'ensemble initial de données, la mise en oeuvre d'une méthode d'approximations successives convergeant vers le point fixe de ladite transformée contractive globale représentatif dudit ensemble de données initiales, ce qui permet pour les raisons exposées plus haut de restituer avec la meilleure approximation ledit
ensemble de données à traiter.
On observera que pour la mise en oeuvre du procédé général selon l'invention, et notamment dans l'étape de construction de l'application
19 2767999
contractive globale, I'homme du métier a, pour constituer la famille de contractions susceptibles de transformer les données, un large éventail de choix d'applications mathématiques dans le groupe des applications constitué des applications multidimensionnelles et des applications non linéaires. Dans le mode de réalisation décrit ci-après, la contraction globale sera construite par morceaux, et pour chaque morceau il va être utilisé une application linéaire multidimensionnelle spécifique. Il pourrait utiliser d'autres applications, par exemple des applications non linéaires. Le procédé général, dont un mode de mise en oeuvre particulier va être décrit en détail ci-après, permet ainsi de très
nombreuses possibilités de traitement des données, en vue de les représenter.
On va maintenant décrire les moyens utilisés dans le mode
particulier de réalisation pour construire l'application contractive globale.
Les inventeurs ont mis en évidence le fait que pour rechercher une contraction dont le point fixe constitue la meilleure approximation des
données initiales, il fallait tout d'abord chercher un candidat constituant en lui-
même une bonne approximation, ce qui constitue une approche pratique pour
résoudre un tel problème.
Les inventeurs ont mis en évidence que ladite approche pratique peut consister à trouver la contraction qui minimise la distance entre les données initiales et transformées, en prenant en compte un facteur de
contraction estimé.
Cette reformulation du problème à résoudre peut être exprimée par le problème d'optimisation principal suivant: ?T C X: drf, (_cnf = min d f, (f T X (6) o con ( est le facteur de contraction de 'application contractive T. o con (T) est le facteur de contraction de l'application contractive T.
2767999
Comme, en réalité, il est parfois difficile de trouver ledit facteur de contraction de l'application globale, les inventeurs ont trouvé que, dans ces hypothèses, on peut se contenter de résoudre un problème d'optimisation simplifié aux termes duquel il faut trouver une contraction globale qui minimise la distance entre les données initiales et leur transformée. On observera, ici,
que le facteur 1/1-con(T) n'est plus pris en compte.
Ce problème d'optimisation simplifié s'exprime comme suit: ?T eX:d(f,T(f))= min (f, T(f T r EX (7)
Premier mode de traitement primaire des données de l'image.
Selon une caractéristique importante d'un des aspects de l'invention telle que mise en oeuvre ici, la contraction globale est construite par morceaux. Pour ce faire, il est procédé à une étape de "partition" de l'ensemble des données relatives à l'image, au cours de laquelle on partitionne ledit
ensemble en m "sous-ensembles élémentaires".
Dans le mode de réalisation particulier qui concerne le traitement
d'image, d'une manière générale, on partitionne l'image initiale, en m sous-
images élémentaires, elles aussi appelées "sous-ensembles élémentaires"
pour des raisons de clarté de la description.
On rappellera ici que d'une manière générale une "partition" de I'espace métrique Q, revient à définir l'ensemble T = {KiKi c Q,i = 1,., m} o KI,..., Km sont des sous-ensembles définis dans ledit espace métrique Q, devant respecter les quatre conditions suivantes: 1) les sous-ensembles Ki doivent être fermés, ce qui s'exprime par
Ki= adh Ki, i=1,...,m.
21 2767999
2) aucun des sous-ensembles K, ne peut avoir un intérieur vide,
ce qui s'exprime par: int Ki = 0, i = 1,.., m.
3) leur union doit produire la fermeture de l'espace métrique Q /n considéré, ce qui s'exprime par:adhQ = U K i=1 4) les intérieurs de chaque sous-ensemble Ki doivent être disjoints deux à deux, ce qui s'exprime par:
int K, rc int Kj = 0i,j= l,...,m, i j.
On notera ici également que la partition d'une donnée initiale d'un type donné (g e E) revient, d'une manière générale à définir une restriction gl K pour chaque sous-ensemble Ki de la partition X. Cette caractéristique permet, avantageusement, de faciliter le travail de construction de la contraction globale, en ramenant ce travail à celui de trouver des transformations mathématiques élémentaires ayant pour objet chacune de permettre la restitution du sous-ensemble élémentaire Ki. En effet, par définition, les sous-ensembles de données comportent moins de données que l'ensemble initial, et par conséquent il est sensiblement plus facile de trouver des transformations mathématiques permettant de restituer ces données, étant précisé à nouveau que l'ensemble des transformations mathématiques doit, au niveau de l'ensemble de l'image, constituer une
application contractive globale.
Par conséquent, l'application contractive globale T est ainsi construite par morceau, chaque morceau étant, conformément à cet aspect de
l'invention, une application Lipstchizienne.
On observera ici d'ailleurs que ces applications Lipstchiziennes élémentaires ne sont pas nécessairement contractives, et qu'à ce niveau également, grâce à l'invention, I'homme de l'art a à sa disposition un grand éventail d'applications mathématiques lui permettant de traiter les données
relatives aux sous-ensembles.
*22 2767999
On notera toutefois que dans certaines hypothèses, il n'y aura pas lieu de procéder à cette partition, par exemple lorsque l'image donne lieu à une
structure géométrique simple.
Selon l'aspect de l'invention décrit ici, pour chacun des m sous-
ensembles élémentaires (Ki,...,Km), on considère n sous-ensembles de travail (n = 4 dans ce mode de réalisation). Pour chacun des m sousensembles élémentaires réalisés au cours de la partition on construit l'application Lipstchizienne élémentaire considérée à partir de ces n sous-ensembles de travail. De manière à pouvoir considérer les n sous-ensembles de travail liés à chacun des m sous- ensembles élémentaires, on va réaliser une "division"
de l'ensemble de données initiales.
Cette division Z = {L Lj c Q2,j = 1,...,, de l'ensemble de données, qui est définie dans l'espace métrique n, doit respecter les trois conditions suivantes: 1) les sous-ensembles Lj doivent être fermés, ce qui s'exprime par: Lj = adh L, j = 1,....1 2) Aucun des sous-ensembles Li ne peut avoir un intérieur vide ce
qui s'exprime: int Lj É0, j = 1,...,1.
3) Leur union est incluse dans l'espace métrique Q, ce qui l s'exprime par: U Lj c Q j=l On observe à ce stade que la division ainsi réalisée englobe d'une part, les partitions, telles qu'elles ont été définies supra, mais englobe aussi, d'autre part, ce qu'on appellera un "recouvrement par ardoises" (notion connue en anglais par "tiling") pour lesquels les sous-ensembles Li sont susceptibles de se recouvrir, ce qui s'exprime par l'équation i+t L,,-,,;n+. 0,.;, j-1,
..-;'#j..DTD: 23 2767999
Dans le premier mode de réalisation, l'image de 512 x 512 pixels est, selon une partition initiale, partitionnée en 256 sous-ensembles
élémentaires carrés de 32 x 32 pixels (voir figure 1).
Conformément à une habitude dans le domaine de traitement de I'image, les données sont organisées comme suit: - le point de référence de coordonnées (0,0) est constitué par le point en bas à gauche de l'image; - les colonnes (abscisse x) sont numérotées de gauche à droite;
- les lignes (ordonnée y) sont numérotées de bas en haut.
Sur la figure I on a illustré de façon schématique en ordonnées le rang de certaines lignes de l'image et en abscisses le rang de certaines colonnes. Pour des raisons de clarté, l'échelle utilisée sur l'axe des abscisses et l'axe des ordonnées n'est pas uniforme. Sur la partie en bas à gauche de la figure 1 les 9 premiers carrés de 32 x 32 pixels sont illustrés, de façon à faire ressortir les rangs et colonnes constituant la frontière de ces derniers. Les carrés de 32 x 32 pixels constituent un exemple de partition du domaine
Q = [0,511] x [0,511] o l'image considérée est définie.
Dans le premier mode de réalisation, la division de l'image de 512 x 512 pixels en sous-ensembles de travail est illustrée en figure 2. Elle est similaire à la partition de la figure 1, à ceci près que les sousensembles de travail de 32 x 32 pixels sont décalés de 16 pixels dans les deux directions, et dans chaque sens de déplacement, par rapport aux sous-ensembles élémentaires. Sur cette figure, qui illustre le coin inférieur gauche de l'image de 512 x 512 pixels, les sous-ensembles élémentaires résultant de la partition sont illustrés en traits gras tandis que les sous-ensembles de travail résultant de la
division sont illustrés en traits pointillés et sont hachurés.
En figure 2, n'ont pas été représentés les sous-ensembles de travail touchant les bords de l'image. De nombreuses solutions existent pour
fournir à chaque sous-ensemble élémentaire qui n'est pas associé à des sous-
24 2767999
ensembles de travail intégralement à l'intérieur de l'image initiale, des sous-
ensembles de travail de substitution.
On note ici, que dans toute la suite de la description, le choix
d'une telle solution est appliqué, aussi bien aux sous-ensembles de travail pour le traitement primaire, pour le traitement secondaire et pour le traitement complexe: les points des sous-ensembles de travail définis ci-dessus qui n'appartiennent pas à l'image, c'est-à-dire ceux dont l'une au moins des coordonnées est négative, se voient fictivement associer une valeur moyenne, par exemple 127 pour la composante de luminance et les éventuelles
composantes de chrominance.
La figure 3 illustre comment, dans ce premier mode de réalisation, chaque sous-ensemble de travail Lú est lié à un sous-ensemble élémentaire Ki donné. Le sous-ensemble élémentaire Ki ayant pour coordonnées (xi,y) est illustré en traits gras, tandis que les sous- ensembles de travail correspondants sont illustrés en traits pointillés,flesautres sous-ensembles étant ébauchés en traits fins. On observe que, dans ce premier mode de réalisation, à chacun des sous- ensembles Ki sont liés quatre sous-ensembles de travail Lú (numérotés L", L4) décalés de 16 pixels dans les deux directions. Il s'agit en réalité des quatre sous-ensembles issus de la division qui recouvrent le sous- ensemble élémentaire considéré (issu de la partition). Les expressions ci-dessous montrent les coordonnées d'un sous-ensemble Ki et des sous- ensembles de
travail L,,..., L4.
Ki: [xi, xi + 31] x [yi, yi + 31] Li: [xi-16, x i + 15] x[yi + 16, yi +47] L2: [xi+16, xi + 47] x [yi + 16, yi + 47] L3: [xi-16, xi + 15] x [yi - 16, yi + 15] L4: [xi+16, xi+ 47] x [yi-16, yi + 15]
2767999
On note que, dans ce premier mode de réalisation, les sous-
ensembles résultant de la division présentent les mêmes dimensions que ceux résultant de la partition; en outre, dans ce premier mode de réalisation, la division de l'image en sous-ensembles de travail ne constitue pas un recouvrement par ardoises mais une simple partition en raison du fait que les sous-ensembles de travail présentent une taille identique aux sous-ensembles et que le décalage, entre un sous-ensemble de travail et le sous-ensemble élémentaire correspondant, est égal à un demi-côté des sous-ensembles
carrés considérés.
Les points des sous-ensembles de travail définis ci-dessus qui n'appartiennent pas à l'image, c'est-à-dire ceux dont l'une, au moins, des coordonnées est négative ou supérieure ou égale à 512, se voient fictivement associer une valeur moyenne, par exemple égale à 127, pour chaque composante. Infra il sera décrit en particulier à l'appui de la figure 3A un deuxième mode, préféré, de réalisation dans lequel, conformément à un autre aspect de l'invention, les sous-ensembles de travail présentent une taille différente de celle du sous-ensemble élémentaire auquel ils correspondent, la
division de l'image résultant ainsi en un recouvrement par ardoises.
On va maintenant définir l'application globale utilisée dans le
mode particulier de réalisation décrit à l'appui des figures 2 et 3.
On rappelle tout d'abord que l'application contractive globale consiste à prendre un élément g de l'espace métrique E pour le transformer en un élément T(g) du même espace métrique E ce qui s'exprime par T: g c E -> T(g) e E (8) L'appartenance de g à l'espace E (g e E) peut être exprimée également de la façon suivante:
26 2767999
g: (X, y) E Qc R --> g(x,y) E Rd (9) On observe en effet que l'équation (9) ne fait qu'expliciter le type de données spéciales considérées: à chaque couple de valeurs (xy) pris dans le domaine de définition (en l'espèce l'image plane Q c R2) correspond une valeur dans le domaine d'application Rd, c'est-à-dire trois valeurs parmi 256 niveaux des trois composantes, Y, Cr et Cb. On observera d'ailleurs que s'agissant du traitement d'images, le domaine de définition est R2, tandis que le domaine d'application est R3 puisque l'image couleur a trois composantes, I'une
de luminance et deux de chrominance.
Dans le mode particulier de réalisation des figures 2 et 3 décrit ci-
après et conformément à un autre aspect de l'invention, chaque "morceau" de l'application contractive globale, c'est-à-dire une application élémentaire Lipschitzienne, est une application multilinéaire du type: n T(g) K,:(x,y)EKi - [T(g)](xy) = aj.g (x,y)+b (10) j=I o: T(g)l Ki la restriction de T(g) au sous-ensemble élémentaire K, n > 1 la dimension de l'application multilinéaire a/, a, les coefficients multiplicatifs b le facteur de translation LI,... L, les sous-ensembles de travail, à position prédéterminée par
rapport à Ki et lié à ce sous-ensemble.
Ainsi dans l'exemple de la figure 3, les valeurs g (xy) des pixels de coordonnées (x,y), sont transformées comme suit:
27 2767999
[T(g)](x, y) = a,. g(x - 16, y + 16)+ a2. g(x+ 16, y+16)+ a3.g(x- 16,y16)+ a4.g(x + 16,y-16)+b (1 Obis) ou: g (x,y) est la valeur du pixel (x,y) dans l'image g (x, y) est un pixel du sous-ensemble élémentaire K.
g(x- 16, y + 16) est la valeur du pixel correspondant dans le sous-
ensemble de travail L,
g(x + 16, y + 16) est la valeur du pixel correspondant dans le sous-
ensemble de travail L2
g(x- 16, y - 16) est la valeur du pixel correspondant dans le sous-
ensemble de travail L3
g(x + 16, y - 16) est la valeur du pixel correspondant dans le sous-
ensemble de travail L4 aI.... a4 les coefficients multiplicatifs
b le facteur de translation.
On voit que les équations (10) et (10Obis) ci-dessus sont de nature linéaire et multidimensionnelle c'est-à-dire multilinéaire, les coefficients aj pourj = 1,..., n et b étant respectivement les coefficients multiplicatifs et le facteur de translation. Les coefficients (a,..., a., b) sont ici les "paramètres", au sens de
l'invention, de l'application élémentaire relative au sous-ensemble Ki.
L'ensemble des coefficients (al,..., an, b)K relatifs aux m sousensembles élémentaires (K,.... Km,,) constitue, dans ce mode de réalisation, "l'ensemble des
paramètres" de l'application contractive globale, au sens de l'invention.
28 2767999
On rappelle que dans le mode particulier de réalisation, n = 4, ce qui signifie que seulement quatre sous-ensembles de travail Lj, j = 1,..., n tels que ceux définis à l'appui de la figure 3, sont liés à chaque sousensemble
élémentaire Ki.
Ainsi, à chaque couple de valeurs (x,y) d'un sous-ensemble élémentaire Ki déterminé, on associe une valeur calculée à partir de l'équation multilinéaire (10) (voir l'exemple de la figure 3 et l'équation 10 bis). Ceci est fait
pour l'ensemble des m sous-ensembles élémentaires (KZ,..., Km).
On va maintenant expliquer comment les coefficients de l'application multilinéaire aj, j = 1,..., n et b sont déterminés pour chacun des
sous-ensembles élémentaires de travail Ki.
Pour résoudre le problème d'optimisation simplifié (7) il faut, d'une manière générale, pour chaque sous-ensemble élémentaire Ki, minimiser la distance entre la restriction au sous-ensemble élémentaire K, et sa transformée par l'application contractive globale. En d'autres termes, il faut minimiser les distances: d (fgi, T(f)lKi), i =,...m (11) Dans le mode particulier de réalisation, on met en oeuvre une méthode de minimisation des moindres carrés en présence de contraintes, o la quantité à minimiser est la distance définie dans l'équation (11) et s'exprime sous la forme: [d (f lKi, T(f)Ki)1 = (f(x,y) - [T(f)] (Xy))2 (12) (x,y) E Ki lail<, i= 1,---, n (13)
29 2767999
o P3 < 1/n.
En minimisant l'expression (12) sous les contraintes (13), on détermine chaque restriction de T(/) à Ki et en même temps les coefficients aj et
b de l'équation (10).
Les coefficients aj, b associés à chacun des sous-ensembles Ki
constituent la représentation primaire de l'ensemble de données initiales.
Le problème de minimisation selon les équations (10) et (12) sous les contraintes (13), afin de déterminer les coefficients (al,..., a,, b) pour
chaque K1: i = 1,..., m sera détaillé ci-après.
Pour chaque sous-ensemble élémentaire, nous considérons la fonction objectif K: Rn+l --> R définie comme suit: 4K,(al, '.,an,b) = f(xy)- aj) xL,(xy) + b. (14) (xy)K, = Le problème de minimisation sous contraintes revient donc à rechercher les (n+l) valeurs (al...,an b*, b)e C c R qui satisfont: K (al,...,a,, b)=min jK,(al,...,a,,,b)(a,...,a,,,b)eC), (15) o
C = Jaî,....an,b)j R+1 1-p<a,<f3;i=l,...,n}.
Rappelons tout d'abord que la résolution d'un problème de minimisation sans contraintes est bien connue de l'homme de l'art. Il s'agit dans ce cas de minimiser en général une fonction objectif du type:
2767999
Yt(cl,....Cm)=, F(xy)- m[-, cj gj(xy)+cm,(16) (0,y)EK o m est le nombre de paramètres de la fonction objectif et lorsque (cI,..., cm) parcourt tout l'espace Rm. Le vecteur (c*,..., cm*) recherché satisfait:
Y(cI*,....m)= min {(c,...,cm)l,..... Cm) E Rm}.
Ce vecteur (c*,..., Cm*) est caractérisé par l'équation d'Euler: (c C...n*)= O, (17) o IF (c*....cm*) est la dérivée de 'P (au sens de Fréchet). C'est une application linéaire et continue de Rm à R. Cette dernière équation est remplacée ici par les dérivées partielles de 'T au point (c *,...,cm*), par rapport à chaque variable. On obtient donc que (cl*....cm*) est caractérisé par: 01 T '(c.....cm*)= 0 P (cî* Cm)=(18) a Y (cI*, cm*) = 0 Tenant compte de la forme particulière de la fonctionnelle (16), les équations (18) sont équivalentes à:
31 2767999
m Zcj*.Gji = Si; i = 1,....,m, (19) j=l o Gj = E g(xy). g,(xy), I 1, m I Gmi = il...i(y =1,., m-l 1 (x(x,y))eK GminiGiro= gi (xy)M Gmm = nombre de points (x,y) dans Ki, Si= - gj(xy) F(xy), (x,y)eK
Sm F(xy).
(x,y) eK Les équations (19) forment un système linéaire d'équations facile
à résoudre par diverses méthodes bien connues dans les mathématiques.
La résolution du problème de minimisation (15) de la fonctionnelle (14) sous les contraintes (13) comprendra les étapes suivantes: a) Résolution du problème de minimisation sans contraintes de la fonctionnelle (14) sur n+l par la méthode décrite supra par les équations (16) à (19). La solution sera notée (àl,..., an, b) e R b) Si (a-...., anb)e C, donc si -1<3 <i <; i = I,... n alors la solution recherchée au problème décrit par les équations (15) et (16) est trouvée et donc (a,... ,an, ,= 1, ",an,b)
32 2767999
c) Si (l,...,,,,b) C, certaines contraintes sont violées. Ceci se traduira par une partition disjointe de l'ensemble des indices {,...,n}= NVu UVu LV o - NV est l'ensemble des indices i E {1,...,n} pour lesquels - <a, <1D UVest l'ensemble des indices j E {1,...,n} pour lesquels D <âj - LV est l'ensemble des indices k E {1,...,n} pour lesquels ak <- Donc exprimé de façon mathématique: {1,..., n} = NV u UVu LV (20) NV =E {1,...,n}- 13 <ai', <} (21) UV= {' E{1....n}l <ai;} (22) LV = e{1...,n} k < -} (23) Dans ce cas il convient de résoudre un problème de minimisation sans contraintes décrit par les équations (16) à (19) o F(xy) =f(x, y)- Y, P3 gl 4j (x, Y) + Y P gl L' (X, Y) (24) j EUV k ELV qi(cl..-Cm) = ( rF(x,y)E m-1 c.gj(x,y) +cjj (25) (x,y)EK =l o
33 2767999
m le nombre d'indices dans NV, g = L exprime que la j-me constanteviolée concerne le coefficient ai.
La solution du dernier problème (24) et (25) sera (c,... Cl').
Finalement la solution recherchée du problème avec contraintes sera a,: cj: j =1,...,m-1 o i e NV, (26) ak = k c UV, (27) a, = e [LV, (28) b= cm. (29) si toutefois (26) respecte les contraintes. Dans le cas contraire, il faudra réitérer
le processus.
Un organigramme permettant la partition de l'image de 512 x 512 pixels, sa division et le calcul, pour chacun des sous-espaces élémentaires Ki
de coefficients aj et b est décrit infra, à l'appui des figures 10 à 15.
On observe ici que, lorsque tous les sous-ensembles élémentaires possèdent les mêmes dimensions, un compromis doit être effectué. En effet, lorsque ces dimensions sont trop réduites, le taux de compression est limité puisque celui-ci est directement fonction du nombre de
pixels qui sont représentés par les cinq paramètres associés à chaque sous-
ensemble élémentaire. En revanche, lorsque les dimensions des sous-
ensembles élémentaires sont importantes, la qualité de l'image reconstruite après un traitement secondaire de ces paramètres, peut être trop limitée pour une exploitation confortable de l'image reconstruite, les plus petits détails
pouvant avoir été mal traités au cours du traitement primaire.
34 2767999
Dans une image, il est courant que certaines zones présentent très peu de détail et soient pratiquement uniformes et que d'autres zones de l'image présentent une grande complexité (complexité pouvant être représentée par la variance des valeurs de chaque composante des pixels de la zone considérée). L'invention propose, en complément de la mise en oeuvre de la
théorie exposée ci-dessus, une méthode permettant d'utiliser des sous-
ensembles élémentaires de grande dimension dans les zones de l'image les plus uniformes et des sous-ensembles élémentaires de plus petite dimension
dans les zones de l'image les moins uniformes. A cet effet, pour chaque sous-
ensemble élémentaire en cours de traitement, un critère de complexité, dit de "qualité", est déterminé et une estimation d'opportunité de partition est
effectuée. Lorsque cette estimation ne répond pas au critère de qualité, c'est-à-
dire lorsque que le sous-ensemble élémentaire considéré est supposé présenter une certaine complexité, il est partitionné en sous-ensembles élémentaires de plus petite dimension qui sont traités à leur tour, jusqu'à ce qu'une dimension minimale ait été atteinte. Dans les modes de réalisation décrits et représentés, cette partition consiste à diviser le sous-ensemble élémentaire en quatre sous-ensembles élémentaires égaux, de forme homothétique à celle du sous-ensemble élémentaire initial et décalés entre eux
dans chaque direction.
Premier mode de traitement secondaire des données compressées. On va maintenant décrire un premier mode de mise en oeuvre du procédé de représentation secondaire d'un ensemble de données constitué par des paramètres résultant d'un traitement primaire de données, conformément au premier mode de mise en oeuvre du procédé de traitement primaire décrit
ci-dessus.
2767999
Dans ce premier mode de réalisation, les paramètres issus du traitement primaire font l'objet du traitement secondaire, en vue de restituer,
avec le taux d'erreur mentionné supra, les données initiales.
Dans d'autres modes de réalisation, dont l'un est décrit infra, le traitement secondaire a pour objet de délivrer des données d'un autre type que
celui des données initiales.
D'une manière générale, dans le cas d'une restitution des données initiales, il est procédé à une étape de "calcul itératif' au cours de laquelle, à partir desdits paramètres (al,...,an,b) on met en oeuvre une méthode d'approximations successives convergeant vers le point fixe de l'application contractive globale (T) ce point fixe constituant une représentation
dudit ensemble de données initiales (f e E).
Pour mettre en oeuvre la méthode d'approximations successives dans le cadre d'une restitution, on applique conformément au premier mode de mise en oeuvre de l'invention, sur un ensemble de données arbitrairement choisi (xo0 e E), I'application contractive globale (T*) telle que définie plus haut (équations (8) et (10)). On applique ensuite la même contraction (T*) sur la transformée ainsi obtenue et on réitère ce processus jusqu'à ce que la distance entre deux transformées consécutives soit inférieure à un seuil donné. Ceci s'exprime par l'équation suivante: T (... T* (T* (xo))....)= (T*Y (xo) (30) En appliquant q fois l'application contractive globale sur le résultat de la transformée précédente, on obtient une bonne approximation def ce qui s'exprime par: (T* Y (xo) f (31) le critère d'arrêt des itérations étant exprimé comme suit:
36 2767999
d((T *)'(xo), ( T*)'+ (xo)) < g (32) o g est l'écart toléré sur un pixel multiplié par le nombre de pixels dans I'image. On notera que mettre en oeuvre l'application contractive globale (T) revient à effectuer les diverses partitions et divisions de l'image arbitraire et des transformées successives de celle-ci, de façon à pouvoir mettre en oeuvre l'équation (10) pour chacun des sous-ensembles élémentaires des partitions
considérées.
Infra, notamment à l'appui des figures 16 et 17, il est décrit un organigramme de restitution d'une image représentée conformément au premier mode de mise en oeuvre du procédé de traitement secondaire de l'invention.
Dans la description qui précède, I'application contractive globale
définie aux équations (8) et (10) est utilisée dans le processus de restitution de données. En effet, comme le but du traitement secondaire décrit plus haut est, dans ce mode de réalisation, d'obtenir une restitution aussi fidèle que possible des données initiales, c'est la même application contractive globale qui est
utilisée lors de l'étape de restitution.
En revanche, dans la quatrième variante décrite infra, à l'appui des figures 9, 9A, 18 et 19 o l'on souhaite obtenir, à l'issue du traitement secondaire, des données d'un type différent de celui des données initiales, une autre application contractive globale, et/ou un autre ensemble de définition
seront utilisés.
D'une manière générale, I'application contractive globale utilisée lors du traitement primaire est dite de "premier type"; celle utilisée lors du traitement secondaire est dite de "second type". En cas de restitution des données initiales, l'application contractive globale de second type est identique à celle de premier type. Dans le cas o au cours du traitement secondaire les
37 2767999
données d'un type différent de celui des données initiales sont obtenues, l'application contractive globale de second type sera différente de celle de
premier type.
2. Description d'un premier mode de réalisation d'un
dispositif de traitement Dispositif de traitement primaire d'un ensemble de données On va maintenant décrire à l'appui de la figure 4 un premier mode de réalisation d'un dispositif de traitement d'un ensemble de données représentatives de grandeurs physiques, et destiné à permettre une représentation primaire dudit ensemble par la mise en oeuvre du procédé décrit supra. Dans ce mode de réalisation, qui concerne un dispositif de traitement d'images en couleur, les données de l'image en 512 x 512 pixels sont admises en entrée, tandis qu'en sortie le dispositif délivre les paramètres
ai, i = 1,..., 4 et b et des informations de partition, relatifs à chacun des sous-
ensembles constituant une partition de l'image.
On notera ici que la présente invention n'est certainement pas limitée à un format d'image particulier mais qu'elle permet le traitement d'images de toutes tailles. Toutefois, dans un mode de réalisation décrit et représenté, l'image traitée et restituée est une image de 512 x 512 pixels à 256 niveaux sur chacune des trois composantes Y, luminance, Cr, chrominance
rouge, et Cb, chrominance bleue.
Sur le schéma-bloc de la figure 4, le dispositif de codage porte la
référence générale 500.
Il comporte, raccordés à un bus de données et d'adresses, désigné sous la référence 501: - un contrôleur (ALU + CTR) 550 incorporant une unité de logique arithmétique. Ce contrôleur est constitué, dans ce mode de réalisation, par un
38 2767999
microprocesseur du type de celui commercialisé par la Société INTEL sous la référence i486, - une mémoire vive RAM, portant la référence 510. Cette mémoire comporte un certain nombre de registres qui seront décrits ci-après et une partie adressable rapidement (cache) 514, - une mémoire programme 530, de type ROM, - un premier registre 560 de mémoire vive à accès direct (REG 1), - un second registre 570 de mémoire vive à accès direct (REG 2), - un tampon d'entrée (IBFR) 590, raccordé à un connecteur d'entrée 591 et - un tampon de sortie (OBFR) 580, raccordé à un connecteur de
sortie 581.
Dans la ROM 530 est enregistré un programme permettant le traitement des données en entrée 591, avec compression de celles-ci conformément au procédé décrit ci-dessus. Le programme de compression, qui porte sur la figure 4, la référence 531, est décrit infra à l'appui des figures 10 à
, 19, 20, 21A, 21B, 21C, 21D et 22.
L'ensemble des moyens 510, 530, 531, 550, 560 et 570 constitue ici un mode de réalisation de "premiers moyens logiques de transformation" au
sens de l'invention.
Dans ce mode de réalisation, la mémoire vive RAM 510 comporte, entre autres les registres suivants destinés à la mise en oeuvre du programme 531: - un registre 511 (IM), destiné à mémoriser les données de I'image, un compteur 513 (CNT) utilisé ainsi qu'il est expliqué infra (figure ). la partie 514 (CACHE) de la mémoire vive. Cette partie est une partie de mémoire adressable très rapidement, dans laquelle sont, ainsi qu'il est connu, stockées les données les plus couramment utilisées à un instant donné.
39 2767999
La partie (CACHE) 514 de la mémoire 510 comporte les registres suivants: un registre 515 CSI destiné à mémoriser, à un instant donné, les coordonnées du sous-ensemble élémentaire Ki en cours de traitement, - des registres f(L,)- f(L4) référencés 516 à 519, dans lesquels sont enregistrées les valeurs [f(Li)](x,y) correspondant à chaque point (x,y)
(niveau parmi 256 de la composante en cours de traitement) des sous-
ensembles de travail LI - L4 associés au sous-ensemble élémentaire Ki considéré, - un registre 520 destiné à mémoriser les coefficients a,, a2, a3, a4 et b, relatifs à un sous-ensemble élémentaire considéré Ki, et - un registre 522 destiné à conserver des facteurs de division A correspondants au nombre de partitions complémentaires effectuées pour obtenir le sous-ensemble élémentaire considéré Ki, - les registres 521 et 523 à 526, destinés à conserver des
variables intermédiaires d'un traitement générant les références de sous-
ensembles élémentaires formant une partition initiale d'une image à compresser, - des registres 540 à 543 contenant respectivement des variables "hauteurbande", "hauteuridéale", "hauteurtotale" et "nb_ligneslues" utilisées comme décrit infra,
- le registre 560 (REG 1), destiné à cumuler, pour chaque sous-
ensemble élémentaire, les coefficients ap, a2, a3, a4 et b, ainsi que l'éventuelle
information de partition, relatifs à chaque sous-ensemble de travail.
- le registre 570 (REG 2), destiné à mémoriser la liste des
adresses (liste_sous_images) de tous les sous-ensembles élémentaires Ki.
Sur la figure 5, on a représenté, raccordés respectivement aux moyens d'entrée et de sortie: - une source 592 de données non compressées, et
- des moyens 582 utilisateurs de données compressées.
2767999
La source 592 peut comporter de nombreux moyens à la portée de l'homme du métier. Par exemple, elle pourra consister en un lecteur de disque dur ou de disquette ou de compact disques (connus sous les initiales CD- ROM). Les données de l'image à compresser pourront donc avantageusement être enregistrées sur les supports correspondants: disque dur, disquette ou CD-ROM (compact disque). Cet enregistrement peut être fait
de toute manière connue de l'homme de l'art.
La source 592 pourra également être constituée par une interface vidéo, susceptible de délivrer les données de l'image à comprimer à l'entrée
591.
La source 592 pourra également être constituée par des moyens de réception des données raccordées à un réseau de transmission, la source 592 étant susceptible de transformer les données reçues en un format adéquat pour qu'elles puissent être présentées en entrée du dispositif de traitement
primaire.
De même, les moyens utilisateurs 582 pourront consister en des moyens de stockage de l'image compressée (disque dur, disquette, CM - ROM etc...) ou une simple interface destinée à délivrer sous un format connu le signal vidéo, à d'autres moyens utilisateurs, tels que des moyens destinés par exemple à transmettre cette image comprimée à distance ou à la stocker. Ces moyens 582 pourront d'ailleurs consister dans un dispositif de transmission de
données raccordé à un réseau de télécommunications.
Dispositif de traitement secondaire d'un ensemble de paramètres résultant du traitement primaire de données initiales. Dans ce mode de réalisation, qui concerne le traitement d'images, le dispositif de traitement secondaire est apte à restituer, à partir des coefficients ai, a2, a3, a4 et b et des informations de partition, relatifs à chacun
des sous-ensembles élémentaires, l'image initiale, en couleur.
41 2767999
Il est également apte à délivrer les données relatives à une image à niveaux de gris correspondant à une image originale en couleurs. Il est, en outre, adapté à fournir une image possédant un nombre de points élémentaires différent du nombre de points élémentaires de l'image traitée par le dispositif de traitement primaire, ces images étant dites de définition ou de résolution différente. Ces données en sortie du dispositif de traitement secondaire sont d'un autre type que le type des données de l'image initiale ayant fait l'objet du
traitement primaire.
Sur le schéma-bloc de la figure 6, le dispositif de restitution ou de
calcul itératif porte la référence générale 600.
Il comporte, raccordés à un bus de données et d'adresses, désigné sous la référence 601: - un contrôleur (ALU + CTR) 650 incorporant une unité de logique arithmétique. Ce contrôleur est constitué, dans ce mode de réalisation, par un microprocesseur du type de celui commercialisé par la Société INTEL sous la
référence i486.
- une mémoire vive RAM, portant la référence 610, qui comporte un certain nombre de registres qui seront décrits ci-après et une partie
adressable rapidement (dite "mémoire cache") 614.
- une mémoire programme 630, de type ROM. Dans cette mémoire, sont enregistrés notamment: un programme 631 de décompression des données de l'image présentée en entrée 681 en vue de la reconstruction d'une approximation de l'image initiale de résolution identique ou différente, et un programme 632 de décompression des données de l'image en vue de la reconstruction d'une image à niveaux
de gris en lieu et place d'une image couleur.
Les programmes 631 et 632 mettent en oeuvre le procédé décrit ci-dessus et leurs organigrammes sont détaillés ci-après à l'appui des figures
16 à 17.
42 2767999
- un premier registre 560 à accès direct (REG 1), et - un second registre 570 à accès direct (REG 2) identiques à ceux décrits à l'appui de la figure 4, - un tampon de sortie (OBFR) 690, raccordé à un connecteur de sortie 691 et -un tampon d'entrée (IBFR) 680, raccordé à un connecteur
d'entrée 681.
L'ensemble des moyens 610, 630, 631, 650, 560, et 570 constitue ici un mode de réalisation de "seconds moyens logiques" au sens de I'invention. L'ensemble des moyens 610, 630, 632, 650, 560 et 570 constitue ici un autre mode de réalisation de "seconds moyens logiques" au sens de l'invention. Dans ce mode de réalisation, la mémoire vive RAM 610 comporte, entre autres les registres suivants destinés à la mise en oeuvre des programmes 631 et 632: - un registre 511 (IM), décrit à l'appui de la figure 4,
- un facteur d'échelle z dans un registre "z" 628.
- un registre 621 (RE), destiné à mémoriser les données d'une image, - un registre (CHTY) 622, destiné à différencier le traitement secondaire général d'une restitution, - un registre (IT) 612 destiné à mémoriser la valeur courante du nombre d'itérations effectuées pour réaliser la représentation secondaire, - un registre (p) 623 destiné à mémoriser le nombre d'itérations pour mettre en oeuvre la méthode des approximations successives afin d'effectuer le traitement secondaire de l'image, - un compteur 513 (CNT) décrit à l'appui de la figure 4. Ce compteur est ici utilisé ainsi qu'il est expliqué infra (figure 16), - la partie 614 (CACHE) de la mémoire vive 610. Cette partie est une partie de mémoire adressable très rapidement, dans laquelle sont, ainsi
43 2767999
qu'il est connu, stockées les données les plus couramment utilisées à un instant donné, - la partie (CACHE) 614 de la mémoire 610 comporte des registres 515 à 520, 540 à 543 et 625 à 627, respectivement identiques aux registres 515 à 520, 540 à 543, 525, 526 et 522 décrits à l'appui de la figure 4,
- le registre 560 (REG 1), destiné à stocker, pour chaque sous-
ensemble élémentaire, les coefficients a,, a2, a3, a4 et b et l'éventuelle information de partition, associés à ce sous-ensemble, et - le registre 570 (REG 2), destiné à mémoriser la liste des
adresses de tousles sous-ensembles élémentaires Ki.
Sur la figure 7, on a représenté, raccordés respectivement aux moyens d'entrée et de sortie: - une source 682 de données compressées, et
- des moyens 692 utilisateurs de données décompressées.
La source 682 pourra consister en des moyens de stockage de l'image comprimée (disque dur, disquette, CD-ROM etc...) ou une simple interface destinée à délivrer celles-ci. Les moyens 682 pourront aussi consister dans un système de réception de données raccordé à un réseau de télécommunications. Les moyens 692 pourront consister par exemple en des moyens de stockage des données décompressées ou en une simple interface délivrant sur sa sortie les données décomprimées. Ils pourront également consister en un dispositif de transmission des données décompressées sur un réseau de télécommunications.
Description d'un dispositif incorporant un dispositif de
traitement primaire et un dispositif de traitement secondaire Sur le schéma bloc de la figure 8, un dispositif incorporant un dispositif de traitement primaire 500 et un dispositif de traitement secondaire
600 est représenté et porte la référence générale 700.
44 2767999
Ce dispositif est capable de traiter parallèlement des compressions d'images et des décompressions. Il est dès lors composé des dispositifs décrits à l'appui des figures 4 et 6. Il s'agit en l'occurrence du dispositif de traitement primaire 500 et du dispositif de traitement secondaire 600. Ce type d'appareil est appelé "full-duplex". Dans un autre mode de réalisation (half-duplex), le dispositif ne peut exécuter qu'un traitement primaire ou un traitement secondaire mais jamais en même temps. Il peut en outre réaliser un traitement "complexe" comportant un traitement primaire et un traitement secondaire réalisés l'un à la suite de l'autre. Le schéma bloc d'un tel dispositif est représenté dans les
figures 9 et 9A.
Ce dispositif qui porte la référence 800 comporte conjointement les ressources des dispositifs 500 et 600 décrites supra, en évitant le double emploi. C'est ainsi que: - les registres des mémoires vives 510 et 610 décrits supra sont incorporés dans une même unité de mémoire vive 810, une même unité de mémoire morte 830 incorpore les programmes 531, 631 et 632 mentionnés supra et un programme de configuration 831, - un même microprocesseur 850 incorpore les moyens 550 et 650. Le programme de configuration 831 qui sera décrit infra à l'appui de la figure 18 permet au dispositif 800, de réaliser: - une compression des données d'une image couleur, - une décompression des données soit en vue de restituer l'image couleur initiale, soit en vue de la restituer avec une résolution différente, soit en vue de délivrer une image à niveaux de gris correspondante, et - un traitement complexe permettant de transformer une image
couleur en une image à niveaux de gris.
2767999
Description d'un organigramme particulier de compression
d'une image couleur 512 x 512 pixels Cet organigramme est illustré en figure 10. Les figures 11 à 15 sont des organigrammes explicitant certaines opérations de l'organigramme de
compression de la figure 10.
Les organigrammes des figures 11 et 12 détaillent également par ailleurs des opérations de l'organigramme de décompression des figures 16 et 17 qui sera décrit infra. Les références entre parenthèses renvoient aux étapes
de la figure 16.
On rappelle tout d'abord que les données relatives à l'image matérialisent une application telle que définie dans l'équation (9) exposée supra. En l'espèce, à chaque couple de valeurs (x,y) (coordonnées colonne, ligne) pris dans le domaine de définition (en l'espèce à l'image plane 512 x 512 pixels) correspond une valeur fix,y) dans le domaine d'application R3', c'est à dire une valeur parmi 256 niveaux relatifs à chacune des trois
composantes Y, Cr et Cb.
On organise trois suites de nombres correspondant chacun au niveau d'une composante (soit 512 x 512 = 262.144 valeurs fJx,y) par composante), en balayant les données de l'image comme suit: - les lignes sont balayées de gauche à droite;
- les lignes sont incrémentées de bas en haut.
Ces trois suites sont ici enregistrées dans la source de données non compressées 592. Elles peuvent être lues sur le port d'entrée 591 à la
commande du microprocesseur 550.
En 200A, il est procédé à une initialisation des registres (IM) 511, nb_ligneslues et des deux registres (REG 1) 560 et (REG 2) 570 à la valeur uniforme nulle. Au cours de l'opération 200A, il est aussi procédé à la
46 2767999
détermination de la hauteur dite " idéale " des bandes indépendantes, cette hauteur correspondant, par exemple, à une dimension: inférieure à la dimension de la partie disponible de la mémoire cache et 5. correspondant à un multiple de 32 lignes de l'image, avec un
minimum de 64 lignes.
On observe, en particulier, que la hauteur idéale peut être ainsi
égale à la hauteur de l'image (soit ici 512 lignes).
Les fichiers relatifs aux composantes Y, Cr et Cb sont accessibles séparément et sont fournis dans un ordre prédéterminé, à savoir: - d'abord les données de l'image considérée et relatives à la composante de luminance (Y), ensuite les données de l'image relatives à la composante de chrominance rouge (Cr) et finalement les données de l'image
relatives à la composante de chrominance bleue (Cb).
Le test 200B consiste à déterminer si la variable nb_ligneslues est égale à la hauteur totale de l'image ou non. Lorsque le résultat du test 200B est négatif, I'opération 200C est réalisée et consiste à initialiser à zéro la valeur du compteur (CNT) 513, qui sert à indiquer une composante de couleur de l'image. Ensuite, l'opération 200D détermine la hauteur hauteur bande de la prochaine bande constituant un sous ensemble de l'image à traiter. Au cours de cette opération, la hauteur de la partie de l'image restant à traiter est comparée à deux fois la hauteur dite " idéale ". Lorsque la hauteur de la partie de l'image restant à traiter est supérieure à deux fois la hauteur dite " idéale ", la hauteur de la prochaine bande de l'image est égale à la hauteur dite " idéale ". Lorsque ce n'est pas le cas, la hauteur de la prochaine bande est égale à la hauteur de la partie de l'image restant à traiter. La valeur de la hauteur de la prochaine bande à traiter ainsi déterminée est chargée dans le registre hauteurbande et nblignes_lues est incrémenté de la valeur
hauteur bandes.
L'opération 200E consiste à incrémenter le compteur (CNT) 513.
Ensuite, au cours du test 201, on détermine si le compteur (CNT) 513 est
47 2767999
strictement supérieur à 3, ou non.
Lorsque le résultat du test 201 est négatif, le programme se branche sur l'étape 202, au cours de laquelle: - le microprocesseur 550 va lire sur le port d'entrée 591 la composante suivante de la bande d'image à traiter. On rappelle que chaque composante, Y, Cr ou Cb, se présente comme une suite de 262.144 valeurs j(x,y) correspondant au niveau de la composante considérée pour chacun des pixels de l'image. Une partie de cette
suite est donc chargée dans le registre (IM) 511 au cours de l'étape 202.
On rappelle que, dans ce mode particulier de réalisation, chaque sousensemble de travail a autant de données que les sous-ensembles élémentaires. Le programme se branche ensuite à l'étape 204 (explicitée en figure 11), au cours de laquelle il va être procédé à la partition initiale de l'image de 512 x 512 pixels en 256 sous-ensembles élémentaires Ki, i = (1,...,256) de 32 x 32 pixels. Cette partition se fait en déterminant les
coordonnées (x,y) des coins inférieurs gauche de chacun des m sous-
ensembles Ki considérés. C'est ainsi que le sous-ensemble Ki illustré en figure 3, a pour coordonnées (xi,iyj), qui correspondent à celles de son coin inférieur gauche. Chacune des adresses des coins inférieurs gauches des blocs de 32 x 32 pixels correspond à une adresse particulière dans la liste enregistrée dans
le registre (IM) 511 de la mémoire vive 510.
La liste de ces adresses est chargée dans le registre (REG 2).
* En référence à la figure 11, après une initialisation d'un compteur constitué par le registre i 521 relatif à l'indice des sous-ensembles Ki en l'étape 211, le programme se branche au test 212 au cours duquel il est vérifié si la liste est complète ou non. Dans la négative, le programme se branche à l'étape 213 au cours de laquelle le facteur de division A, qui décompte chaque partition complémentaire qui est effectuée sur un sous-ensemble élémentaire, est initialisée à la valeur nulle et o l'on détermine une variable B comme le
48 2767999
quotient d'une division entière de (i-1) par 16. Le reste de la division (variable C) est mémorisé dans le registre 524. Les valeurs xi = C * 32 et yi = B * 32 sont calculées au cours de l'opération 214 et temporairement mémorisées dans les
registres 525 et 526.
Ces coordonnées qui sont celles du coin inférieur gauche du sous- ensemble élémentaire Ki considéré, et le facteur de division A associé, sont mémorisées dans les variables (xi, y,) dans le registre 570 (REG 2) au cours de l'étape 215. Pendant l'étape 216 le compteur i est incrémenté et le
programme exécute ensuite à nouveau le test 212.
Lorsque le test 212 est positif, le programme effectue le test 205 (figure 10) au cours duquel il est vérifié si la liste enregistrée dans le registre (REG 2) est vide ou non. Dans la négative, cela signifie qu'il ya encore des sous-ensembles élémentaires Ki à traiter et le programme se branche à l'étape 205. Au cours du test 205, il est vérifié si la liste enregistrée dans le registre (REG 2) est vide ou non. Lorsque le résultat du test 205 est négatif, cela signifie qu'il y a encore des sous-ensembles élémentaires Ki à traiter et le
programme se branche à l'étape 206.
A l'étape 206, il est supprimé le premier sous-ensemble élémentaire de la liste enregistrée dans le registre (REG 2). Ce sous-ensemble
est enregistré dans un registre CSI 515 de la mémoire cache de la RAM 510.
Le programme se branche alors à l'étape 207 détaillée en figure 19 ou, selon la première variante, en figure 20. Au cours de cette étape, un test 255 détermine si le sous-ensemble élémentaire considéré possède les dimensions minimales, c'est-à-dire dans le mode de réalisation décrit et
représenté, 2 fois 2 pixels, ou non.
Lorsque le résultat du test 255 est positif, I'opération 250 consiste à déterminer les quatre sous-images de travail Li associées au sousensemble de travail considéré. Cette opération 250 est détaillée en figure 12. Au cours de I'opération 250, à partir de l'adresse enregistrée dans le registre CSI et du facteur de division A, il est procédé à la recherche des quatre sous-ensembles
49 2767999
de travail voisins Li, L2, L3, L4 (voir figure 3 pour les sous-ensembles de travail associés à la partition initiale). A cet effet, la règle rappelée supra est appliquée -chaque sous-ensemble de travail possède les mêmes dimensions que le sous-ensemble élémentaire auquel il est lié, soit dans chaque direction: 32 divisé par 2 porté à la puissance A; et - chaque sous-ensemble de travail est décalé d'une demi- dimension dans
chaque direction, par rapport au sous-ensemble élémentaire associé.
L'opération 250 a donc pour but de déterminer les valeurs jx,y) de la composante considérée associée à chacun des pixels des sous-ensembles de travail L,, L2, L3 et L4 liés géométriquement et de manière prédéterminée à l'ensemble élémentaire considéré Ki. L'ensemble des valeurs Jfixy) liées aux pixels du sous-ensemble LI (respectivement L2, L3 et L4) sera noté ci-après
j(L,) (respectivement j(L2) j(L3) etf(L4)).
En référence à la figure 12, pour chaque sous-ensemble élémentaire Ki considéré, le contrôleur 550 lit dans le registre 570 (REG 2) les coordonnées (xiy) du pixel inférieur gauche de Ki, à l'étape 217. Ensuite, à l'étape 218, l'unité arithmétique 550 lit les valeurs de la composante considérée pour chaque pixel des quatre sous-ensembles de travail L, à L4, définis selon le tableau suivant: L: [xi-16/2A, x i-I + 16/2X)] x [yi + 16/2, yi -] +(3x16)/2X] L2: [x,+16/2A, x,-I + (3x16)/g2] x [yi + 16/2A, y,-] +(3x16)/2A] L3: [xi-16/2A, x,-1 + 16/12] x [Yi- 16/2A, yi-' +16/12] L4: [xi+16/2/, x -1 + (3x16)/?] x [yi- 16/2, yi,-1 +16/2/] On observe ici que chacun des sous-ensembles de travail possède ici le même nombre de pixels que le sous-ensemble élémentaire
considéré, soit (32/2)2.
2767999
Ensuite, à l'étape 219, l'unité arithmétique 550 va chercher, pour la composante, Y, Cr ou Cb, en cours de traitement, la valeur correspondant à chacun des (32/2)2 pixels de L, (respectivement L2, L3 et L4) et stocke l'ensemble des (32/2X)2 valeurs dans le registre j(L) 516 (respectivement JL2) 517,J(L3) 518 etj(L4) 519) du cache 514). A la suite de l'opération 250 (figure 19), le programme effectue l'opération 251 au cours de laquelle, d'une manière générale, les paramètres ai (en l'espèce al, a2, a3, a4) et b sont calculés en mettant en oeuvre la méthode des moindres carrés avec les contraintes décrites supra (voir équations 12 et 13).
Une description simplifiée de l'étape 251 est donnée dans
l'organigramme représenté dans la figure 13. On rappelle que pour déterminer les coefficients a1, a2, a3, a4 et b il y a lieu de résoudre un problème de minimisation d'une fonctionnelle sous contraintes. Supra il a été vu, à l'appui des équations 14 à 29 que cela revient à résoudre itérativement deux types de problèmes de minimisation sans contraintes. Les explications données supra pour un cas général sont mises en pratique pour la détermination des quatre
paramètres al, a2, a3, a4 et du paramètre b.
A l'étape 220 on procède à la résolution du premier problème de minimisation sans contraintes. On minimise la fonctionnelle: +K (ap.. a4, b) = f(X y) - E aj.K (L)lx, y) + b; (xy)K, j=l pour des valeurs (a,,..., a4,b) parcourant tout R5. Pour ce faire on met en oeuvre la méthode des moindres carrés décrite supra par les équations (16) à (19). La solution unique à ce problème (a,..., a4,b) dans R5 est la solution du
système linéaire (19).
51 2767999
Comme illustré en figure 14, I'étape 220 est subdivisée en quatre
étapes 230 - 233.
Au cours de l'étape 230, on calcule des coefficients G i = 1,...5, j = 1,...,5 en mettant en oeuvre les formules suivantes: (y, y)EK Gji = E l(Éj)](>y) [t(L)](xy)ii==1I.....4 G5i = Gi5 = E [f(Li)](x,y) i = 1, 4 (x,y)eK
G55 = 322
Les coefficients [Gi] constituent la matrice à inverser afin de
résoudre le système linéaire d'équations (19).
Les formules ci-dessus permettant de déterminer les coefficients Gi., sont comme on le voit des simples additions et multiplications mettant en oeuvre des valeurs de pixels correspondant aux niveaux de la composante considérée, et cela pour chacun des pixels du sous ensemble élémentaire considéré. De même à l'étape 231 on calcule les coefficients SI,..., S5 constituant le second membre du système linéaire. Les formules mises en oeuvre sont: Si, [ (Li)] (x, y) f(x, y) i 1,...,4 S5= 3 f(x,y) (x,y)eK L'étape 232 fait appel à une routine classique d'inversion d'un système d'équations linéaires, en l'espèce à cinq inconnues. Le système linéaire à inverser est le suivant:
52 2767999
-GI, G21 G31 G41 G51 a, -SI G12 G22 G32 G42 G52 a2 S2 G13 G23 G33 G43 G53 a3 = S3 Gl14 G24 G34 G44 G54 a4 S4 G15 G25 G35 G45 G55 b S5 La solution al,... , a4, b sera mémorisée à l'étape 233 dans le
registre 520 de la partie 514 (CACHE) de la mémoire vive 510.
Le programme passe ensuite à l'étape 221 (figure 13) o, conformément aux équations (20) à (23), on détermine une partition disjointe de l'ensemble des entiers {1,2,3,4} en NV, UVet LVdéfinis comme NV= { {1,.
4} -13<a,<13} UV = E { /e{1,4} P <aj} LV = e{1,...,4} a, <- 1 Le programme se branche ensuite au test 222 au cours duquel il est vérifié si les ensembles UV et LV sont vides. Si ce test est positif les valeurs actuellement présentes dans le registre 520 constituent (étape 224) la solution..DTD: du problème avec contraintes.
Dans la négative, certaines contraintes sont actives pour la solution du problème avec contraintes. Dans ce cas, (étape 223; voir figure 15)
il y a lieu de résoudre un problème restreint.
Il s'agit en l'occurrence de minimiser sous contraintes la fonctionnelle modifiée: oOCI--^Cm) F(xy)_ Em Ci [f(Lj)IXIY)+ cn OU
53 2767999
F(x, y) = f(x, y)- _. P7*(Lj)IX, y)+ D*[f(Lk)](x,y), jeUV k ELV
et m < 4 puisque moins de contraintes sont actives.
La solution de ce problème est (C,...,Cm) et est obtenue en
considérant les équations (16) à (18) et en résolvant le système linéaire (19).
La solution du problème initial avec contraintes est: ai = Cj: j -.I...,m1 ou i E NV, ak =1: k eUV, a =-: I E LV,
b = cm.
L'étape 223 va être décrite à l'appui de l'organigramme de la figure 15 en supposant m = 3. Il convient de considérer le problème de minimisation sans contraintes, décrit dans l'étape 223 qui est subdivisée en quatre étapes 240 à 243. Au cours de l'étape 240, on calcule des coefficients Hj i = 1,....4, j = 1,....4 en mettant en oeuvre les formules suivantes: Hji = E [f(LjxY)(L)](xY) [(Li)](xy) i,j=1,...3 (x,y)eK H4i = Hi4 = E [f(Li)] (x,y)..,3 (x,y)cK i=.....3
H44 = 322
Les coefficients [Hn] constituent la matrice à inverser afin de
résoudre le système linéaire d'équations (19).
Les formules ci-dessus permettant de déterminer les coefficients H., sont comme on le voit des simples additions et multiplications mettant en oeuvre des valeurs de pixels correspondant aux niveaux de la composante
54 2767999
considérée, et cela pour chacun des pixels du sous ensemble élémentaire considéré. De même à l'étape 241 on calcule les coefficients TI,... T4 constituant le second membre du système linéaire. Les formules mises en oeuvre sont: Ti [ V(Lj)](x,y)-F(x,y) i= 1,.3 (xy)(K T4 = E F(x, y) (xy)EK L'étape 242 fait appel à une routine classique d'inversion d'un système d'équations linéaires, en l'espèce à 4 inconnues. Le système linéaire à inverser est le suivant:
H1 H2, H3, H41 CI
H12 H22 H32 H42c2
H13 H23 H33 H43 3 T3
H14 H24 H34 H44 b T4 A l'issue de l'étape 223, il y a lieu de revoir si la solution ainsi obtenue satisfait encore les contraintes. Pour ce faire, l'étape 221 et le test 222 sont exécutés à nouveau. Ce processus est réitéré jusqu'à ce que le test 222
soit positif.
Au cours de l'opération 251, les coefficients a,, a2, a3, a4, b sont enregistrés dans le registre 560 (REG 1). Puis le test 205 est réitéré. On observe ici que dans la mesure o le sous-ensemble élémentaire possède des dimensions minimales, aucune information de partition n'est nécessaire,
puisque aucune partition complémentaire ne peut être effectuée.
2767999
Lorsque le résultat du test 255 est négatif, l'opération 252 consiste
à mesurer la variance des niveaux de la composante considérée, dans le sous-
ensemble élémentaire considéré. Ensuite, l'opération 253 consiste à déterminer
un critère dit "de qualité" applicable au sous-ensemble élémentaire considéré.
Préférentiellement, la définition du critère de qualité consiste en la définition
d'un seuil en deçà duquel le critère de qualité est considéré comme respecté.
Préférentiellement aussi, la valeur du seuil prend en compte les dimensions du sous-ensemble élémentaire considéré. Dans le mode de réalisation décrit et représenté ce seuil est la fonction correspondant au tableau suivant: dimensions du sous-ensemble en pixels seuil 2x2 200 4x4 160 8x8 100 16 x 16 60 32 x 32 20 On observe ici qu'il est préférentiel d'utiliser un tableau correspondant à une fonction décroissante des dimensions du sous-ensemble
élémentaire.
Selon des cinquième et sixième variantes non représentées: - la valeur du seuil est constante quelle que soit les dimensions des sous-ensembles élémentaires ou - la valeur du seuil est une fonction inverse d'une dimension du
sous-ensemble élémentaire considéré.
Le test 254 détermine si le critère de qualité est respecté ou non.
Dans le mode de réalisation décrit et représenté, il est respecté lorsque la mesure de la variance des niveaux de la composante considérée est inférieure à la valeur du seuil qui correspond, dans le tableau cidessus, aux dimensions
du sous-ensemble élémentaire considéré.
56 2767999
Lorsque le résultat de l'un des tests 254 ou 255 est positif, l'opération 250 consiste à déterminer les quatre sous-images de travail comme exposé ci-dessus. Ensuite, l'opération 258 est identique à l'opération 251, si ce n'est que sont mémorisés, dans le registre 560 (REG 1), successivement l'information de partition valant "0" puisque aucune partition complémentaire n'a
été effectuée et les coefficients ai, a2, a3, a4, b. Ensuite, le test 205 est réitéré.
Lorsque le résultat du test 254 est négatif, l'opération 256 consiste à effectuer une partition complémentaire du sous-ensemble élémentaire considéré. Dans le mode de réalisation décrit et représenté, cette partition complémentaire consiste à diviser chaque sous-ensemble élémentaire en quatre sous ensembles élémentaires carrés égaux. A cet effet, au cours de l'opération 256, il est ajouté dans la liste liste_sous_image, dans le registre (REG 2) 570, les coordonnées des quatre points qui définissent les coins inférieurs gauches des quatre sous-ensembles élémentaires résultant de la partition complémentaire. A ces coordonnées sont associées un facteur de division A qui est égal au facteur de division du sous-ensemble élémentaire que l'on partitionne, incrémenté de la valeur 1. En outre une information de partition valant "1", puisqu'une partition complémentaire a été effectuée, est
mémorisée dans le registre 560 (REG 1).
A la suite de l'opération 256, le test 205 est réitéré.
Les figures 21A, 21B et 21C illustrent l'effet des partitions complémentaires qui sont effectuées sur les sous-ensembles élémentaires
issus de la partition initiale ou de partitions complémentaires précédentes.
Dans un but explicatif, et par exception aux règles générales de la
description, on suppose que, dans le mode de réalisation exposé en figures
21A à 21C, les dimensions minimales des sous-ensembles élémentaires sont
quatre fois plus petites que leurs dimensions maximales.
La figure 21A représente une partie d'une image, correspondant à douze sous-ensembles élémentaires référencés B0 à B11 résultant de la partition initiale (opération 204, figure 11), dans laquelle:
57 2767999
- le sous-ensemble élémentaire B1 a subi une partition complémentaire en quatre sous-ensembles élémentaires B1,0 à B1,3, - le sous-ensemble élémentaire B1,3 a subi une partition complémentaire en quatre sousensembles élémentaires B1,3,0 à B1,3, - le sous-ensemble élémentaire B6 a subi une partition complémentaire en quatre sous- ensembles élémentaires B60 à B6,3, - le sous-ensemble élémentaire B6,1 a subi une partition complémentaire en quatre sous-ensembles élémentaires B6,1,0 à B6,1,3, et le sous-ensemble élémentaire BI1 a subi une partition
complémentaire en quatre sous-ensembles élémentaires Bl,0 à B11,3.
La figure 21B illustre, pour les sous-ensembles élémentaires ainsi
partitionnés, les informations de partition qui sont associées aux sous-
ensembles élémentaires résultants de la partition initiale (sousensembles pour lesquels la valeur du facteur de division A est nulle) ou aux sous-ensembles
élémentaires résultants de partitions complémentaires.
Ainsi, les sous-ensembles élémentaire Bo, B2, B3, B4, B5, B7, B8, B9 et Bo10 sont associés à une information de partition nulle, les sousensembles élémentaires B1, B6 et BI1 sont associés à une information de partition valant 1, leurs sous ensembles élémentaires B1,0, B1,, B12, B6, 0, B6,2, B6,3, B11,0, B11,1, B11,2 et B",3 sont associés à une information de partition nulle, les sous ensembles élémentaires B1,3 et B6,1, sont associés à une information de partition égale à "1" et les sous-ensembles élémentaires résultant de leur partition complémentaire ne sont associés à aucune information de partition puisque les dimensions de ces sous-ensembles élémentaires sont les
dimensions minimales.
Les dimensions de tous ces sous-ensembles élémentaires peuvent ainsi être définies sans ambiguïté par la suite d'informations de partition
010001000010100000010000
58 2767999
La figure 21C propose une représentation des paramètres a", a2, a3, a4 et b, relatifs à une seule image et qui, conjointement, sont, référencés ici D et des informations de partition qui leur sont associées, en utilisant la suite
exposée ci-dessus.
On y observe que la séquence des données compressées correspondant à la partie d'image représentée en figure 21A comporte: - un en-tête, représentant en particulier les dimensions de l'image (valant ici 512 x 512 pixels) les dimensions initiales des sous-ensembles élémentaires (correspondant ici à 32 x 32 pixels), la hauteur idéale et la définition des dimensions minimales des sous-ensembles élémentaires (correspondant ici à 2 x 2 pixels) et une information de traitement complémentaire et l'éventuel ratio de dimensions entre la résolution de la composante de luminance et celle des composantes de chrominance; - la suite des informations de partition présentée ci-dessus: associée aux éventuelles données qui leur correspondent, au cours de la mémorisation effectuée pendant les étapes 251 et 263 (sans information de partition), 258 et 261 (avec information de partition valant "0") et 256 (avec information de partition valant "1"), sachant que les informations de partition
valant 1 ne sont associées à aucune donnée.
La figure 21D illustre une deuxième variante, concernant l'organisation des paramètres et des informations de partition résultant du
traitement primaire d'une seule image.
On y observe que la séquence des données compressées correspondant à la partie d'image représentée en figure 21A comporte: - un en-tête, représentant en particulier les dimensions de l'image (valant ici 512 x 512 pixels) les dimensions initiales des sous-ensembles élémentaires (correspondant ici à 32 x 32 pixels) la hauteur idéale et la définition des dimensions minimales des sous-ensembles élémentaires
59 2767999
(correspondant ici à 2 x 2 pixels) et une information de traitement complémentaire et l'éventuel ratio de dimensions entre la résolution de la composante de luminance et celle des composantes de chrominance; - la suite des informations de partition présentée ci-dessus: chacune étant associée aux paramètres qui lui correspondent, au cours de la mémorisation effectuée pendant les étapes 251 et 263 (sans information de partition), 258 et 261 (avec information de partition valant "0") et 256 (avec information de partition valant "1"), sachant que, selon cette deuxième variante, même les informations de partition valant 1 sont associées à des données et
sont enregistrées avec elles dans le registre (REG 1) 560.
Grâce à cette disposition, comme illustré en figure 21E, en connaissant le facteur d'échelle z (obtenu au cours de l'opération 420 décrite infra), on peut sélectionner les données D et les informations de partition à
utiliser au cours du traitement secondaire.
En l'espèce, pour un facteur d'échelle égal à 1Iv, v étant un nombre entier, on ne conserve, pour le traitement secondaire, que les données D correspondant à des sous-ensembles élémentaires de dimensions supérieures ou égales à 2v x 2v pixels dans l'image primaire, c'est-à- dire ceux qui donneront des sous-ensembles de dimensions supérieures ou égale à 2 x 2
pixels dans l'image tertiaire.
Dans l'exemple de la figure 21E, lorsque les dimensions minimales des sous-ensembles élémentaires de l'image primaire, c'est-à-dire de l'image qui est traitée au cours du traitement primaire, sont de 8 x 8 pixels et que le facteur d'échelle est strictement inférieur à 1/4, les sousensembles élémentaires de dimension minimale ne sont pas à prendre en compte, parce qu'il correspondraient, sinon, à des sous-ensembles élémentaires de
dimensions strictement inférieures à 2 x 2 pixels.
2767999
Dans l'exemple illustré en figure 21E, on admet que le facteur d'échelle est égal à un huitième, ce qui revient à diviser par soixante-quatre le nombre de points de l'image résultant du traitement secondaire. On observe, en figure 21E, qu'aucune des informations concernant les sousensembles élémentaires de plus petites dimensions, qui résultaient de deux partitions complémentaires successives au cours du traitement primaire, n'est prise en
compte au cours du traitement secondaire.
La mise en oeuvre de cette deuxième variante permet de réduire la durée du traitement secondaire, car il n'est, ici, pas indispensable de traiter tous les paramètres résultant du traitement d'image primaire pour reconstituer
une image de plus faible dimension.
En figure 22 est une représentation de l'organisation des paramètres et des informations de partition résultant de traitements primaires de plusieurs images. Les paramètres et données de partition complémentaires concernant différentes images sont organisés de la manière suivante: - un fichier 900 comporte un en-tête commun 901 dans lequel sont enregistrées diverses données générales communes à toutes les images représentées dans ce fichier 900, - une table d'index 909, dans laquelle sont représentées les adresses des ensembles de données concernant les images représentées dans ledit fichier 900. Dans le mode de réalisation décrit et représenté ici, les
adresses de début de description des images sont représentés dans l'entête
global sous la forme de données de translation, c'est-à-dire de données indiquant de combien d'adresses successives il faut se déplacer dans le fichier
pour atteindre la description de ladite image, celle-ci commençant par un en-
tête spécifique.
- les en-têtes spécifiques 902, 904 et 906, représentent, en particulier: le nombre de composantes de couleur (ici 3), 30. les dimensions de l'image (valant 512 x 512 pixels pour une image complète ou moins pour des sous-images),
61 2767999
la hauteur idéale des bandes, les dimensions initiales des sous- ensembles élémentaires (correspondant ici à 32 x 32 pixels), la définition des dimensions minimales des sous-ensembles élémentaires (correspondant ici à 2 x 2 pixels), une information de traitement complémentaire, et lI'éventuel ratio de dimensions entre la résolution de la composante de luminance et celle des composantes de chrominance; On note ici que préférentiellement, dans le cas o certaines de ces informations seraient communes à toutes les images du fichier, alors ces informations sont contenues dans l'en-tête commun 901 et non dans les en-têtes spécifiques 902, 904 et 906. - les blocs d'informations 903, 905 et 907 comportent les suites d'informations de partition, chacune d'entre elles étant associée aux paramètres qui lui correspondent, au cours de la mémorisation effectuée pendant les étapes 251 (sans information de partition) et 258 (avec information de partition), sachant que les informations de partition valant 1 ne sont associées à aucune donnée (sauf, bien entendu, si la deuxième variante
illustrée en figures 21D et 21E est mise en oeuvre).
Grâce aux dispositions d'organisation de fichiers relatifs à une pluralités d'images, le nombre de fichiers utilisé est limité ainsi que les opérations d'ouverture et de fermeture de fichiers, opérations qui présentent une durée particulièrement importante. On rappelle ici qu'un fichier est un ensemble de données qui possèdent conjointement la même adresse en
mémoire. Le traitement secondaire s'en trouve ainsi accéléré.
En particulier, lorsque l'affichage de plusieurs images de taille réduite est prévu pour avoir une vue globale de ces images, l'usage d'un fichier unique pour représenter plusieurs images augmente considérablement la
rapidité d'affichage de chaque image réduite.
62 2767999
L'ensemble des opérations 205-258 ou 205-256 est réitéré tant
que la mémoire (REG 2) n'est pas vide.
Lorsque l'opération 207 est achevée, le test 205 est réitéré.
Lorsque le résultat du test 205 est positif, l'opération 200E est réitérée. Lorsque le résultat du test 201 est positif, le test 200B est réitéré. Lorsque le résultat du test 200B est positif, I'opération 209A de détermination de traitement complémentaire est réalisée. Au cours de cette opération 209A, il est procédé: - d'une part, à la détermination de l'utilité ou non d'effectuer un traitement complémentaire de lissage sur l'image résultant d'un traitement secondaire des paramètres et informations de partition et
- d'autre part, à la mémorisation de la description de cette image, à savoir
son en-tête spécifique (comportant notamment les dimensions de l'image, les dimensions maximales et minimales des sous-ensembles élémentaires, l'éventuel ratio de dimensions entre la résolution de la composante de luminance et celle des composantes de chrominance et la hauteur idéale), ses paramètres et informations de partition et l'information de traitement
complémentaire représentant l'utilité dudit traitement complémentaire.
Pour déterminer cette utilité, plusieurs critères peuvent être
utilisés. Le premier consiste à comparer la dimension minimale des sous-
ensembles élémentaires à une dimension qui sert de seuil. Lorsque la dimension minimale est supérieure à la dimension seuil, cela signifie que des sous-ensembles élémentaires relativement grands (par exemple de 8 x 8 pixels) vont être utilisés même si le critère de qualité, défini à l'étape 253, n'est pas respecté et qu'il sera donc profitable de réduire la sensation de bord affectant de tels sous-ensembles élémentaires. Le second (introduit supra en regard de l'opération 254) consiste à comparer les seuils utilisés dans le tableau définissant le critère de qualité avec des valeurs dites "critique", de seuils prédéterminés. Lorsque les seuils effectivement utilisés sont supérieurs à ces valeurs critiques, cela signifie que le critère de qualité est aisément
respecté sur des sous-ensembles élémentaires de grandes dimensions, sous-
63 2767999
ensemble dont les bords peuvent être visibles. Il est alors, de nouveau,
intéressant de prévoir un traitement complémentaire.
Ensuite, l'opération 209B comporte la mise à jour, dans un fichier commun (figure 22) d'un en-tête commun à plusieurs ensembles de données résultant du traitement primaire de plusieurs images (référencé 901, figure 22), la mise à jour d'une table d'index (référencée 909, figure 22) qui contient des adresses d'ensembles de données concernant des images, dans le fichier considéré.
Ensuite est réalisée l'étape de fin 210.
Les performances suivantes ont pu être observées sur une image couleur 512 x 512 pixels à 256 niveaux par composante: Nombre de données au départ: 3x 512x512 x 8bits=6291456 Nombre de données à l'arrivée: 3x 256 x (4 x 64 + 10) = 204288 par conséquent: - taux de compression: 30 - nombre de bits par pixels: 0,78 Temps de traitement:
3 x 256 x 80 msec._ 61 sec.
(80msec. = temps unitaire de calcul de a...a4, b) Bien entendu, I'invention s'applique aussi bien au traitement primaire d'images en niveaux de gris (possédant une seule composante) qu'à
celui d'images en couleurs (possédant plusieurs composantes).
Description de deux modes de réalisation d'un organigramme
de décompression
64 2767999
On va décrire, à l'appui des figures 16 et 17, l'organigramme de programme permettant de reconstruire les données de l'image couleur
d'origine, ou au moins une représentation approchée.
Au cours de l'opération 400, figure 16, il est procédé à une initialisation des registres (IM), (RE) et (IT) de la mémoire vive 610, des deux mémoires (REG 1) 560 et (REG 2) 570, et de la variable intermédiaire nb_lignes _lues, à la valeur uniforme nulle. Au cours de cette même opération 400, la dimension minimale et la dimension initiale, la hauteur totale de l'image et la hauteur idéale des bandes sont lues dans l'en-tête spécifique concernant
les données secondaires à traiter.
Au cours de l'opération 420, le facteur d'échelle z est lu en entrée, par l'intermédiaire d'un clavier, moyennant des dispositions techniques non représentées mais bien connues de l'homme du métier. Au cours de l'opération 420, on détermine la dimension minimale des sous-ensemblesélémentaires de l'image décompressée, en prenant la valeur maximale des deux valeurs suivantes: - le produit de la dimension minimale lue dans l'en-tête spécifique (opération 400) par le facteur d'échelle z,
- 2 x 2 pixels.
Au cours du test 421, on détermine si la variable nbligneslues est égale à la hauteur totale de l'image, ou non. Lorsque le résultat du test 421 est négatif, I'opération 422 consiste à initialiser la variable CNT, qui indique le numéro de composante, à la valeur 1, dans le registre 513 (CNT). Ensuite, l'opération 423 consiste, de manière identique à l'opération 200D (figure 10), à
déterminer la hauteur de bande et à mettre à jour la variable nblignes_lues.
Le programme effectue alors l'opération 403 au cours de laquelle les données compressées de la mémoire d'entrée pour la bande courante sont chargées dans la mémoire (REG 1) 560. Il est rappelé que les données compressées sont formées d'une suite de cinq ou six nombres, à savoir les paramètres sélectionnés a1,..., a4 et la valeur calculée b et, éventuellement,
d'une information de partition, relatifs à chaque sous-ensemble élémentaire Ki.
2767999
L'opération 403 consiste, d'abord, à ouvrir le fichier 900, dans lequel sont représentées une pluralité d'images (figure 22) puis, dans l'en- tête commun 901 du fichier 900, à lire les données concernant tous les fichiers et, dans le tableau d'index 909, l'adresse des données concernant l'image que l'on souhaite traiter afin de charger ces données dans le registre 560. Le programme effectue ensuite l'opération 404, au cours de
laquelle il est procédé à la création de la liste des références de chaque sous-
ensemble élémentaire. Il s'agit en l'occurrence d'une liste des coordonnées (xi, y,) du pixel inférieur gauche de chaque sous-ensemble élémentaire Ki, ainsi que du facteur de division A associé à ce sousensemble élémentaire, ce facteur de division A étant recalculé en fonction des informations de partition comme exposé avec le traitement primaire ainsi que du facteur d'échelle z qui est associé à toute l'image résultant du traitement secondaire. Cette liste est
conservée dans le registre (REG2).
Au cours de l'opération 404, on détermine les sous-ensembles élémentaires constituant une partition d'un deuxième ensemble de données, étape prenant en compte d'une part la dimension minimale déterminée au cours de l'opération 420, et, d'autre part, la présence d'information de partition
correspondant aux dits sous-ensembles.
A cet effet, on effectue une opération de partition exclusivement sur chaque sous-ensemble élémentaire de dimension supérieure à la dimension minimale et auquel correspond une information de partition dans les
données compressées chargées dans (REG 1).
Enfin, au cours de l'opération 404, on retire des données
contenues dans REG 1, les paramètres qui ne sont pas associés aux sous-
ensembles élémentaires ainsi déterminés de telle manière que les seuls paramètres traités dans les opérations ultérieures sont les paramètres liés à des sous-ensembles élémentaires de dimension supérieure à la dimension
minimale déterminée au cours de l'étape 420.
Ainsi, comme décrit plus haut, pour un facteur d'échelle égal à 1Iv, v étant un nombre entier, on ne conserve, pour le traitement secondaire,
66 2767999
que les données D correspondant à des sous-ensembles élémentaires de
dimensions supérieures ou égales à 2v x 2v pixels dans l'image primaire, c'est-
à-dire ceux qui donneront des sous-ensembles de dimensions supérieures ou
égale à 2 x 2 pixels dans l'image tertiaire.
On note ici que le facteur d'échelle z est un facteur multiplicatif qui s'applique aux dimensions de l'image reconstruite au cours du traitement secondaire à partir des données D provenant d'une image traitée au cours d'un traitement primaire de compression. Ce facteur multiplicatif s'applique aussi aux dimensions de chaque sous-ensemble élémentaire, qu'il provienne de la partition initiale ou de partitions complémentaires, et à chaque dimension de
sous-ensemble de travail associé à un de ces sous-ensembles élémentaires.
Lorsqu'un ratio entre les résolutions des composantes de chrominance et la composante de luminance a été transmis dans l'en-tête, le facteur d'échelle z est appliqué à la luminance et le produit du facteur d'échelle z par ledit ratio est appliqué aux composantes de chrominance, de telle manière que tous les ensembles de données sur lesquels on reconstruit une
composante possèdent la même résolution.
Conformément à l'invention, aucun facteur d'échelle z ne provoque une duplication de pixel formant l'apparition, dans l'image
reconstruite, de pavés uniformes.
Le programme se branche ensuite sur l'étape 406 au cours de laquelle: conformément au mode de mise en oeuvre de l'invention décrit ici, une image arbitraire initiale possédant un nombre de lignes égal à la hauteur de bande multipliée par le facteur d'échelle z, chaque ligne possédant un nombre de pixels égal à 512 multiplié par le facteur d'échelle z, est mémorisée dans le registre (IM) 511 de la mémoire vive 610. Dans le cas présent de décompression d'une image couleur o chaque composante possède 256 niveaux ayant respectivement les valeurs 0 à 255, on initialise le registre (IM) à la valeur numérique 128 (correspondant sensiblement à la valeur moyenne entre 0 et 255) pour chaque pixel pour la première composante traitée. Pour les
67 2767999
composantes suivantes, on utilise comme initialisation le résultat obtenu pour la
composante précédante.
- le registre (IT) 612 est initialisé avec une valeur p lue dans le registre 623 de la RAM 610. Le nombre d'itérations est enregistré dans le registre 623 (p), compte tenu du RMSE souhaité (voir supra tableau 1 de la
description générale du procédé). Les inventeurs ont en effet constaté au cours
d'essais avec le prototype que, pour obtenir un RMSE donné à partir d'un taux de compression, un nombre limité d'itérations successives au cours du calcul d'approximation était nécessaire. Typiquement: 2 < p < 10; toutefois pour des
images très complexes p peut avoir une valeur supérieure,-.
Le programme exécute ensuite un nombre p d'itérations de la boucle référencée 450 (opérations 407, 408, 409 et 410) afin de permettre la
restitution d'une bande de la composante de l'image.
Le programme se branche tout d'abord au test 407 au cours
duquel on vérifie si le contenu du registre (IT) 612 est positif et non nul.
Si le test 407 est positif, le programme se branche au test 408 au cours duquel il est vérifié si la liste enregistrée dans (REG 2) 570 est vide ou non. Si le test 408 est négatif, le programme se branche sur l'étape 410 qui
comprend elle-même les étapes 411 à 415 (figure 17).
A l'étape 411, on retire les coordonnées (xi, y,) correspondants au sousensemble élémentaire Kiconsidéré ainsi que sa taille et on les copie dans les registres 525 et 526 de la mémoire vive RAM 510. Parallèlement, les
paramètres sélectionnés (a,,..., a4) et la valeur calculée b, relatifs au sous-
ensemble élémentaire considéré sont copiés du registre (REG 1) vers le
registre 520 de la partie 614 (CACHE) de la mémoire vive 610.
L'opération 412 a pour but de déterminer les sous-ensembles de travail liés géométriquement et de manière prédéterminée au sous-ensemble
élémentaire Ki considéré, en prenant en compte le fait que chaque sous-
ensemble de travail possède des dimensions doubles du sous-ensemble élémentaire considéré (tenant ainsi compte du facteur d'échelle z) et possède
68 2767999
un centre décalé, par rapport à ce sous-ensemble élémentaire, de la dimension
du sous-ensemble élémentaire considéré, dans chaque direction.
Cette opération 412 comporte les même opérations que l'opération 250 décrite supra. Les valeurs f(L),..., (L4) des moyennes, pour chaque pixel du sous-ensemble élémentaire, des quatre pixels qui lui correspondent dans chacun des sous-ensembles de travail L,,..., L4, sont respectivement copiées dans les registres 516, 517, 518 et 519 de la partie 614
(CACHE) de la mémoire vive 610.
Le programme se branche ensuite aux étapes 413 et 414 au cours desquelles on calcule, pour chaque pixel (x,y) du sous-ensemble élémentaire Ki, la valeur ai '[f(Li)](x,y)+ b i=1 à l'aide des paramètres a,..., a4 et de la valeur b stockés dans le registre 520 et des données f(L),..., f(L4) stockées dans les registres 516 à 519, (étape 413) et on mémorise (étape 414) cette valeur dans le registre (RE) 621 de la
RAM 610.
Si le test 408 est positif, le contenu du registre (RE) 621 est copié dans le registre (IM) 511, et le contenu du registre (IT) 612 est diminué d'une unité. Il est à nouveau procédé au test 407. Tant que ce test est positif cela signifie que le nombre d'itérations prévu par le nombre enregistré dans le
registre 623 (p), n'est pas terminé et les opérations 408 à 410 sont réitérées.
Lorsque le test 407 est négatif ou nul, le nombre d'itérations prévu est terminé, pour la composante en cours de traitement, et le programme sort de la boucle
450. Cette composante est donc décompressée.
On procède alors à l'étape 405 qui consiste, pour effectuer un assemblage des bandes d'images, à copier le contenu du registre (IM) 511 dans le tampon de sortie (OBFR) 690. L'opération 424 consiste ensuite à
69 2767999
incrémenter de 1 la valeur de la variable CNT, dans le registre (CNT) 513.
Ensuite, le test 401 détermine si le contenu du compteur 513 (CNT) est, ou non, strictement supérieur à 3. Tant que le résultat du test 401 est négatif, cela
signifie qu'il reste au moins une composante à décompresser.
Lorsque le résultat du test 401 est négatif, I'opération 403 est réitérée. En figure 16A, au cours du test 430, il est procédé au test du compteur 513 (CNT). Si son contenu est égal à zéro, cela signifie qu'il s'agit de la première composante, celle de luminance, et le registre (IM) 511 est initialisé à 128 pour chaque pixel (étape 431). Le registre (IT) est initialisé à la valeur p
(étape 432).
Si le contenu du compteur 513 (CNT) est supérieur à zéro, cela signifie qu'une composante au moins a été décompressée et, à l'étape 433, on charge le registre (IM) 511 avec le contenu du registre (RE) 621, c'est- à-dire avec les valeurs correspondant à la composante précédemment décompressée. Ceci permet de décroître le nombre d'itérations p de deux unités (étape 434 o l'on initialise (IT) à la valeur p-2) car l'image initiale est très proche de l'image finale. Le temps de calcul est diminué grâce à cette caractéristique. Le compteur 513 (CNT) est ensuite incrémenté d'une unité
(étape 435).
Cependant, selon une septième variante non représentée, il est procédé de manière parallèle aux traitements des trois composantes, Y, Cr et Cb, de l'image, en prenant comme ensemble de données initial, un ensemble
de données arbitraires.
Lorsque les trois composantes ont été décompressées, le test 401 (figure 16) est positif, le programme de décompression est alors terminé pour les trois composantes de la bande de l'image considérée. Le programme effectue alors le test 421 décrit supra. Lorsque le résultat du test 421 est positif, la décompression de l'image entière est terminée et le test 416 consiste alors à déterminer si:
2767999
- soit l'information de traitement complémentaire présente dans l'en- tête des données D et informations de partition est représentatif d'une utilité d'effectuer un traitement complémentaire, - soit le facteur d'échelle z possède une valeur qui rend utile un traitement complémentaire (z étant, par exemple, supérieur ou égal à 4) ou non. Lorsque le résultat du test 416 est négatif, l'étape de fin 402 est effectuée directement. Lorsque le résultat du test 416 est positif, l'opération 417 de traitement complémentaire est effectuée. Cette opération 417 consiste en une opération connue par l'homme du métier sous le nom de "post-processing" (que l'on peut traduire en français par " traitement complémentaire "), ce qui fait référence à un traitement effectué après la décompression d'image illustrée en figure 16. Ce traitement comporte, de manière connue, un filtrage spatial, destiné à diminuer l'éventuelle sensation de frontière des sous- ensembles élémentaires. L'opération 417 effectue aussi l'assemblage des bandes d'images décompressées, en particulier, en réduisant l'apparition de la sensation d'une séparation entre ces bandes. Selon une variante présentée infra, I'opération 417 effectue, en outre, une détermination de valeurs de pixels communs à
* plusieurs bandes d'images décompressées.
Préférentiellement, les paramètres de ce filtrage sont fonctions des dimensions du sous-ensemble traité. Par exemple, les dimensions du filtre utilisé sont proportionnelles à celles du sous-ensemble considéré, d'une part, et le nombre de pixels sur lesquels s'applique ce filtre est proportionnel à chaque dimension du sous-ensemble élémentaire considéré, d'autre part. Selon chacun de ces exemples, le facteur d'échelle z intervient dans le paramétrage du traitement complémentaire. Au cours de l'opération 417, les données relatives à chacune des trois composantes sont, tour à tour, copiées dans le tampon de sortie (OBFR) 690, en remplacement des données mémorisées au cours de l'opération 405, d'o elles sont transférées vers les moyens
utilisateurs de données décompressées.
71 2767999
Selon une variante non représentée, chaque fichier issu du traitement primaire d'une image est disposé dans un fichier spécifique individuel. On observe que, selon des caractéristiques générales de I'invention, le traitement primaire comporte une étape de "construction", opération 251 ou 258, d'une application contractive globale dite "de premier type", pour ledit premier ensemble de données, dont le point fixe constitue une approximation de tout ou partie de cet ensemble, en mettant en oeuvre, pour ce faire, au moins une application appartenant au groupe d'applications constitué des applications multidimensionnelles et des applications non linéaires. Les paramètres ai et b de l'application contractive globale permettent la mise en oeuvre, sur un deuxième ensemble de données comportant un nombre de données qui dépend du facteur d'échelle z, et qui est généralement différent du nombre de données du premier ensemble, d'une méthode d'approximations successives convergeant vers le point fixe d'une application
contractive globale.
On observe ici que, pour obtenir une image reconstruite en niveaux de gris, sans couleur, il suffit de n'effectuer un traitement primaire que sur les données provenant du traitement primaire de la luminance de l'image couleur, cette limitation étant par ailleurs désignée sous le nom de programme 632.
Description de l'organigramme du programme de
configuration On va maintenant décrire à l'appui de la figure 18, l'organigramme du programme de configuration mis en oeuvre dans le dispositif
800 des figures 9 et 9A.
Le programme de configuration porte la référence 831 aux
figures 9A et 18.
72 2767999
Le dispositif 800 illustré en figure 9A possède quatre modes de
fonctionnement qui seront détaillés ci-après.
Le mode de fonctionnement de l'appareil est tout d'abord sélectionné (étape 832). La sélection du mode se fait en rentrant dans le registre MOD 822, une valeur égale à 0, 1 ou 2 et dans le registre (CHTY) une valeur égale à 0 ou 1. Cet enregistrement peut se faire par tout moyen à la portée de l'homme du métier. En particulier, il pourrait être fait au moyen d'un commutateur agencé sur le boîtier de l'appareil 800 à quatre positions correspondantes chacune au mode de fonctionnement souhaité. Ce commutateur permettrait d'envoyer les signaux appropriés à la mémoire RAM 810, de manière à charger les valeurs indiquées dans les registres MOD ou (CHTY). Cette initialisation pourra également être faite dans des conditions
similaires au moyen d'un clavier, non représenté sur la figure 9A.
A l'étape 833, il est procédé à un premier test sur le registre MOD aux fins de déterminer si son contenu est ou non égal à zéro. Si le test 833 est positif, cela signifie que le mode de fonctionnement choisi est le premier de ceux mentionnés ci-dessus et le programme 531 est mis en oeuvre à partir de données alimentées depuis la source de données 810, les données compressées étant délivrées en sortie 881 aux moyens utilisateurs de données
compressées 860 (figure 9).
Si le test 833 est négatif, il est procédé, à l'étape 834, à un test
aux fins de déterminer si le contenu du registre MOD est ou non égal à 1.
Si le test 834 est positif, il est alors procédé à un test 840 sur le
contenu du registre (CHTY) aux fins de déterminer s'il est ou non égal à 1.
Si le test 840 est négatif, cela signifie que le dispositif des figures 9 et 9A est dans le second mode de fonctionnement, c'est-à-dire dans celui o il est utilisé pour restituer les données d'origine d'une image couleur à partir de paramètres (données compressées) et d'informations de partition, fournies en entrée 881, à partir d'une source 861 (figure 9). Les données décompressées délivrées en sortie 892 du dispositif 800 sont destinées à des
moyens utilisateurs de données décompressées 820.
73 2767999
Si le test 840 est positif, cela signifie que le dispositif 800 est dans le troisième mode de fonctionnement, c'est-à-dire celui o il est utilisé pour réaliser un traitement secondaire de données compressées et délivrer des données d'un autre type que celui des données originales, en l'espèce des données relatives à une image à niveaux de gris correspondant à une image couleur originelle. Dans ce cas, le programme 632 est mis en oeuvre à partir de paramètres et informations de partition délivrés par une source de données compressées 861. Les données décompressées sont délivrées en sortie 892 et
alimentées vers des moyens utilisateurs 820.
Si le test 834 est négatif, cela signifie que le contenu du registre MOD est égal à 2. Le dispositif 800, qui est alors dans son quatrième mode de fonctionnement, est utilisé pour transformer une image couleur en image à niveaux de gris. Il s'agit ici d'un exemple de traitement complexe au sens de la présente invention, comportant une phase de traitement primaire et
une phase de traitement secondaire.
Ainsi, dans le mode de réalisation décrit ici, conformément à cet aspect de l'invention, les programmes de traitement primaire et de
traitement secondaire sont mis en oeuvre séquentiellement.
Le programme 531 permet, à partir de données délivrées par une source de données non compressées 810 sur l'entrée 891 du dispositif 800, de compresser ces données, pour obtenir des paramètres ai, b, A relatifs à chacun des sous-ensembles élémentaires Ki de l'image d'origine. Ces paramètres et informations de partition sont, conformément à ce qui a été décrit supra à l'appui de la figure 10, tous présents dans le registre (REG 1) 560 à la fin du programme 531. Le programme principal de la figure 18 commande alors
un branchement direct à l'issue de l'étape 404 du programme 631 décrit supra.
Les données transformées sont alors présentes sur le registre tampon (OBFR) 893 du dispositif 800 et transférées vers les moyens 820 utilisateurs de données décompressées. Ces données sont celles relatives à une image à niveaux de gris correspondant à l'image couleur dont les données
ont été transférées dans le dispositif 800 à partir de la source 810.
74 2767999
On notera que le sous-programme comportant l'ensemble des étapes 404, 452, 406, 450, 405 et 402 du programme 632 constitue ici un mode particulier de mise en oeuvre d'un procédé de traitement secondaire au sens de l'invention. C'est ce sous-programme particulier qui est ici mis en oeuvre à la suite du programme 631 pour constituer un exemple d'un traitement
"complexe" au sens de la présente invention.
3. Description d'une huitième variante, préférée. mettant en
oeuvre des sous-ensembles de travail présentant une taille différente de celle du sous-ensemble élémentaire correspondant Lorsque les sous-ensembles de travail possèdent la même dimension que les sous-ensembles élémentaires auxquels ils sont associés, et que l'application contractive est linéaire sur chaque sous-ensemble de travail, l'image reconstruite ne peut avoir dans le sous-ensemble élémentaire
considéré une complexité plus grande que celles qu'elle a dans chaque sous-
ensemble de travail.
En outre, la convergence de la méthode d'approximations
successives peut être relativement lente.
Pour ces deux raisons, et au moins dans le cas de la mise en oeuvre d'applications contractives multilinéaires, il est préférable d'utiliser des sous-ensembles de travail possédant des dimensions supérieures à celles des
sous-ensembles élémentaires.
Aussi, on va maintenant décrire à l'appui des figures 3A, 10, 11, 12A, 13 à 16 et 17A, une huitième variante préférée de réalisation du procédé et dispositif décrit supra, dans laquelle au moins un sous-ensemble de travail présente une taille différente de celle du sous-ensemble élémentaire correspondant. Dans le mode de réalisation particulier de cette huitième
variante, quatre sous-ensembles de travail sont associés à chaque sous-
2767999
ensemble élémentaire, ces quatre sous-ensembles de travail présentant des
dimensions supérieures à celles du sous-ensemble élémentaire correspondant.
L'image à traiter est ici une image de 512 x 512 pixels partitionnée initialement en sous-ensembles carrés de 32 x 32 pixels, conformément à ce qui a été décrit supra à l'appui de la figure 1.
On va maintenant décrire la division initiale de l'image en sous-
ensembles de travail, sachant que chaque partition complémentaire d'un sous-
ensemble élémentaire donne lieu à la définition de sous-ensembles de travail de dimensions proportionnelles à celle de ce sous-ensemble élémentaire. Les
sous-ensembles de travail présentent ici une taille double de celle des sous-
ensembles élémentaires, de telle sorte que l'image de 512 x 512 pixels est divisée en sous-ensembles carrés de 64 x 64 pixels. Toutefois, de manière à ce
qu'à un sous-ensemble élémentaire donné correspondent quatre sous-
ensembles de travail (voir figure 3A), le décalage utilisé pour la division de I'image est de 32 pixels, la division de l'image résultant alors en un
recouvrement par ardoises (en anglais "tiling").
En figure 3A le sous-ensemble élémentaire Ki ayant pour coordonnées (xy) est illustré en traits gras, tandis que les sous-ensembles de
travail correspondants sont illustrés en traits pointillés, les autres sous-
ensembles étant ébauchés en traits fins. On observe que, dans ce mode de réalisation, à chacun des sous-ensembles Ki sont liés quatre sousensembles de travail Lú (numérotés Li,..., L4) décalés de 64 pixels dans les deux directions et disposés symétriquement par rapport au sousensemble Ki considéré. Il s'agit en réalité des quatre sous-ensembles issus de la division qui recouvrent le sous-ensemble élémentaire considéré (issu de la partition initiale). Les expressions ci-dessous montrent les coordonnées d'un sous-ensemble Ki et des sous-ensembles de travail L,,..., L4, pour toutes valeurs du facteur de division A: Tableau 2
76 2767999
Ki: [xi, xi - 1 +(32/2A)] x [yi, Yi-1 +(32/2A)] L: [xi - (48/2A), xi -1 + (16/2A] x [yi + (16/2A), yi -1 + (80/2)] L2: [xi + (16/2), xi -1 + (80/2] x [yi + (16/2), yi -1 + (80/2A)] L3: [xi - (48/2), xi-1 + (16/2A] x [yi(48/2A), Y-1 + (16/2)] L4: [xi + (16/2A), xi -1 + (80/2A] x [y, - (48/2A), yi -1 + (16/2A)] On rappelle ici que les points des sous-ensembles de travail définis ci-dessus qui n'appartiennent pas à l'image, c'est-à-dire ceux dont l'une au moins des coordonnées est négative, se voient fictivement associer une
valeur moyenne, par exemple 127, pour chaque composante.
Les dispositifs de compression et de décompression utilisés pour mettre en oeuvre cette huitième variante de réalisation sont semblables à ceux décrits à l'appui des figures 4 et 6. Toutefois, les programmes 531 et 631
sont modifiés ainsi qu'il va être expliqué ci-après.
S'agissant tout d'abord du programme de compression 531 décrit supra à l'appui de la figure 10, sa structure est conservée. Seule change l'opération 250. Cette opération modifiée 250A va être décrite ci-après à l'appui
de la figure 12A.
A l'étape 250A, il est procédé à la recherche des quatre sous-
ensembles de travail voisins LI, L2, L3, L4 (voir figure 3A) à partir de l'adresse enregistrée dans le registre CSI. A cet effet, la règle rappelée supra est appliquée. L'étape 250A a pour but de déterminer les valeurs /(x,y) de la composante considérée, associée à chacun des pixels des sous-ensembles de travail LI, L2, L3, L4 liés géométriquement et de manière prédéterminée à l'ensemble élémentaire considéré Kr. L'ensemble des valeurs jf(x,y) liées aux pixels du sous-ensemble LI (respectivement L2, L3 et L4) sera noté ci-après f(LI) (respectivement j(L2),J(L3) et j(L4)) conformément aux notations utilisées
supra.
77 2767999
L'élément essentiel qui différencie l'étape 250A (figure 12A) de l'étape 250 (figure 12), réside dans le fait que l'ensemble de valeurs représentées parj(Li), i = 1,..., 4 concerne des sous-ensembles de travail Li, i =
1,..., 4 qui ont une taille différente de celle du sous-ensemble élémentaire K1.
Afin de pouvoir exécuter les opérations de comparaison avec le sousensemble Ki, il y a lieu de ramener les ensembles j(L) à la même taille. Plusieurs méthodes sont à la disposition de l'homme du métier. Dans ce mode de réalisation o la taille des sous-ensembles de travail est de 64 x 64 pixels et celle des sous-ensembles élémentaires de 32 x 32 pixels, on retient une valeur moyenne par carré de 4 pixels. L'ensemble de ces valeurs moyennes sera noté pour un ensemble de travail L, considéré: X(L). L'organigramme détaillé de
cette étape est représenté dans la figure 12A.
En référence à la figure 12A à l'étape 317, on copie dans l'unité
arithmétique 550 les coordonnées (xi,y) du pixel inférieur gauche du sous-
ensemble élémentaire K, considéré ainsi que le facteur de division A, et on les stocke dans le registre (REG 2) 570. Ensuite, l'unité arithmétique 550 détermine les coordonnées de chaque pixel de chaque sous-ensemble de
travail selon le tableau 2 comme indiqué à l'étape 318.
A l'étape 319, I'unité arithmétique 550 va chercher, pour la composante en cours de traitement, la valeur correspondant à chacun des (64/2A)2 pixels de LI (respectivement L2, L3 et L4) et stocke l'ensemble des (64/2A)2 valeurs dans le registreJ(L) 516 (respectivementj(L2) 517,. (L3) 518 et
j(L4) 519) du cache 514.
A l'étape 320, l'unité arithmétique 550 traite chaque carré de 2 x 2 valeurs dej(LI) et y substitue une valeur correspondante de '(L,%) au registre 516. Dans ce mode de réalisation la valeur de 1(L) correspondantesera obtenue en calculant la moyenne des valeurs dudit carré de 2 x 2 valeurs de
f(L1). Les autres ensemblesj(L2).... j(L4) sont ensuite traités de la même façon.
78 2767999
A l'étape 321, les valeurs de f(L),..,f(L4) sont stockées dans la partie 514 (CACHE) de la mémoire vive 510, dans les registresf(Ld 516
àf(L4) 519.
Le programme se branche ensuite à l'étape 208 (figure 13) au cours de laquelle, comme indiqué supra, les paramètres a, (en l'espèce al, a2, a3, a4) et b sont calculés en mettant en oeuvre la méthode des moindres carrés avec les contraintes décrites supra (voir équations 12 et 13). Toutefois, dans ce mode de réalisation, la valeur de D sera inférieure à 2/ In On observe que cette dernière valeur est plus élevée que celle utilisée dans le premier mode de réalisation. En, effet, dans la mesure o, au
cours de l'étape 320, on a placé dans les registres 516 à 519 des sous-
ensembles de travail de substitution dont la valeur de chaque pixel est calculée comme la moyenne des valeurs de quatre pixels de l'image initiale, on a déjà effectué une application contractive. Les contraintes appliquée à la contractivité de l'application globale qui succède à cette substitution peuvent, en
conséquence, être réduites.
Le fonctionnement du programme de compression est, pour le reste, identique au fonctionnement du programme de compression 531 décrit supra à l'appui de la figure 10. La seule différence étant que, dans les registres
516 à 519, sont stockées les valeurs 1Lî2),..... f(L4/).
Dans cette huitième variante de réalisation, le programme de décompression fonctionne de façon similaire au programme 631 décrit supra à l'appui des figures 16 et 17. Toutefois, l'opération 410 doit être modifiée comme
exposé ci-après et sera référencée comme 410A, illustrée en figure 17A.
Le détail de l'étape 410A est décrit à l'appui de la figure 17A.
L'étape 410A comprend elle-même les étapes 459 à 465: Les étapes 459 et 460 sont identiques aux étapes 411 et 412 décrites supra
(figure 17), mais elles prennent en compte, pour la définition des sous-
79 2767999
ensemble élémentaires et des sous-ensembles de travail le facteur multiplicatif dit "d'échelle" z qui multiplie chacune de leur dimension dans un ensemble de données qui possède lui-même des dimensions qui sont multipliées par ce
facteur d'échelle.
Le programme se branche ensuite aux étapes 461, 462 et 463 au cours desquelles on détermine les valeurs f(L1),..., f(L4). Ensuite à l'étape 462 on détermine les valeursf(L,.),... (L4L). Pour ce faire, l'unité arithmétique 550 traite chaque carré de 4 valeurs de f(Ld) et y substitue une valeur correspondante de 2(L) au registre 516. Dans ce mode de réalisation la valeur de J(L) correspondante est obtenue par calcul de la moyenne des valeurs dudit carré ou tout autre filtrage passe-bas bien connu de l'homme du métier. Les autres ensembles f(L2)..., f(L4) sont ensuite traités de la même façon. A l'étape de 463 on calcule pour chaque pixel (x,y) de Ki la valeur i [a x,)+ b i=l à l'aide des coefficients de 520 et les donnéesl(L),. (L4) de 516 à 519, (étape 462) et on mémorise (étape 463) cette valeur au pixel correspondant
dans le registre (RE) 621 de la RAM 610.
Finalement, l'étape 464 est identique à l'étape 414 (figure 17).
Le fonctionnement du programme de décompression modifié comme exposé cidessus à l'appui de la figure 17A est pour le reste identique au fonctionnement du programme de décompression 631 décrit supra à l'appui
de la figure 16.
2767999
Dans cette huitième variante de réalisation, il peut également être réalisé un traitement complexe permettant de transformer des données, comme décrit supra à l'appui de la figure 18, en mettant en oeuvre les programmes de compression 531 et de décompression 631 modifiés tel qu'exposé ci-dessus à l'appui des figures 10, 11, 12A, 13, 14 et 17A.
4. Description de la troisième variante de réalisation
mettant en oeuvre une application contractive globale composée d'applications non linéaires Dans cette troisième variante de réalisation des procédés et dispositifs conformes à l'invention, il est mis en oeuvre une application
contractive globale composée d'applications non linéaires.
Dans cette troisième variante de réalisation, qui concerne également la compression et la décompression d'images, I'image à traiter est également une image 512 x 512 pixels. Cette image est initialement partitionnée en sous-ensembles élémentaires et divisée en sous-ensembles de
travail de la même façon que ce qui est décrit supra à l'appui des figures 1 à 3.
On va maintenant définir l'application globale utilisée dans un
mode particulier de cette troisième variante de réalisation.
Conformément à cet aspect de l'invention, chaque "morceau" de l'application contractive globale, est une application élémentaire Lipschitzienne non linéaire du type: n T(f) Ki (x,y) E Ki T [T(f)] (x,y) = E aj gj[f] Lj (x,y) + b j=I (10 ter) o: T001 Ki la restriction de T(q au sous-ensemble élémentaire Ki
81 2767999
g, [/,..., gn[/] sont des transformations non linéaires de f(g, E F (E, E)) tels que des puissances fractionnaires ou entières de f (par exemple g[f]= xff) n > I le nombre de sous-ensembles de travail (n = 4 dans ce mode de réalisation) a,... a, les coefficients multiplicatifs b le facteur de translation LI,... Ln les sous- ensembles de travail, à position prédéterminée par
rapport à Ki et lié à ce sous-ensemble.
On voit que l'équation (10 ter) ci-dessus est de nature non linéaire essentiellement à cause des transformations non linéaires gl,. gn, les coefficients ai, j = 1.., n et b étant respectivement les coefficients multiplicatifs et le facteur de translation. Les coefficients(a,...,ab) sont ici les "paramètres" au sens de l'invention de l'application élémentaire relative au sous-ensemble Ki. L'ensemble des coefficients (a,
.. an, b)K, relatifs aux m sous-ensembles élémentaires (Kl,.... Km) constitue ici aussi l'ensemble des paramètres" de..DTD: l'application contractive globale au sens de l'invention.
On rappelle que, dans ce mode de réalisation, n = 4, ce qui signifie que seulement quatre sous-ensembles de travail Lj j = 1,..., n tels que ceux définis à l'appui de la figure 3, sont liés à chaque sous-ensemble
élémentaire Ki.
Ainsi, à chaque couple de valeurs (x,y) d'un sous-ensemble élémentaire Ki déterminé, on associe une valeur calculée à partir de l'équation non linéaire (10 ter). Ceci est fait pour l'ensemble des m sous-ensembles élémentaires (K,..., Km) résultants aussi bien de la partition initiale que de
partition complémentaires, comme décrit supra.
82 2767999
Pour résoudre le problème d'optimisation simplifié (voir supra, notamment équation (7)) qui permet de déterminer les coefficients de l'application non linéaire aj, j = 1,.... n et b pour chacun des sous- ensembles
élémentaires de travail Ki, il faut, d'une manière générale, pour chaque sous-
ensemble élémentaire K,, minimiser la distance entre la restriction au sous-
ensemble élémentaire Ki et sa transformée par l'application contractive globale.
En d'autres termes, il faut minimiser les distances: d (fS Ki, T(f)|Ki), i =,...m (1 1) A cet égard, on applique la théorie exposée à l'appui des
équations (12) à (29) dans la partie relative à la théorie générale.
Par ailleurs, on observera que, d'une manière générale dans cette troisième variante de réalisation, le procédé de représentation secondaire des paramètres issus du traitement primaire, de données initiales, met en
oeuvre les principes généraux décrits supra à l'appui des équations (30) à (32).
Les dispositifs de compression et de décompression utilisés pour mettre en oeuvre cette troisième variante de réalisation sont semblables à ceux décrits supra à l'appui des figures 4 et 6. Toutefois, les programmes 531
et 631 sont modifiés ainsi qu'il va être expliqué ci-après.
S'agissant tout d'abord du programme de compression 531 décrit supra à l'appui de la figure 10, sa structure est conservée. Seule change l'étape 251 relative aux calculs des coefficients. Cette troisième variante, qui concerne notamment l'étape 251 (référencée comme 251B) va maintenant être
décrite notamment à l'appui de la figure 12B.
L'étape 251B comporte les étapes 322 et 323 respectivement identiques aux étapes 217 et 218 décrites supra à l'appui de la figure 12. A
l'étape 324, on lit dans le registre (IM) 511, les valeursf(L,),..., f(L4).
83 2767999
A l'étape 325, on détermine les valeurs g, [f (L,)J.. .,g4[f (L4)} en calculant par application de la formule
g,[f(L,) = f(Li).
Enfin, à l'étape 326, on mémorise dans les registres 516 à 519 de la partie 514 (CACHE) de la mémoire vive 510, les valeurs g, [f (L,)J..., g4 [f (L4 I. Le fonctionnement du programme de compression avec l'opération 250 modifiée ainsi qu'il vient d'être décrit est, pour le reste, identique
au fonctionnement du programme 531 décrit supra à l'appui de la figure 10.
De même, dans cette troisième variante de réalisation, le programme de décompression fonctionne de façon similaire au programme 631 décrit supra à l'appui des figures 16 et 17. Toutefois l'opération 410 doit être modifiée comme exposé ci-après. Cette nouvelle opération est référencée
410B et est illustrée dans la figure 17B.
Le détail de l'étape 410B sera maintenant décrit à l'appui de la figure 17B. L'étape 410B comprend elle-même les étapes 471 à 475: A l'étape 471, on retire les coordonnées (xi,yi) du sous-ensemble élémentaire Ki considéré et on les copie dans le registre CSI 515. Les coefficients (a,. ., a4, b, relatifs aux sous-ensembles Ki considérés sont copiés du registre (REG 1) vers le registre 520 de la partie 614 (CACHE) de la
mémoire vive 610.
L'étape 472 a pour but de déterminer les sous-ensembles de travail liés géométriquement et de manière prédéterminée à l'ensemble élémentaire K, considéré. Cette étape comporte les même opérations qu'à I'étape 250 décrite supra à l'appui de la figure 12. Les valeurs gl [f] LL,g2 [f] L 2 'g3 [f] L3 et g4 [f] 1 4 des pixels relatifs respectivement à LI, L2, L3 et L4 sont respectivement copiées dans les registres 516, 517, 518
et 519 du (CACHE) 614.
84 2767999
Le programme se branche ensuite aux étapes 473 et 474 au cours desquelles on calcule pour chaque pixel (x,y) de Ki la valeur 4 ai [g,t, y)+b i=1 à l'aide des coefficients conservés dans le registre 520 et les données f(L)..., f(L4) conservés dans le registre de 516 à 519, (étape 474) et on mémorise cette valeur au pixel correspondant dans le registre (RE) 621 de la
mémoire vive RAM 610.
Dans cette troisième variante de réalisation, il peut également être réalisé un traitement complexe permettant de transformer des données comme décrit supra à l'appui de la figure 18, en mettant en oeuvre des programmes de compression 531 et de décompression 631 modifiés tel
qu'exposé ci-dessus à l'appui des figures 12B et 17B.
5. Description de la première variante de réalisation
mettant en oeuvre un critère de qualité mesuré à l'aide de l'application contractive globale Selon la première variante, le critère de qualité utilisé pour déterminer la nécessité d'effectuer une partition complémentaire n'est pas, comme présenté en regard de la figure 19, la comparaison, d'une part, d'une mesure statistique effectuée sur les niveaux de la composante considérée dans un sous- ensemble élémentaire avec, d'autre part, un seuil, mais la comparaison d'une mesure de différence entre, d'une part, I'image obtenue après lui avoir appliqué une application contractive globale, avec cette image initiale. Cette première variante est illustrée en figure 20, dans laquelle les tests et opérations communs avec la figure 19 portent les mêmes
2767999
références. Dans cette première variante, à la suite de l'opération 206, l'opération 250 est réalisée, en prenant en compte la valeur actualisée du
facteur de division A. L'opération 250 détermine, on le rappelle, les sous-
ensembles de travail associés au sous-ensemble élémentaire considéré.
Ensuite, l'opération 260 est identique à l'opération 251 (figure 19) à l'exception de la mémorisation dans le registre de mémoire 560 (REG 1). Elle
fournit donc des paramètres de l'application contractive globale, dans le sous-
ensemble élémentaire considéré. Le test 255 succède à l'opération 260 et détermine, comme exposé supra, si le sous-ensemble élémentaire possède
des dimensions minimales ou non.
Lorsque le résultat du test 255 est positif, l'opération 263 consiste à mémoriser dans le registre 560 (REG 1) les cinq paramètres déterminés au cours de l'opération 260, sans leur associer d'information de partition puisqu'aucune nouvelle partition complémentaire ne peut avoir lieu. Ensuite, le
test 205 est réitéré.
Lorsque le résultat du test 255 est négatif, l'opération consiste à déterminer un critère dit "de qualité" applicable au sous-ensemble élémentaire considéré. Préférentiellement, la définition du critère de qualité consiste en la définition d'un seuil en deçà duquel le critère de qualité est considéré comme respecté. Préférentiellement aussi, la valeur du seuil prend en compte les dimensions du sous-ensemble élémentaire considéré. Dans le mode de réalisation décrit et représenté ce seuil est la fonction correspondant au tableau suivant: dimensions du sous-ensemble en pixels seuil 2x2 800 4x4 640 8x8 400 16 x 16 240 32 x 32 80
86 2767999
On observe ici qu'il est préférentiel d'utiliser un tableau correspondant à une fonction décroissante des dimensions du sous- ensemble élémentaire. Le test 254 détermine ensuite si le critère de qualité est respecté ou non. Dans le mode de réalisation décrit et représenté, ce critère de qualité est respecté lorsque la mesure de l'écart quadratique moyen entre la composante considérée et son image par l'application contractive globale, mesure restreinte au sous- ensemble élémentaire considéré, est inférieur à la valeur du seuil qui correspond, dans le tableau ci-dessus aux dimensions du
sous-ensemble élémentaire considéré.
Lorsque le résultat du test 254 est négatif, l'opération 256 consiste à effectuer une partition complémentaire du sous-ensemble élémentaire considéré. Dans le mode de réalisation décrit et représenté, cette partition complémentaire consiste à diviser chaque sous-ensemble élémentaire en quatre sous ensembles élémentaires carrés égaux. A cet effet, au cours de l'opération 256, il est ajouté en tête de la liste liste_sous_image, dans le registre (REG 2) 570, les coordonnées des quatre points qui définissent les coins inférieurs gauches des quatre sous-ensembles élémentaires résultant de la partition complémentaire. A ces coordonnées est associée un facteur de division A qui est égal au facteur de division du sous-ensemble élémentaire que l'on partitionne, incrémenté de la valeur 1. Enfin, une information de partition valant "1" est mémorisée dans le registre 560 (REG 1) puisqu'une
partition complémentaire a été effectuée.
Lorsque le résultat du test 254 est positif, au cours de l'opération 261, les cinq paramètres déterminés au cours de l'opération 260 sont mémorisés dans le registre 560 (REG 1) avec une information de partition
valant "0" puisqu'aucune partition complémentaire n'a eu lieu.
Dans la première variante exposée en figure 20, il est intéressant de mesurer la moyenne des valeurs de l'écart quadratique moyen de tous les sous-ensembles élémentaires traités pour lesquels cet écart est mesuré au cours de l'opération 254, pour déterminer l'utilité d'un traitement
87 2767999
complémentaire au cours du traitement secondaire: lorsque cette moyenne est supérieure à une valeur critique globale prédéterminée, il est utile de prévoir un
traitement complémentaire (opérations 416 et 417, figure 16).
On observe ici que les organigrammes présentés en regard des figures 19 et 20 se combinent particulièrement bien, en faisant se succéder
l'opération 262 de la figure 20 à la fin des opérations 258 de la figure 19.
Selon une dixième variante non représentée, les partitions complémentaires sont effectuées en effectuant un découpage non homothétique des sous-ensembles élémentaires, comme par exemple un découpage en triangles, en deux rectangles égaux, successivement en formant
deux rectangles côte-à-côte horizontalement ou verticalement,...
Selon une onzième variante, le facteur d'échelle n'est pas uniforme. Il peut ainsi, par exemple, avoir une valeur horizontale, qui sert de coefficient multiplicatif aux dimensions horizontales des sous-ensembles élémentaires et une valeur verticale qui sert de coefficient multiplicatif aux dimensions verticales des sous-ensembles élémentaires. Le facteur d'échelle peut aussi avoir une valeur qui varie en fonction de la distance au centre de l'image... Selon une douzième variante, préférentielle, le facteur d'échelle est différent pour les différentes composantes de l'image traitée. Par exemple, le facteur d'échelle est le double pour chaque composante de chrominance de ce qu'elle est pour la composante de luminance. Dans ce cas, il est effectué un filtrage préliminaire au traitement primaire (c'est-à-dire ici à la compression), filtrage qui divise la résolution des composantes de chrominance d'un facteur de deux dans chaque direction, en donnant à chaque composante de chaque pixel de l'image de plus faible résolution la valeur moyenne de la composante correspondante de quatre pixels de l'image initiale. Ce facteur, est transmis
dans l'en-tête sous la forme du ratio susmentionné.
Conjointement, le nombre de données initiales utilisées pour la reconstruction de la composante de luminance est, dans chaque direction, le double de ce qu'il est pour chacune des composantes de chrominance. En
88 2767999
effet, il est courant que la complexité des composantes de chrominance soit moindre que celle de la composante de luminance, d'une part et que cette
complexité soit moins perçue par l'oeil humain.
En combinaison avec cette douzième variante, le dispositif de traitement primaire est adapté à effectuer, avant les opérations illustrées en figure 10, un filtrage des composantes de chrominance afin de diviser par deux
leur résolution dans chaque direction de l'image.
Selon une treizième variante, chaque fichier résultant du traitement primaire ne contient que des données relatives à une seule image,
auquel cas le tableau d'index 909 est inutile.
Selon une quatorzième variante, l'image n'est pas découpée en
bandes et l'information de hauteur de bande est inutilisée.
Selon une quinzième variante non représentée, les bandes successives de l'image à compresser possèdent une intersection non vide. Ces bandes se recouvrent donc partiellement, ce qui évite des effet de frontière qui peuvent nuire à la qualité de l'image restituée. Pour la mise en oeuvre de cette variante, I'homme du métier modifie l'organigramme de la figure 10, et notamment: - I'opération 200D o la hauteur de bande est réduite de 32 lignes, par rapport à ce qui est décrit plus haut, - I'opération 202 au cours de laquelle, à partir de la deuxième itération de cette opération 202, le programme charge non seulement une bande dont la hauteur est la hauteur déterminée au cours de l'opération 200D, et qui ne possède pas de point commun avec la bande précédente, mais aussi les 32 dernières lignes de la bande précédemment traitée, - I'opération 209A, au cours de laquelle on détermine qu'un traitement complémentaire d'assemblage des bandes est nécessaire et on insère une information requérant ce traitement complémentaire, dans l'en-tête relatif à
l'image traitée.
La variante du procédé de décompression qui correspond à la quinzième variante exposée ici, possède, une étape de traitement
89 2767999
complémentaire 417 qui comporte, elle-même une étape d'assemblage des bandes d'images résultant de la décompression des paramètres relatifs à chaque bande. Au cours de cette étape d'assemblage, on détermine des intersections des bandes d'image décompressées et, dans ces intersections, on détermine une combinaison de ces bandes pour constituer une image
décompressée complète.
Préférentiellement, pour une intersection des bandes d'image, au cours de l'étape de traitement complémentaire, on calcule la moyenne des valeurs des pixels des points communs à plusieurs bandes et on attribue au
pixel correspondant de l'image finale, ladite valeur moyenne.
Bien entendu la présente invention ne se limite nullement aux modes de réalisation choisis et représentés mais englobe, bien au contraire,
toutes variantes à la portée de l'homme du métier.
2767999

Claims (32)

REVENDICATIONS
1. Procédé de traitement primaire d'au moins deux ensembles de données primaires (IM,f) représentatives de grandeurs physiques, dits " premiers ensembles de données ", caractérisé en ce qu'il comporte, pour chaque premier ensemble de données: - une étape de "construction" (205 à 209) d'une application contractive globale dite "de premier type", pour ledit premier ensemble de données, dont le point fixe constitue une approximation de tout ou partie de cet ensemble, 10. en mettant en oeuvre, pour ce faire, au moins une application appartenant au groupe d'applications constitué des applications multidimensionnelles et des applications non linéaires et en déterminant des paramètres (ai, b) de l'application contractive globale de façon à permettre la mise en oeuvre, sur un deuxième ensemble de données, d'une méthode d'approximations successives (407 à 410) convergeant vers le point fixe d'une application contractive globale dite "de second type"; - une étape d'organisation d'un fichier informatique comportant des données représentatives de chaque ensemble de paramètres provenant d'une étape de construction appliquée à chaque premier ensemble de données, les paramètres (ai, b) ainsi organisés en fichier constituant une représentation
primaire desdits premiers ensembles de données.
2. Procédé de traitement primaire selon la revendication 1, caractérisé en ce que l'étape d'organisation comporte une opération de constitution d'un en-tête commun à tous les ensembles de paramètres, et une étape de constitution d'une liste de données représentatives de positions de
paramètres dans le fichier.
91 2767999
3. Procédé de traitement primaire selon la revendication 2, caractérisé en ce qu'à chaque étape de construction appliquée à un premier ensemble de données correspond: - d'une part, une étape d'ajout d'une donnée représentative de position dans ladite liste et - d'autre part, une étape de mémorisation, dans le fichier, des paramètres provenant de ladite étape de construction en une position représentée par
ladite donnée ajoutée au cours de ladite étape d'ajout.
4. Procédé de traitement primaire selon l'une quelconque des
revendications 1 à 3, caractérisé en ce que:
- il comporte une étape de "partition initiale" (204) au cours de laquelle, on partitionne ledit premier ensemble de données en sousensembles dits "élémentaires initiaux" (Ki),
- au cours de l'étape de construction (205 à 209), pour chacun des sous-
ensembles élémentaires (Ki), on détermine les paramètres (ai, b) de l'application élémentaire qui constitue une restriction de l'application contractive
globale audit sous-ensemble élémentaire.
5. Procédé de traitement primaire selon l'une quelconque des
revendications 1 à 4, caractérisé en ce que, ledit premier ensemble de données
constituant une image couleur à plusieurs composantes (Y, Cr, Cb), il comporte une opération de filtrage, au cours de laquelle on filtre au moins l'une desdites composantes et on modifie le nombre de données de l'ensemble de données
liés à au moins une composante.
6. Procédé de traitement primaire selon la revendication 5, caractérisé en ce que, au cours de l'opération de filtrage, on réduit le nombre de données des ensembles de données liés aux composantes de chrominance, par rapport au nombre de données de l'ensemble de données lié
à la composante de luminance.
92 2767999
7. Procédé de traitement secondaire d'un ensemble de paramètres (ai, b) résultant d'un traitement primaire d'un premier ensemble de données, procédé de traitement secondaire caractérisé en ce qu'il comporte: - une étape de lecture dans un fichier, au cours de laquelle au moins une partie de l'ensemble de paramètres est lue dans un fichier commun à plusieurs ensembles de paramètres, et - une étape de "calcul itératif" (450) au cours de laquelle à partir dudit ensemble de paramètres (ai, b), on met en oeuvre, sur un deuxième ensemble de données, une méthode d'approximations successives (407 à 410) convergeant vers le point fixe d'une application contractive globale dite "de second type", en mettant en oeuvre, pour ce faire, au moins une application appartenant au groupe d'applications constitué des applications multidimensionnelles et des applications non linéaires, ce point fixe constituant une représentation
secondaire (RE) dudit premier ensemble de données.
8. Procédé de traitement secondaire selon la revendication 7, caractérisé en ce que l'étape de lecture comporte une étape d'accès à une liste de données représentatives de positions dans le fichier et une étape de lecture
de paramètres à au moins une position représentée dans ladite liste.
9. Procédé de traitement secondaire selon l'une quelconque des
revendications 7 ou 8, caractérisé en ce qu'il comporte une étape de lecture
d'informations contenues dans un en-tête commun à plusieurs ensembles de
paramètres.
10. Procédé de traitement secondaire selon l'une quelconque des
revendications 7 à 9, caractérisé en ce qu'il comporte une étape de lecture
d'informations contenues dans un en-tête spécifique à l'ensemble de
paramètres destiné à être traité.
93 2767999
11. Procédé selon l'une quelconque des revendications 7 à 10,
caractérisé en ce qu'au cours de ladite étape de "calcul itératif" (450), on prend en compte, d'une part, ledit ensemble de paramètres (ai, b), et, d'autre part, un deuxième ensemble de données constitué d'un ensemble de données arbitraires dit ensemble d"'initialisation", et pour réaliser ledit calcul itératif: cl) on partitionne l'ensemble d'initialisation en sous-ensembles élémentaires (Ki); c2) on considère, pour chacun des sous-ensembles élémentaires (Ki) ainsi déterminés, les paramètres (ai, b) des applications élémentaires correspondant aux sous-ensembles élémentaires (Ki) résultant de la partition (204) de l'ensemble des données initiales, et on met en oeuvre lesdites applications élémentaires sur les sous-ensembles élémentaires (Ki) de l'ensemble d'initialisation c3) on réunit l'ensemble des données obtenues par les mises en oeuvre d'applications élémentaires, ceci constituant une représentation intermédiaire desdites données initiales, affectée d'une erreur; c4) on réitère les opérations c1-c3, en prenant comme ensemble d'initialisation, ladite représentation intermédiaire, de façon à s'approcher, du point fixe de ladite application contractive globale de second type; I'ensemble de données finalement obtenu constituant une représentation secondaire (RE) de l'ensemble de données ayant été l'objet d'un traitement primaire.
12. Procédé de traitement selon l'une quelconque des
revendications 7 à 11, dans lequel lesdits paramètres (ai, b) sont une
représentation primaire d'une image couleur à plusieurs composantes (Y, Cr, Cb) caractérisé en ce qu'après une étape de calcul itératif (450) sur l'une des composantes, on utilise comme initialisation de l'étape de calcul itératif (450) relatif à la composante suivante la représentation secondaire (RE) obtenue à la fin de l'étape de calcul itératif (450) relative à l'une des composantes déjà traitées.
94 2767999
13. Procédé de traitement selon l'une quelconque des
revendications 7 à 12 dans lequel le traitement primaire étant effectué avec des
premiers ensembles de données possédant des dimensions différentes pour les différentes composantes (Y, Cr, Cb) d'une image couleur, au cours de l'étape de "calcul itératif" (450) du traitement secondaire, on met en oeuvre des deuxièmes ensembles de données possédant les mêmes dimensions pour les
différentes composantes.
14. Procédé de traitement selon la revendication 13, caractérisé en ce que lesdits premiers ensembles de données mis en oeuvre au cours du traitement primaire possèdent, pour chaque composante de chrominance (Cr, Cb) des dimensions inférieures aux dimensions du premier ensemble de
données utilisé pour la composante de luminance (Y).
15. Dispositif de traitement primaire d'au moins deux ensembles de données primaires (IM,f) représentatives de grandeurs physiques, dits " premiers ensembles de données ", caractérisé en ce qu'il comporte: - un moyen d'entrée de données primaires, - un moyen de construction adapté, pour chaque premier ensemble de données, à construire une application contractive globale dite "de premier type", pour ledit premier ensemble de données, dont le point fixe constitue une approximation de tout ou partie de cet ensemble, en mettant en oeuvre, pour ce faire, au moins une application appartenant au groupe d'applications constitué des applications multidimensionnelles et des applications non linéaires et en déterminant des paramètres (ai, b) de l'application contractive globale de façon à permettre la mise en oeuvre, sur un deuxième ensemble de données, d'une méthode d'approximations successives (407 à 410) convergeant vers le point fixe d'une application contractive globale dite "de second type"; et
2767999
- un moyen d'organisation adapté à organiser un fichier informatique comportant des données représentatives de chaque ensemble de paramètres provenant d'une étape de construction appliquée à chaque premier ensemble de données, les paramètres (ai, b) ainsi organisés en fichier constituant une représentation primaire desdits premiers ensembles de données.
16. Dispositif de traitement primaire selon la revendication 15, caractérisé en ce que le moyen d'organisation de fichier est adapté à constituer un en-tête commun à tous les ensembles de paramètres, et à constituer une
liste de données représentatives de positions de paramètres dans le fichier.
17. Dispositif de traitement primaire selon la revendication 16, caractérisé en ce que le moyen d'organisation est adapté, à chaque fois que le moyen de construction construit une application contractive globale, - d'une part, à ajouter une donnée représentative de position dans ladite liste et - d'autre part, à mémorisation, dans le fichier, des paramètres provenant du
moyen de construction, en une position représentée par la donnée ajoutée.
18. Dispositif de traitement primaire selon l'une quelconque des
revendications 15 à 17, caractérisé en ce que:
- il comporte un moyen dit de "partition initiale" adapté à partitionner ledit premier ensemble de données en sous-ensembles dits "élémentaires initiaux" (Ki), - le moyen de construction est adapté, pour chacun des sous-ensembles élémentaires (Ki), à déterminer les paramètres (ai, b) de l'application élémentaire qui constitue une restriction de l'application contractive globale
audit sous-ensemble élémentaire.
19. Dispositif de traitement primaire selon l'une quelconque des
revendications 15 à 18, caractérisé en ce que, ledit premier ensemble de
données constituant une image couleur à plusieurs composantes (Y, Cr, Cb), il
96 2767999
comporte un moyen de filtrage adapté à filtrer au moins l'une desdites composantes et à modifier le nombre de données de l'ensemble de données
liés à au moins une composante.
20. Dispositif de traitement primaire selon la revendication 19, caractérisé en ce que le moyen de filtrage est adapté à réduire le nombre de données des ensembles de données liés aux composantes de chrominance, par rapport au nombre de données de l'ensemble de données lié à la
composante de luminance.
21. Dispositif de traitement secondaire d'un ensemble de paramètres (ai, b) résultant d'un traitement primaire d'un premier ensemble de données, caractérisé en ce qu'il comporte: - un moyen de lecture dans un fichier, adapté à lire au moins une partie de I'ensemble de paramètres dans un fichier commun à plusieurs ensembles de paramètres, et - des moyens de calcul adaptés à effectuer des calculs itératifs, à partir dudit ensemble de paramètres (ai, b), pour mettre en oeuvre, sur un deuxième ensemble de données, une méthode d'approximations successives convergeant vers le point fixe d'une application contractive globale, en utilisant, pour ce faire, au moins une application appartenant au groupe d'applications constitué des applications multidimensionnelles et des applications non linéaires, ce point fixe constituant une représentation secondaire (RE) dudit
premier ensemble de données.
22. Dispositif de traitement secondaire selon la revendication 21, caractérisé en ce que le moyen de lecture est adapté: - à effectuer un accès à une liste de données représentatives de positions dans le fichier et
- à lire des paramètres à au moins une position représentée dans ladite liste.
97 2767999
23. Dispositif de traitement secondaire selon l'une quelconque
des revendications 21 ou 22, caractérisé en ce que le moyen de lecture est
adapté à lire des informations contenues dans un en-tête commun à plusieurs
ensembles de paramètres.
24. Dispositif de traitement secondaire selon l'une quelconque
des revendications 21 à 23, caractérisé en ce que le moyen de lecture est
adapté à lire des informations contenues dans un en-tête spécifique à
l'ensemble de paramètres destiné à être traité.
25. Dispositif selon l'une quelconque des revendications 21 à 24,
caractérisé en ce que les moyens de calcul sont adaptés à prendre en compte, d'une part, ledit ensemble de paramètres (ai, b), et, d'autre part, un deuxième ensemble de données constitué d'un ensemble de données arbitraires dit ensemble d"'initialisation", et pour réaliser ledit calcul itératif: cl) à partitionner l'ensemble d'initialisation en sousensembles élémentaires (Ki); c2) à considérer, pour chacun des sousensembles élémentaires (Ki) ainsi déterminés, les paramètres (ai, b) des applications élémentaires correspondant aux sous-ensembles élémentaires (Ki) résultant de la partition (204) de l'ensemble des données initiales, et à mettre en oeuvre lesdites applications élémentaires sur les sous-ensembles élémentaires (Ki) de l'ensemble d'initialisation; C3) à réunir l'ensemble des données obtenues par les mises en oeuvre d'applications élémentaires, ceci constituant une représentation intermédiaire desdites données initiales, affectée d'une erreur; c4) à réitèrer les opérations cl-c3, en prenant comme ensemble d'initialisation, ladite représentation intermédiaire, de façon à s'approcher, du point fixe de ladite application contractive globale de second type;
98 2767999
l'ensemble de données finalement obtenu constituant une représentation secondaire (RE) de l'ensemble de données ayant été l'objet d'un traitement primaire.
26. Dispositif de traitement selon l'une quelconque des
revendications 21 à 25, dans lequel lesdits paramètres (ai, b) sont une
représentation primaire d'une image couleur à plusieurs composantes (Y, Cr, Cb) caractérisé en ce que les moyens de calcul sont adaptés, après avoir effectué les calculs itératifs relatifs à l'une des composantes, à utiliser comme initialisation de calculs itératifs relatifs à la composante suivante, la représentation secondaire (RE) obtenue à la fin des calculs itératifs relatifs à
l'une des composantes déjà traitées.
27. Dispositif de traitement selon l'une quelconque des
revendications 21 à 26 dans lequel le traitement primaire étant effectué avec
des premiers ensembles de données possédant des dimensions différentes pour les différentes composantes (Y, Cr, Cb) d'une image couleur, les moyens de calcul sont adaptés à mettre en oeuvre des deuxièmes ensembles de
données possédant les mêmes dimensions pour les différentes composantes.
28. Dispositif de traitement selon la revendication 27, caractérisé en ce que les moyens de calcul sont adaptés à effectuer des calculs itératifs sur des premiers ensembles de données possédant, pour chaque composante de chrominance (Cr, Cb), des dimensions inférieures aux dimensions du
premier ensemble de données utilisé pour la composante de luminance (Y).
29. Imprimante, caractérisée en ce qu'elle comporte un dispositif
selon l'une quelconque des revendications 15 à 28.
30. Photocopieur, caractérisé en ce qu'il comporte un dispositif
selon l'une quelconque des revendications 15 à 28.
99 2767999
31. Appareil photographique, caractérisé en ce qu'il comporte un dispositif selon l'une quelconque des revendications 15 à 28.
32. Télécopieur, caractérisé en ce qu'il comporte un dispositif selon l'une quelconque des revendications 15 à 28.
FR9710826A 1997-08-29 1997-08-29 Procedes et dispositifs de traitement de donnees et notamment de compression et de decompression d'images Expired - Fee Related FR2767999B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR9710826A FR2767999B1 (fr) 1997-08-29 1997-08-29 Procedes et dispositifs de traitement de donnees et notamment de compression et de decompression d'images
US09/138,646 US6498866B2 (en) 1997-08-29 1998-08-24 Methods and devices for processing data and notably for compressing and decompressing images

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9710826A FR2767999B1 (fr) 1997-08-29 1997-08-29 Procedes et dispositifs de traitement de donnees et notamment de compression et de decompression d'images

Publications (2)

Publication Number Publication Date
FR2767999A1 true FR2767999A1 (fr) 1999-03-05
FR2767999B1 FR2767999B1 (fr) 2000-02-18

Family

ID=9510620

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9710826A Expired - Fee Related FR2767999B1 (fr) 1997-08-29 1997-08-29 Procedes et dispositifs de traitement de donnees et notamment de compression et de decompression d'images

Country Status (1)

Country Link
FR (1) FR2767999B1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991000666A2 (fr) * 1989-07-05 1991-01-10 Barnsley Michael F Procede et appareil de traitement de donnees numeriques
WO1993017519A1 (fr) * 1992-02-28 1993-09-02 British Technology Group Ltd Codage fractionne de donnees

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991000666A2 (fr) * 1989-07-05 1991-01-10 Barnsley Michael F Procede et appareil de traitement de donnees numeriques
US5065447A (en) * 1989-07-05 1991-11-12 Iterated Systems, Inc. Method and apparatus for processing digital data
WO1993017519A1 (fr) * 1992-02-28 1993-09-02 British Technology Group Ltd Codage fractionne de donnees

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GUOJUN LU: "FRACTAL IMAGE COMPRESSION", SIGNAL PROCESSING. IMAGE COMMUNICATION, vol. 5, no. 4, 1 October 1993 (1993-10-01), pages 327 - 343, XP000398937 *
JACQUIN A E: "FRACTAL IMAGE CODING: A REVIEW", PROCEEDINGS OF THE IEEE, vol. 81, no. 10, 1 October 1993 (1993-10-01), pages 1451 - 1465, XP000418796 *

Also Published As

Publication number Publication date
FR2767999B1 (fr) 2000-02-18

Similar Documents

Publication Publication Date Title
WO2003007242A2 (fr) Procede et systeme pour produire des informations formatees liees aux defauts
FR2670923A1 (fr) Dispositif de correlation.
EP2294551A1 (fr) Procédé d&#39;enregistrement d&#39;images et de données de restauration de ces images
FR2889382A1 (fr) Procede et dispositif de filtrage d&#39;un signal numerique multidimensionnel et procedes et dispositifs de codage et decodage associes
EP0211770A1 (fr) Dispositif de transformation séquentielle d&#39;image
EP1964053A2 (fr) Procede pour traiter un objet dans une plateforme a processeur(s) et memoire(s) et plateforme utilisant le procede
EP0595710A1 (fr) Procédé et dispositif de segmentation en sous-bandes et de reconstruction d&#39;un signal numérique, et dispositif correspondant
EP0276603B1 (fr) Procédés de codage et de transmission d&#39;un signal numérique, par rafraichissement temporel sélectif d&#39;un quantificateur vectoriel
WO2007071882A2 (fr) Procede pour fournir des donnees a un moyen de traitement numerique
FR2767999A1 (fr) Procedes et dispositifs de traitement de donnees et notamment de compression et de decompression d&#39;images
WO2006040270A2 (fr) Procede de decodage local d&#39;un train binaire de coefficients d&#39;ondelettes
FR2768000A1 (fr) Procedes et dispositifs de traitement de donnees et notamment de compression et de decompression d&#39;images
FR2767998A1 (fr) Procedes et dispositifs de traitement de donnees et notamment de compression et de decompression d&#39;images
FR2761552A1 (fr) Procedes et dispositifs de traitement d&#39;un ensemble de donnees et notamment de compression et de decompression de donnees d&#39;images
FR2761554A1 (fr) Procedes et dispositifs de traitement d&#39;un ensemble de donnees et notamment de compression et de decompression de donnees d&#39;images
FR2761553A1 (fr) Procedes et dispositifs de traitement d&#39;un ensemble de donnees et notamment de compression et de decompression de donnees d&#39;images
FR2921504A1 (fr) Procede et dispositif d&#39;interpolation spatiale
FR2768888A1 (fr) Dispositif et procede de traitement d&#39;un ensemble de donnees et notamment de compression et de decompression de donnees d&#39;images
FR2768889A1 (fr) Dispositif et procede de traitement d&#39;un ensemble de donnees et notamment de compression et de decompression de donnees d&#39;images
Jacumin Variational methods for PDE-based image and video compression
WO2021123617A1 (fr) Procede d&#39;encodage d&#39;une image numerique en vue de sa compression
FR2929431A1 (fr) Procede et dispositif de classification des echantillons representatifs d&#39;un signal numerique d&#39;image
BE1021546B1 (fr) Procede et systeme pour le stockage de donnees de forme d&#39;onde.
WO1996023279A1 (fr) Procede d&#39;estimation de mouvement de regions dans des sequences d&#39;images numeriques
EP3170296B1 (fr) Procédé d&#39;accès à un contenu multimédia protégé par un terminal

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140430